From 8629936f82aa573d967e5593636823342e2945b4 Mon Sep 17 00:00:00 2001 From: John Ericson Date: Sun, 9 May 2021 22:51:20 +0000 Subject: [PATCH] compiler-rt: Revert passing `COMPILER_RT_OS_DIR` and not symlinking libs In 7869d1654517c028aa76fc1dedc9b5ac301a867a I got rid of the symlinking by forcing `COMPILER_RT_OS_DIR` to always be the empty string. I thought this was good because it just make compiler-rt be installed in a normal way. However, various LLVM tools expect the `COMPILER_RT_OS_DIR` to be set normally, and fail to find things when they aren't in the expected lib subdir. Maybe it would be best to patch that too in the long term, but for now we just undo this change. --- pkgs/development/compilers/llvm/10/compiler-rt/default.nix | 5 +++-- pkgs/development/compilers/llvm/11/compiler-rt/default.nix | 5 +++-- pkgs/development/compilers/llvm/12/compiler-rt/default.nix | 5 +++-- pkgs/development/compilers/llvm/5/compiler-rt/default.nix | 5 +++-- pkgs/development/compilers/llvm/6/compiler-rt/default.nix | 5 +++-- pkgs/development/compilers/llvm/7/compiler-rt/default.nix | 5 +++-- pkgs/development/compilers/llvm/8/compiler-rt/default.nix | 5 +++-- pkgs/development/compilers/llvm/9/compiler-rt/default.nix | 5 +++-- 8 files changed, 24 insertions(+), 16 deletions(-) diff --git a/pkgs/development/compilers/llvm/10/compiler-rt/default.nix b/pkgs/development/compilers/llvm/10/compiler-rt/default.nix index 15fb0a7b910..1f990ac433d 100644 --- a/pkgs/development/compilers/llvm/10/compiler-rt/default.nix +++ b/pkgs/development/compilers/llvm/10/compiler-rt/default.nix @@ -21,7 +21,6 @@ stdenv.mkDerivation rec { ]; cmakeFlags = [ - "-DCOMPILER_RT_OS_DIR=" "-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON" "-DCMAKE_C_COMPILER_TARGET=${stdenv.hostPlatform.config}" "-DCMAKE_ASM_COMPILER_TARGET=${stdenv.hostPlatform.config}" @@ -81,7 +80,9 @@ stdenv.mkDerivation rec { ''; # Hack around weird upsream RPATH bug - postInstall = lib.optionalString (useLLVM) '' + postInstall = lib.optionalString (stdenv.hostPlatform.isDarwin || stdenv.hostPlatform.isWasm) '' + ln -s "$out/lib"/*/* "$out/lib" + '' + 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_shared-*.o $out/lib/crtbeginS.o diff --git a/pkgs/development/compilers/llvm/11/compiler-rt/default.nix b/pkgs/development/compilers/llvm/11/compiler-rt/default.nix index 5ec37508c5e..257bc34092f 100644 --- a/pkgs/development/compilers/llvm/11/compiler-rt/default.nix +++ b/pkgs/development/compilers/llvm/11/compiler-rt/default.nix @@ -21,7 +21,6 @@ stdenv.mkDerivation rec { ]; cmakeFlags = [ - "-DCOMPILER_RT_OS_DIR=" "-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON" "-DCMAKE_C_COMPILER_TARGET=${stdenv.hostPlatform.config}" "-DCMAKE_ASM_COMPILER_TARGET=${stdenv.hostPlatform.config}" @@ -84,7 +83,9 @@ stdenv.mkDerivation rec { ''; # Hack around weird upsream RPATH bug - postInstall = lib.optionalString (useLLVM) '' + postInstall = lib.optionalString (stdenv.hostPlatform.isDarwin || stdenv.hostPlatform.isWasm) '' + ln -s "$out/lib"/*/* "$out/lib" + '' + 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_shared-*.o $out/lib/crtbeginS.o diff --git a/pkgs/development/compilers/llvm/12/compiler-rt/default.nix b/pkgs/development/compilers/llvm/12/compiler-rt/default.nix index 7126deb8f0a..b880a0071b9 100644 --- a/pkgs/development/compilers/llvm/12/compiler-rt/default.nix +++ b/pkgs/development/compilers/llvm/12/compiler-rt/default.nix @@ -21,7 +21,6 @@ stdenv.mkDerivation rec { ]; cmakeFlags = [ - "-DCOMPILER_RT_OS_DIR=" "-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON" "-DCMAKE_C_COMPILER_TARGET=${stdenv.hostPlatform.config}" "-DCMAKE_ASM_COMPILER_TARGET=${stdenv.hostPlatform.config}" @@ -84,7 +83,9 @@ stdenv.mkDerivation rec { ''; # Hack around weird upsream RPATH bug - postInstall = lib.optionalString (useLLVM) '' + postInstall = lib.optionalString (stdenv.hostPlatform.isDarwin || stdenv.hostPlatform.isWasm) '' + ln -s "$out/lib"/*/* "$out/lib" + '' + 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_shared-*.o $out/lib/crtbeginS.o diff --git a/pkgs/development/compilers/llvm/5/compiler-rt/default.nix b/pkgs/development/compilers/llvm/5/compiler-rt/default.nix index 237cea11a7c..7e85c420da0 100644 --- a/pkgs/development/compilers/llvm/5/compiler-rt/default.nix +++ b/pkgs/development/compilers/llvm/5/compiler-rt/default.nix @@ -21,7 +21,6 @@ stdenv.mkDerivation { ]; cmakeFlags = [ - "-DCOMPILER_RT_OS_DIR=" "-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON" "-DCMAKE_C_COMPILER_TARGET=${stdenv.hostPlatform.config}" "-DCMAKE_ASM_COMPILER_TARGET=${stdenv.hostPlatform.config}" @@ -78,7 +77,9 @@ stdenv.mkDerivation { ''; # Hack around weird upsream RPATH bug - postInstall = lib.optionalString (useLLVM) '' + postInstall = lib.optionalString (stdenv.hostPlatform.isDarwin || stdenv.hostPlatform.isWasm) '' + ln -s "$out/lib"/*/* "$out/lib" + '' + lib.optionalString (useLLVM) '' ln -s $out/lib/*/clang_rt.crtbegin-*.o $out/lib/linux/crtbegin.o ln -s $out/lib/*/clang_rt.crtend-*.o $out/lib/linux/crtend.o ln -s $out/lib/*/clang_rt.crtbegin_shared-*.o $out/lib/linux/crtbeginS.o diff --git a/pkgs/development/compilers/llvm/6/compiler-rt/default.nix b/pkgs/development/compilers/llvm/6/compiler-rt/default.nix index c74693629d3..384305f5cf2 100644 --- a/pkgs/development/compilers/llvm/6/compiler-rt/default.nix +++ b/pkgs/development/compilers/llvm/6/compiler-rt/default.nix @@ -21,7 +21,6 @@ stdenv.mkDerivation { ]; cmakeFlags = [ - "-DCOMPILER_RT_OS_DIR=" "-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON" "-DCMAKE_C_COMPILER_TARGET=${stdenv.hostPlatform.config}" "-DCMAKE_ASM_COMPILER_TARGET=${stdenv.hostPlatform.config}" @@ -80,7 +79,9 @@ stdenv.mkDerivation { ''; # Hack around weird upsream RPATH bug - postInstall = lib.optionalString (useLLVM) '' + postInstall = lib.optionalString (stdenv.hostPlatform.isDarwin || stdenv.hostPlatform.isWasm) '' + ln -s "$out/lib"/*/* "$out/lib" + '' + lib.optionalString (useLLVM) '' ln -s $out/lib/*/clang_rt.crtbegin-*.o $out/lib/linux/crtbegin.o ln -s $out/lib/*/clang_rt.crtend-*.o $out/lib/linux/crtend.o ln -s $out/lib/*/clang_rt.crtbegin_shared-*.o $out/lib/linux/crtbeginS.o diff --git a/pkgs/development/compilers/llvm/7/compiler-rt/default.nix b/pkgs/development/compilers/llvm/7/compiler-rt/default.nix index d083347dde5..75d61a51e60 100644 --- a/pkgs/development/compilers/llvm/7/compiler-rt/default.nix +++ b/pkgs/development/compilers/llvm/7/compiler-rt/default.nix @@ -21,7 +21,6 @@ stdenv.mkDerivation { ]; cmakeFlags = [ - "-DCOMPILER_RT_OS_DIR=" "-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON" "-DCMAKE_C_COMPILER_TARGET=${stdenv.hostPlatform.config}" "-DCMAKE_ASM_COMPILER_TARGET=${stdenv.hostPlatform.config}" @@ -81,7 +80,9 @@ stdenv.mkDerivation { ''; # Hack around weird upsream RPATH bug - postInstall = lib.optionalString (useLLVM) '' + postInstall = lib.optionalString (stdenv.hostPlatform.isDarwin || stdenv.hostPlatform.isWasm) '' + ln -s "$out/lib"/*/* "$out/lib" + '' + lib.optionalString (useLLVM) '' ln -s $out/lib/*/clang_rt.crtbegin-*.o $out/lib/linux/crtbegin.o ln -s $out/lib/*/clang_rt.crtend-*.o $out/lib/linux/crtend.o ln -s $out/lib/*/clang_rt.crtbegin_shared-*.o $out/lib/linux/crtbeginS.o diff --git a/pkgs/development/compilers/llvm/8/compiler-rt/default.nix b/pkgs/development/compilers/llvm/8/compiler-rt/default.nix index 0f07e78dded..d370de031bb 100644 --- a/pkgs/development/compilers/llvm/8/compiler-rt/default.nix +++ b/pkgs/development/compilers/llvm/8/compiler-rt/default.nix @@ -21,7 +21,6 @@ stdenv.mkDerivation { ]; cmakeFlags = [ - "-DCOMPILER_RT_OS_DIR=" "-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON" "-DCMAKE_C_COMPILER_TARGET=${stdenv.hostPlatform.config}" "-DCMAKE_ASM_COMPILER_TARGET=${stdenv.hostPlatform.config}" @@ -81,7 +80,9 @@ stdenv.mkDerivation { ''; # Hack around weird upsream RPATH bug - postInstall = lib.optionalString (useLLVM) '' + postInstall = lib.optionalString (stdenv.hostPlatform.isDarwin || stdenv.hostPlatform.isWasm) '' + ln -s "$out/lib"/*/* "$out/lib" + '' + 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_shared-*.o $out/lib/crtbeginS.o diff --git a/pkgs/development/compilers/llvm/9/compiler-rt/default.nix b/pkgs/development/compilers/llvm/9/compiler-rt/default.nix index f6f5a9cf806..285fe811514 100644 --- a/pkgs/development/compilers/llvm/9/compiler-rt/default.nix +++ b/pkgs/development/compilers/llvm/9/compiler-rt/default.nix @@ -21,7 +21,6 @@ stdenv.mkDerivation rec { ]; cmakeFlags = [ - "-DCOMPILER_RT_OS_DIR=" "-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON" "-DCMAKE_C_COMPILER_TARGET=${stdenv.hostPlatform.config}" "-DCMAKE_ASM_COMPILER_TARGET=${stdenv.hostPlatform.config}" @@ -80,7 +79,9 @@ stdenv.mkDerivation rec { ''; # Hack around weird upsream RPATH bug - postInstall = lib.optionalString (useLLVM) '' + postInstall = lib.optionalString (stdenv.hostPlatform.isDarwin || stdenv.hostPlatform.isWasm) '' + ln -s "$out/lib"/*/* "$out/lib" + '' + 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_shared-*.o $out/lib/crtbeginS.o