cc-wrapper: add libcxxabi include flag for LLVM
Removed workaround from llvm 16. Fixes including cxxabi.h on llvm >=15 libcxxStdenv. ```c int main() {} ``` ``` /nix/store/qwnvng0cbyx0bijm654jpmpl0516hfhx-libcxxabi-15.0.7-dev/include/cxxabi.h:20:10: fatal error: '__cxxabi_config.h' file not found ``` Before llvm 15 this used to work because `libcxx` copied the headers from `cxxabi` to it's own `include`, which was then picked up by the line above this one Alternative fix would be to copy all files from `${cxxabi.dev}/include/c++/v1` to `${cxxabi.dev}/include` so the cc-wrapper setup hook would pick them up, but that would depend on in cxxabi being in buildInputs. Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
This commit is contained in:
parent
f8056c5007
commit
accafc0ed3
@ -469,6 +469,7 @@ stdenv.mkDerivation {
|
||||
''
|
||||
+ optionalString (libcxx.isLLVM or false) ''
|
||||
echo "-isystem ${lib.getDev libcxx}/include/c++/v1" >> $out/nix-support/libcxx-cxxflags
|
||||
echo "-isystem ${lib.getDev libcxx.cxxabi}/include/c++/v1" >> $out/nix-support/libcxx-cxxflags
|
||||
echo "-stdlib=libc++" >> $out/nix-support/libcxx-ldflags
|
||||
echo "-l${libcxx.cxxabi.libName}" >> $out/nix-support/libcxx-ldflags
|
||||
''
|
||||
|
@ -255,14 +255,6 @@ in let
|
||||
[ "-rtlib=compiler-rt"
|
||||
"-Wno-unused-command-line-argument"
|
||||
"-B${targetLlvmLibraries.compiler-rt}/lib"
|
||||
|
||||
# Combat "__cxxabi_config.h not found". Maybe this could be fixed by
|
||||
# copying these headers into libcxx? Note that building libcxx
|
||||
# outside of monorepo isn't supported anymore, might be related to
|
||||
# https://github.com/llvm/llvm-project/issues/55632
|
||||
# ("16.0.3 libcxx, libcxxabi: circular build dependencies")
|
||||
# Looks like the machinery changed in https://reviews.llvm.org/D120727.
|
||||
"-I${lib.getDev targetLlvmLibraries.libcxx.cxxabi}/include/c++/v1"
|
||||
]
|
||||
++ lib.optional (!stdenv.targetPlatform.isWasm) "--unwindlib=libunwind"
|
||||
++ lib.optional
|
||||
|
Loading…
Reference in New Issue
Block a user