You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[libcxx] Remove clang-18 workaround in picolib build
clang-19 changed how Arm triples were normalised and so while
we supported 18 and 19, we could not hard code the path here.
Now that Linaro's bots are running clang-19, and libcxx
is going to drop clang-18 support (llvm#130142)
I have simplified it by hard coding the path again.
I also looked into why this exists in the first place. It was
added in https://reviews.llvm.org/D154246 but not questioned at the time.
It is due to the way we build compiler-rt, which is due to the final
layout we need in the install:
1. The builtins library must be called libclang_rt.builtins.a for
clang to find it. There must not be an architecture name in the
filename.
2. That builtins library must be directly in lib/, next to picolib's
installed files.
To achieve #1 we must set LLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON.
However, that causes the file to be installed in a per-target dir
which breaks #2. So to fix that, we move the builtins library up
one level into lib/.
The alternative is to turn off per-target dirs, which results in
a builtin file with an arch in the name, then rename and move that
file (since it gets installed into lib/generic/).
So in the end, it's the same amount of hacks. I think it's best to
keep the one that uses LLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON,
as this is the recommended way to built these days.
0 commit comments