From 5989c9d76c59adb877183f64c1788a8a93219ab1 Mon Sep 17 00:00:00 2001 From: Giulio De Pasquale Date: Fri, 15 Apr 2022 01:41:25 +0200 Subject: [PATCH 1/3] llvmPackages_11.compiler-rt: Add i486, i586, i686 to X86 family. Expose ix86 family builtins. Co-Authored-By: John Ericson --- .../development/compilers/llvm/11/compiler-rt/default.nix | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pkgs/development/compilers/llvm/11/compiler-rt/default.nix b/pkgs/development/compilers/llvm/11/compiler-rt/default.nix index 4968c8bcfbd8..aed79034e6f1 100644 --- a/pkgs/development/compilers/llvm/11/compiler-rt/default.nix +++ b/pkgs/development/compilers/llvm/11/compiler-rt/default.nix @@ -74,6 +74,8 @@ stdenv.mkDerivation { postPatch = lib.optionalString (!stdenv.isDarwin) '' substituteInPlace cmake/builtin-config-ix.cmake \ --replace 'set(X86 i386)' 'set(X86 i386 i486 i586 i686)' + substituteInPlace cmake/config-ix.cmake \ + --replace 'set(X86 i386)' 'set(X86 i386 i486 i586 i686)' '' + lib.optionalString stdenv.isDarwin '' substituteInPlace cmake/builtin-config-ix.cmake \ --replace 'foreach(arch ''${ARM64})' 'foreach(arch)' @@ -96,6 +98,12 @@ stdenv.mkDerivation { ln -s $out/lib/*/clang_rt.crtend-*.o $out/lib/crtend.o ln -s $out/lib/*/clang_rt.crtbegin_shared-*.o $out/lib/crtbeginS.o ln -s $out/lib/*/clang_rt.crtend_shared-*.o $out/lib/crtendS.o + '' + # See https://reviews.llvm.org/D37278 for why android exception + + lib.optionalString (stdenv.hostPlatform.isx86_32 && !stdenv.hostPlatform.isAndroid) '' + for f in $out/lib/*/*builtins-i?86*; do + ln -s "$f" $(echo "$f" | sed -e 's/builtins-i.86/builtins-i386/') + done ''; meta = llvm_meta // { From e1b98ac282941d4d27cef8b3871ecbdb6157b528 Mon Sep 17 00:00:00 2001 From: Giulio De Pasquale Date: Fri, 14 Oct 2022 18:43:21 +0200 Subject: [PATCH 2/3] llvmPackages_11.compiler-rt: Link crtbeginS.o and crtendS.o --- pkgs/development/compilers/llvm/11/compiler-rt/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/development/compilers/llvm/11/compiler-rt/default.nix b/pkgs/development/compilers/llvm/11/compiler-rt/default.nix index aed79034e6f1..03ecb04b16fa 100644 --- a/pkgs/development/compilers/llvm/11/compiler-rt/default.nix +++ b/pkgs/development/compilers/llvm/11/compiler-rt/default.nix @@ -96,6 +96,8 @@ stdenv.mkDerivation { '' + lib.optionalString (useLLVM) '' ln -s $out/lib/*/clang_rt.crtbegin-*.o $out/lib/crtbegin.o ln -s $out/lib/*/clang_rt.crtend-*.o $out/lib/crtend.o + ln -s $out/lib/*/clang_rt.crtbegin-*.o $out/lib/crtbeginS.o + ln -s $out/lib/*/clang_rt.crtend-*.o $out/lib/crtendS.o ln -s $out/lib/*/clang_rt.crtbegin_shared-*.o $out/lib/crtbeginS.o ln -s $out/lib/*/clang_rt.crtend_shared-*.o $out/lib/crtendS.o '' From 2000ae54295e601a08ec13ea5057557a30b9a13a Mon Sep 17 00:00:00 2001 From: Giulio De Pasquale Date: Fri, 14 Oct 2022 18:46:22 +0200 Subject: [PATCH 3/3] llvmPackages_11: Add `$rsrc/lib` to default cflags --- pkgs/development/compilers/llvm/11/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/development/compilers/llvm/11/default.nix b/pkgs/development/compilers/llvm/11/default.nix index 82a78af85cac..c3abface37eb 100644 --- a/pkgs/development/compilers/llvm/11/default.nix +++ b/pkgs/development/compilers/llvm/11/default.nix @@ -43,6 +43,7 @@ let mkdir "$rsrc" ln -s "${cc.lib}/lib/clang/${release_version}/include" "$rsrc" echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags + echo "-B $rsrc/lib" >> $out/nix-support/cc-cflags ''; mkExtraBuildCommands = cc: mkExtraBuildCommands0 cc + '' ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib"