diff --git a/pkgs/development/compilers/llvm/10/llvm/default.nix b/pkgs/development/compilers/llvm/10/llvm/default.nix index c4e6f2827e82b..ee2e21d6fc266 100644 --- a/pkgs/development/compilers/llvm/10/llvm/default.nix +++ b/pkgs/development/compilers/llvm/10/llvm/default.nix @@ -270,6 +270,26 @@ in stdenv.mkDerivation (rec { ) ]; + # Make sure dependencies are propagated to the native compiler when cross-compiling LLVM. + env = lib.optionalAttrs (stdenv.hostPlatform != stdenv.buildPlatform) ( + let + nativeCC = pkgsBuildBuild.targetPackages.stdenv.cc; + deps = lib.concatMap (x: x.all) nativeCC.depsTargetTargetPropagated; + devs = lib.pipe deps [ + (lib.filter (x: x.outputName == "dev")) + (map (x: "-isystem ${x}/include")) + ]; + libs = lib.pipe deps [ + (lib.filter (x: x.outputName == "lib" || x.outputName == "out")) + (map (x: "-L${x}/lib")) + ]; + in + { + "NIX_CFLAGS_COMPILE_${nativeCC.suffixSalt}" = lib.concatStringsSep " " devs; + "NIX_LDFLAGS_${nativeCC.suffixSalt}" = lib.concatStringsSep " " libs; + } + ); + postBuild = '' rm -fR $out ''; diff --git a/pkgs/development/compilers/llvm/11/llvm/default.nix b/pkgs/development/compilers/llvm/11/llvm/default.nix index 01e6483ad6408..4405e0d006186 100644 --- a/pkgs/development/compilers/llvm/11/llvm/default.nix +++ b/pkgs/development/compilers/llvm/11/llvm/default.nix @@ -288,6 +288,26 @@ in stdenv.mkDerivation (rec { ) ]; + # Make sure dependencies are propagated to the native compiler when cross-compiling LLVM. + env = lib.optionalAttrs (stdenv.hostPlatform != stdenv.buildPlatform) ( + let + nativeCC = pkgsBuildBuild.targetPackages.stdenv.cc; + deps = lib.concatMap (x: x.all) nativeCC.depsTargetTargetPropagated; + devs = lib.pipe deps [ + (lib.filter (x: x.outputName == "dev")) + (map (x: "-isystem ${x}/include")) + ]; + libs = lib.pipe deps [ + (lib.filter (x: x.outputName == "lib" || x.outputName == "out")) + (map (x: "-L${x}/lib")) + ]; + in + { + "NIX_CFLAGS_COMPILE_${nativeCC.suffixSalt}" = lib.concatStringsSep " " devs; + "NIX_LDFLAGS_${nativeCC.suffixSalt}" = lib.concatStringsSep " " libs; + } + ); + postBuild = '' rm -fR $out ''; diff --git a/pkgs/development/compilers/llvm/12/llvm/default.nix b/pkgs/development/compilers/llvm/12/llvm/default.nix index 97d8f27672e3d..58eb32fe3dcd4 100644 --- a/pkgs/development/compilers/llvm/12/llvm/default.nix +++ b/pkgs/development/compilers/llvm/12/llvm/default.nix @@ -276,6 +276,26 @@ in stdenv.mkDerivation (rec { ) ]; + # Make sure dependencies are propagated to the native compiler when cross-compiling LLVM. + env = lib.optionalAttrs (stdenv.hostPlatform != stdenv.buildPlatform) ( + let + nativeCC = pkgsBuildBuild.targetPackages.stdenv.cc; + deps = lib.concatMap (x: x.all) nativeCC.depsTargetTargetPropagated; + devs = lib.pipe deps [ + (lib.filter (x: x.outputName == "dev")) + (map (x: "-isystem ${x}/include")) + ]; + libs = lib.pipe deps [ + (lib.filter (x: x.outputName == "lib" || x.outputName == "out")) + (map (x: "-L${x}/lib")) + ]; + in + { + "NIX_CFLAGS_COMPILE_${nativeCC.suffixSalt}" = lib.concatStringsSep " " devs; + "NIX_LDFLAGS_${nativeCC.suffixSalt}" = lib.concatStringsSep " " libs; + } + ); + postBuild = '' rm -fR $out ''; diff --git a/pkgs/development/compilers/llvm/13/llvm/default.nix b/pkgs/development/compilers/llvm/13/llvm/default.nix index 2a7c1c1867cb3..3062b572fd5b7 100644 --- a/pkgs/development/compilers/llvm/13/llvm/default.nix +++ b/pkgs/development/compilers/llvm/13/llvm/default.nix @@ -238,6 +238,26 @@ in stdenv.mkDerivation (rec { ) ]; + # Make sure dependencies are propagated to the native compiler when cross-compiling LLVM. + env = lib.optionalAttrs (stdenv.hostPlatform != stdenv.buildPlatform) ( + let + nativeCC = pkgsBuildBuild.targetPackages.stdenv.cc; + deps = lib.concatMap (x: x.all) nativeCC.depsTargetTargetPropagated; + devs = lib.pipe deps [ + (lib.filter (x: x.outputName == "dev")) + (map (x: "-isystem ${x}/include")) + ]; + libs = lib.pipe deps [ + (lib.filter (x: x.outputName == "lib" || x.outputName == "out")) + (map (x: "-L${x}/lib")) + ]; + in + { + "NIX_CFLAGS_COMPILE_${nativeCC.suffixSalt}" = lib.concatStringsSep " " devs; + "NIX_LDFLAGS_${nativeCC.suffixSalt}" = lib.concatStringsSep " " libs; + } + ); + postBuild = '' rm -fR $out ''; diff --git a/pkgs/development/compilers/llvm/14/llvm/default.nix b/pkgs/development/compilers/llvm/14/llvm/default.nix index 081c84c04e06c..5ae6489901f17 100644 --- a/pkgs/development/compilers/llvm/14/llvm/default.nix +++ b/pkgs/development/compilers/llvm/14/llvm/default.nix @@ -237,6 +237,26 @@ in stdenv.mkDerivation (rec { ) ]; + # Make sure dependencies are propagated to the native compiler when cross-compiling LLVM. + env = lib.optionalAttrs (stdenv.hostPlatform != stdenv.buildPlatform) ( + let + nativeCC = pkgsBuildBuild.targetPackages.stdenv.cc; + deps = lib.concatMap (x: x.all) nativeCC.depsTargetTargetPropagated; + devs = lib.pipe deps [ + (lib.filter (x: x.outputName == "dev")) + (map (x: "-isystem ${x}/include")) + ]; + libs = lib.pipe deps [ + (lib.filter (x: x.outputName == "lib" || x.outputName == "out")) + (map (x: "-L${x}/lib")) + ]; + in + { + "NIX_CFLAGS_COMPILE_${nativeCC.suffixSalt}" = lib.concatStringsSep " " devs; + "NIX_LDFLAGS_${nativeCC.suffixSalt}" = lib.concatStringsSep " " libs; + } + ); + postBuild = '' rm -fR $out ''; diff --git a/pkgs/development/compilers/llvm/15/llvm/default.nix b/pkgs/development/compilers/llvm/15/llvm/default.nix index e6f339ff6d6d3..599565c91961b 100644 --- a/pkgs/development/compilers/llvm/15/llvm/default.nix +++ b/pkgs/development/compilers/llvm/15/llvm/default.nix @@ -373,6 +373,26 @@ in stdenv.mkDerivation (rec { ) ]; + # Make sure dependencies are propagated to the native compiler when cross-compiling LLVM. + env = lib.optionalAttrs (stdenv.hostPlatform != stdenv.buildPlatform) ( + let + nativeCC = pkgsBuildBuild.targetPackages.stdenv.cc; + deps = lib.concatMap (x: x.all) nativeCC.depsTargetTargetPropagated; + devs = lib.pipe deps [ + (lib.filter (x: x.outputName == "dev")) + (map (x: "-isystem ${x}/include")) + ]; + libs = lib.pipe deps [ + (lib.filter (x: x.outputName == "lib" || x.outputName == "out")) + (map (x: "-L${x}/lib")) + ]; + in + { + "NIX_CFLAGS_COMPILE_${nativeCC.suffixSalt}" = lib.concatStringsSep " " devs; + "NIX_LDFLAGS_${nativeCC.suffixSalt}" = lib.concatStringsSep " " libs; + } + ); + postInstall = '' mkdir -p $python/share mv $out/share/opt-viewer $python/share/opt-viewer diff --git a/pkgs/development/compilers/llvm/16/llvm/default.nix b/pkgs/development/compilers/llvm/16/llvm/default.nix index c70f9d37a562c..d765e6cecda07 100644 --- a/pkgs/development/compilers/llvm/16/llvm/default.nix +++ b/pkgs/development/compilers/llvm/16/llvm/default.nix @@ -361,6 +361,26 @@ in ) ]; + # Make sure dependencies are propagated to the native compiler when cross-compiling LLVM. + env = lib.optionalAttrs (stdenv.hostPlatform != stdenv.buildPlatform) ( + let + nativeCC = pkgsBuildBuild.targetPackages.stdenv.cc; + deps = lib.concatMap (x: x.all) nativeCC.depsTargetTargetPropagated; + devs = lib.pipe deps [ + (lib.filter (x: x.outputName == "dev")) + (map (x: "-isystem ${x}/include")) + ]; + libs = lib.pipe deps [ + (lib.filter (x: x.outputName == "lib" || x.outputName == "out")) + (map (x: "-L${x}/lib")) + ]; + in + { + "NIX_CFLAGS_COMPILE_${nativeCC.suffixSalt}" = lib.concatStringsSep " " devs; + "NIX_LDFLAGS_${nativeCC.suffixSalt}" = lib.concatStringsSep " " libs; + } + ); + postInstall = '' mkdir -p $python/share mv $out/share/opt-viewer $python/share/opt-viewer diff --git a/pkgs/development/compilers/llvm/5/llvm/default.nix b/pkgs/development/compilers/llvm/5/llvm/default.nix index 74523490244ff..3c2649ec140aa 100644 --- a/pkgs/development/compilers/llvm/5/llvm/default.nix +++ b/pkgs/development/compilers/llvm/5/llvm/default.nix @@ -209,6 +209,26 @@ stdenv.mkDerivation (rec { ) ]; + # Make sure dependencies are propagated to the native compiler when cross-compiling LLVM. + env = lib.optionalAttrs (stdenv.hostPlatform != stdenv.buildPlatform) ( + let + nativeCC = pkgsBuildBuild.targetPackages.stdenv.cc; + deps = lib.concatMap (x: x.all) nativeCC.depsTargetTargetPropagated; + devs = lib.pipe deps [ + (lib.filter (x: x.outputName == "dev")) + (map (x: "-isystem ${x}/include")) + ]; + libs = lib.pipe deps [ + (lib.filter (x: x.outputName == "lib" || x.outputName == "out")) + (map (x: "-L${x}/lib")) + ]; + in + { + "NIX_CFLAGS_COMPILE_${nativeCC.suffixSalt}" = lib.concatStringsSep " " devs; + "NIX_LDFLAGS_${nativeCC.suffixSalt}" = lib.concatStringsSep " " libs; + } + ); + postBuild = '' rm -fR $out ''; diff --git a/pkgs/development/compilers/llvm/6/llvm/default.nix b/pkgs/development/compilers/llvm/6/llvm/default.nix index 72e43ba8d1faa..85e0e800d40a4 100644 --- a/pkgs/development/compilers/llvm/6/llvm/default.nix +++ b/pkgs/development/compilers/llvm/6/llvm/default.nix @@ -228,6 +228,26 @@ stdenv.mkDerivation (rec { ) ]; + # Make sure dependencies are propagated to the native compiler when cross-compiling LLVM. + env = lib.optionalAttrs (stdenv.hostPlatform != stdenv.buildPlatform) ( + let + nativeCC = pkgsBuildBuild.targetPackages.stdenv.cc; + deps = lib.concatMap (x: x.all) nativeCC.depsTargetTargetPropagated; + devs = lib.pipe deps [ + (lib.filter (x: x.outputName == "dev")) + (map (x: "-isystem ${x}/include")) + ]; + libs = lib.pipe deps [ + (lib.filter (x: x.outputName == "lib" || x.outputName == "out")) + (map (x: "-L${x}/lib")) + ]; + in + { + "NIX_CFLAGS_COMPILE_${nativeCC.suffixSalt}" = lib.concatStringsSep " " devs; + "NIX_LDFLAGS_${nativeCC.suffixSalt}" = lib.concatStringsSep " " libs; + } + ); + postBuild = '' rm -fR $out ''; diff --git a/pkgs/development/compilers/llvm/7/llvm/default.nix b/pkgs/development/compilers/llvm/7/llvm/default.nix index 97ac428a7f550..82e5d38bfddd2 100644 --- a/pkgs/development/compilers/llvm/7/llvm/default.nix +++ b/pkgs/development/compilers/llvm/7/llvm/default.nix @@ -246,6 +246,26 @@ in stdenv.mkDerivation (rec { ) ]; + # Make sure dependencies are propagated to the native compiler when cross-compiling LLVM. + env = lib.optionalAttrs (stdenv.hostPlatform != stdenv.buildPlatform) ( + let + nativeCC = pkgsBuildBuild.targetPackages.stdenv.cc; + deps = lib.concatMap (x: x.all) nativeCC.depsTargetTargetPropagated; + devs = lib.pipe deps [ + (lib.filter (x: x.outputName == "dev")) + (map (x: "-isystem ${x}/include")) + ]; + libs = lib.pipe deps [ + (lib.filter (x: x.outputName == "lib" || x.outputName == "out")) + (map (x: "-L${x}/lib")) + ]; + in + { + "NIX_CFLAGS_COMPILE_${nativeCC.suffixSalt}" = lib.concatStringsSep " " devs; + "NIX_LDFLAGS_${nativeCC.suffixSalt}" = lib.concatStringsSep " " libs; + } + ); + postBuild = '' rm -fR $out ''; diff --git a/pkgs/development/compilers/llvm/8/llvm/default.nix b/pkgs/development/compilers/llvm/8/llvm/default.nix index 8a0fea85e260d..4dcfaff5b134f 100644 --- a/pkgs/development/compilers/llvm/8/llvm/default.nix +++ b/pkgs/development/compilers/llvm/8/llvm/default.nix @@ -244,6 +244,26 @@ in stdenv.mkDerivation (rec { ) ]; + # Make sure dependencies are propagated to the native compiler when cross-compiling LLVM. + env = lib.optionalAttrs (stdenv.hostPlatform != stdenv.buildPlatform) ( + let + nativeCC = pkgsBuildBuild.targetPackages.stdenv.cc; + deps = lib.concatMap (x: x.all) nativeCC.depsTargetTargetPropagated; + devs = lib.pipe deps [ + (lib.filter (x: x.outputName == "dev")) + (map (x: "-isystem ${x}/include")) + ]; + libs = lib.pipe deps [ + (lib.filter (x: x.outputName == "lib" || x.outputName == "out")) + (map (x: "-L${x}/lib")) + ]; + in + { + "NIX_CFLAGS_COMPILE_${nativeCC.suffixSalt}" = lib.concatStringsSep " " devs; + "NIX_LDFLAGS_${nativeCC.suffixSalt}" = lib.concatStringsSep " " libs; + } + ); + postBuild = '' rm -fR $out ''; diff --git a/pkgs/development/compilers/llvm/9/llvm/default.nix b/pkgs/development/compilers/llvm/9/llvm/default.nix index 526030d6b34d8..527bd0623349b 100644 --- a/pkgs/development/compilers/llvm/9/llvm/default.nix +++ b/pkgs/development/compilers/llvm/9/llvm/default.nix @@ -259,6 +259,26 @@ in stdenv.mkDerivation (rec { ) ]; + # Make sure dependencies are propagated to the native compiler when cross-compiling LLVM. + env = lib.optionalAttrs (stdenv.hostPlatform != stdenv.buildPlatform) ( + let + nativeCC = pkgsBuildBuild.targetPackages.stdenv.cc; + deps = lib.concatMap (x: x.all) nativeCC.depsTargetTargetPropagated; + devs = lib.pipe deps [ + (lib.filter (x: x.outputName == "dev")) + (map (x: "-isystem ${x}/include")) + ]; + libs = lib.pipe deps [ + (lib.filter (x: x.outputName == "lib" || x.outputName == "out")) + (map (x: "-L${x}/lib")) + ]; + in + { + "NIX_CFLAGS_COMPILE_${nativeCC.suffixSalt}" = lib.concatStringsSep " " devs; + "NIX_LDFLAGS_${nativeCC.suffixSalt}" = lib.concatStringsSep " " libs; + } + ); + postBuild = '' rm -fR $out '';