From 4b07aeae16811bcb6ab2cef67133180bcb30ed67 Mon Sep 17 00:00:00 2001 From: squalus Date: Mon, 24 Oct 2022 23:40:01 -0700 Subject: [PATCH] openmp: fix cross compile --- pkgs/development/compilers/llvm/10/default.nix | 3 ++- pkgs/development/compilers/llvm/10/openmp/default.nix | 5 ++++- pkgs/development/compilers/llvm/11/default.nix | 3 ++- pkgs/development/compilers/llvm/11/openmp/default.nix | 5 ++++- pkgs/development/compilers/llvm/12/default.nix | 3 ++- pkgs/development/compilers/llvm/12/openmp/default.nix | 5 ++++- pkgs/development/compilers/llvm/13/default.nix | 3 ++- pkgs/development/compilers/llvm/13/openmp/default.nix | 5 ++++- pkgs/development/compilers/llvm/14/default.nix | 3 ++- pkgs/development/compilers/llvm/14/openmp/default.nix | 5 ++++- pkgs/development/compilers/llvm/5/default.nix | 3 ++- pkgs/development/compilers/llvm/5/openmp/default.nix | 5 ++++- pkgs/development/compilers/llvm/6/default.nix | 3 ++- pkgs/development/compilers/llvm/6/openmp/default.nix | 5 ++++- pkgs/development/compilers/llvm/7/default.nix | 3 ++- pkgs/development/compilers/llvm/7/openmp/default.nix | 5 ++++- pkgs/development/compilers/llvm/8/default.nix | 3 ++- pkgs/development/compilers/llvm/8/openmp/default.nix | 5 ++++- pkgs/development/compilers/llvm/9/default.nix | 3 ++- pkgs/development/compilers/llvm/9/openmp/default.nix | 5 ++++- pkgs/top-level/all-packages.nix | 10 ++++++++++ 21 files changed, 70 insertions(+), 20 deletions(-) diff --git a/pkgs/development/compilers/llvm/10/default.nix b/pkgs/development/compilers/llvm/10/default.nix index 5cb6c278659d8..4e9953a1fca92 100644 --- a/pkgs/development/compilers/llvm/10/default.nix +++ b/pkgs/development/compilers/llvm/10/default.nix @@ -3,6 +3,7 @@ , libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith, wrapBintoolsWith , buildLlvmTools # tools, but from the previous stage, for cross , targetLlvmLibraries # libraries, but from the next stage, for cross +, targetLlvm # This is the default binutils, but with *this* version of LLD rather # than the default LLVM verion's, if LLD is the choice. We use these for # the `useLLVM` bootstrapping below. @@ -259,7 +260,7 @@ let }; openmp = callPackage ./openmp { - inherit llvm_meta; + inherit llvm_meta targetLlvm; }; }); diff --git a/pkgs/development/compilers/llvm/10/openmp/default.nix b/pkgs/development/compilers/llvm/10/openmp/default.nix index a1b04c7c66b25..012f882e5871a 100644 --- a/pkgs/development/compilers/llvm/10/openmp/default.nix +++ b/pkgs/development/compilers/llvm/10/openmp/default.nix @@ -4,6 +4,7 @@ , fetch , cmake , llvm +, targetLlvm , perl , version }: @@ -15,7 +16,9 @@ stdenv.mkDerivation rec { src = fetch pname "0i4bn84lkpm5w3qkpvwm5z6jdj8fynp7d3bcasa1xyq4is6757yi"; nativeBuildInputs = [ cmake perl ]; - buildInputs = [ llvm ]; + buildInputs = [ + (if stdenv.buildPlatform == stdenv.hostPlatform then llvm else targetLlvm) + ]; meta = llvm_meta // { homepage = "https://openmp.llvm.org/"; diff --git a/pkgs/development/compilers/llvm/11/default.nix b/pkgs/development/compilers/llvm/11/default.nix index 82a78af85cac9..67c3621705c6b 100644 --- a/pkgs/development/compilers/llvm/11/default.nix +++ b/pkgs/development/compilers/llvm/11/default.nix @@ -3,6 +3,7 @@ , libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith, wrapBintoolsWith , buildLlvmTools # tools, but from the previous stage, for cross , targetLlvmLibraries # libraries, but from the next stage, for cross +, targetLlvm # This is the default binutils, but with *this* version of LLD rather # than the default LLVM verion's, if LLD is the choice. We use these for # the `useLLVM` bootstrapping below. @@ -274,7 +275,7 @@ let }; openmp = callPackage ./openmp { - inherit llvm_meta; + inherit llvm_meta targetLlvm; }; }); diff --git a/pkgs/development/compilers/llvm/11/openmp/default.nix b/pkgs/development/compilers/llvm/11/openmp/default.nix index 330560a677dcf..6c2dd9ac95773 100644 --- a/pkgs/development/compilers/llvm/11/openmp/default.nix +++ b/pkgs/development/compilers/llvm/11/openmp/default.nix @@ -5,6 +5,7 @@ , fetchpatch , cmake , llvm +, targetLlvm , perl , version }: @@ -25,7 +26,9 @@ stdenv.mkDerivation rec { ]; nativeBuildInputs = [ cmake perl ]; - buildInputs = [ llvm ]; + buildInputs = [ + (if stdenv.buildPlatform == stdenv.hostPlatform then llvm else targetLlvm) + ]; meta = llvm_meta // { homepage = "https://openmp.llvm.org/"; diff --git a/pkgs/development/compilers/llvm/12/default.nix b/pkgs/development/compilers/llvm/12/default.nix index 4a2a7ee878948..ad2b9a3fdfd17 100644 --- a/pkgs/development/compilers/llvm/12/default.nix +++ b/pkgs/development/compilers/llvm/12/default.nix @@ -3,6 +3,7 @@ , libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith, wrapBintoolsWith , buildLlvmTools # tools, but from the previous stage, for cross , targetLlvmLibraries # libraries, but from the next stage, for cross +, targetLlvm # This is the default binutils, but with *this* version of LLD rather # than the default LLVM verion's, if LLD is the choice. We use these for # the `useLLVM` bootstrapping below. @@ -267,7 +268,7 @@ let }; openmp = callPackage ./openmp { - inherit llvm_meta; + inherit llvm_meta targetLlvm; }; }); diff --git a/pkgs/development/compilers/llvm/12/openmp/default.nix b/pkgs/development/compilers/llvm/12/openmp/default.nix index 8ed1bf71f0081..e0bcf03e00e3a 100644 --- a/pkgs/development/compilers/llvm/12/openmp/default.nix +++ b/pkgs/development/compilers/llvm/12/openmp/default.nix @@ -4,6 +4,7 @@ , fetch , cmake , llvm +, targetLlvm , perl , version }: @@ -15,7 +16,9 @@ stdenv.mkDerivation rec { src = fetch pname "14dh0r6h2xh747ffgnsl4z08h0ri04azi9vf79cbz7ma1r27kzk0"; nativeBuildInputs = [ cmake perl ]; - buildInputs = [ llvm ]; + buildInputs = [ + (if stdenv.buildPlatform == stdenv.hostPlatform then llvm else targetLlvm) + ]; meta = llvm_meta // { homepage = "https://openmp.llvm.org/"; diff --git a/pkgs/development/compilers/llvm/13/default.nix b/pkgs/development/compilers/llvm/13/default.nix index 874be111ade07..85d734ac59046 100644 --- a/pkgs/development/compilers/llvm/13/default.nix +++ b/pkgs/development/compilers/llvm/13/default.nix @@ -3,6 +3,7 @@ , libxml2, python3, isl, fetchFromGitHub, overrideCC, wrapCCWith, wrapBintoolsWith , buildLlvmTools # tools, but from the previous stage, for cross , targetLlvmLibraries # libraries, but from the next stage, for cross +, targetLlvm # This is the default binutils, but with *this* version of LLD rather # than the default LLVM verion's, if LLD is the choice. We use these for # the `useLLVM` bootstrapping below. @@ -276,7 +277,7 @@ let }; openmp = callPackage ./openmp { - inherit llvm_meta; + inherit llvm_meta targetLlvm; }; }); diff --git a/pkgs/development/compilers/llvm/13/openmp/default.nix b/pkgs/development/compilers/llvm/13/openmp/default.nix index c5a33df975607..71362be1fdc6e 100644 --- a/pkgs/development/compilers/llvm/13/openmp/default.nix +++ b/pkgs/development/compilers/llvm/13/openmp/default.nix @@ -4,6 +4,7 @@ , src , cmake , llvm +, targetLlvm , perl , version }: @@ -16,7 +17,9 @@ stdenv.mkDerivation rec { sourceRoot = "source/${pname}"; nativeBuildInputs = [ cmake perl ]; - buildInputs = [ llvm ]; + buildInputs = [ + (if stdenv.buildPlatform == stdenv.hostPlatform then llvm else targetLlvm) + ]; cmakeFlags = [ "-DLIBOMPTARGET_BUILD_AMDGCN_BCLIB=OFF" # Building the AMDGCN device RTL currently fails diff --git a/pkgs/development/compilers/llvm/14/default.nix b/pkgs/development/compilers/llvm/14/default.nix index 3a1ba402ef671..fa1cdb88ee0ab 100644 --- a/pkgs/development/compilers/llvm/14/default.nix +++ b/pkgs/development/compilers/llvm/14/default.nix @@ -3,6 +3,7 @@ , libxml2, python3, isl, fetchFromGitHub, overrideCC, wrapCCWith, wrapBintoolsWith , buildLlvmTools # tools, but from the previous stage, for cross , targetLlvmLibraries # libraries, but from the next stage, for cross +, targetLlvm # This is the default binutils, but with *this* version of LLD rather # than the default LLVM verion's, if LLD is the choice. We use these for # the `useLLVM` bootstrapping below. @@ -273,7 +274,7 @@ let }; openmp = callPackage ./openmp { - inherit llvm_meta; + inherit llvm_meta targetLlvm; }; }); diff --git a/pkgs/development/compilers/llvm/14/openmp/default.nix b/pkgs/development/compilers/llvm/14/openmp/default.nix index 622072b53e180..d1c6a46b4d693 100644 --- a/pkgs/development/compilers/llvm/14/openmp/default.nix +++ b/pkgs/development/compilers/llvm/14/openmp/default.nix @@ -5,6 +5,7 @@ , runCommand , cmake , llvm +, targetLlvm , lit , clang-unwrapped , perl @@ -32,7 +33,9 @@ stdenv.mkDerivation rec { outputs = [ "out" "dev" ]; nativeBuildInputs = [ cmake perl pkg-config lit ]; - buildInputs = [ llvm ]; + buildInputs = [ + (if stdenv.buildPlatform == stdenv.hostPlatform then llvm else targetLlvm) + ]; # Unsup:Pass:XFail:Fail # 26:267:16:8 diff --git a/pkgs/development/compilers/llvm/5/default.nix b/pkgs/development/compilers/llvm/5/default.nix index ef9886fb5ea76..5e08f8545dfe8 100644 --- a/pkgs/development/compilers/llvm/5/default.nix +++ b/pkgs/development/compilers/llvm/5/default.nix @@ -2,6 +2,7 @@ , libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith , buildLlvmTools # tools, but from the previous stage, for cross , targetLlvmLibraries # libraries, but from the next stage, for cross +, targetLlvm }: let @@ -121,7 +122,7 @@ let }; openmp = callPackage ./openmp { - inherit llvm_meta; + inherit llvm_meta targetLlvm; }; }); diff --git a/pkgs/development/compilers/llvm/5/openmp/default.nix b/pkgs/development/compilers/llvm/5/openmp/default.nix index 3a1f97919dc33..900e920173fb6 100644 --- a/pkgs/development/compilers/llvm/5/openmp/default.nix +++ b/pkgs/development/compilers/llvm/5/openmp/default.nix @@ -4,6 +4,7 @@ , fetch , cmake , llvm +, targetLlvm , perl , version }: @@ -15,7 +16,9 @@ stdenv.mkDerivation { src = fetch "openmp" "0p2n52676wlq6y9q99n5pivq6pvvda1p994r69fxj206ahn59jir"; nativeBuildInputs = [ cmake perl ]; - buildInputs = [ llvm ]; + buildInputs = [ + (if stdenv.buildPlatform == stdenv.hostPlatform then llvm else targetLlvm) + ]; meta = llvm_meta // { homepage = "https://openmp.llvm.org/"; diff --git a/pkgs/development/compilers/llvm/6/default.nix b/pkgs/development/compilers/llvm/6/default.nix index 4acfe6cd85d79..a82880f7fe5df 100644 --- a/pkgs/development/compilers/llvm/6/default.nix +++ b/pkgs/development/compilers/llvm/6/default.nix @@ -2,6 +2,7 @@ , libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith , buildLlvmTools # tools, but from the previous stage, for cross , targetLlvmLibraries # libraries, but from the next stage, for cross +, targetLlvm }: let @@ -122,7 +123,7 @@ let }; openmp = callPackage ./openmp { - inherit llvm_meta; + inherit llvm_meta targetLlvm; }; }); diff --git a/pkgs/development/compilers/llvm/6/openmp/default.nix b/pkgs/development/compilers/llvm/6/openmp/default.nix index bc21220af7c7d..fa07c650970f7 100644 --- a/pkgs/development/compilers/llvm/6/openmp/default.nix +++ b/pkgs/development/compilers/llvm/6/openmp/default.nix @@ -4,6 +4,7 @@ , fetch , cmake , llvm +, targetLlvm , perl , version }: @@ -15,7 +16,9 @@ stdenv.mkDerivation { src = fetch "openmp" "0nhwfba9c351r16zgyjyfwdayr98nairky3c2f0b2lc360mwmbv6"; nativeBuildInputs = [ cmake perl ]; - buildInputs = [ llvm ]; + buildInputs = [ + (if stdenv.buildPlatform == stdenv.hostPlatform then llvm else targetLlvm) + ]; meta = llvm_meta // { homepage = "https://openmp.llvm.org/"; diff --git a/pkgs/development/compilers/llvm/7/default.nix b/pkgs/development/compilers/llvm/7/default.nix index f0908f30775d7..f0412240d7dc5 100644 --- a/pkgs/development/compilers/llvm/7/default.nix +++ b/pkgs/development/compilers/llvm/7/default.nix @@ -3,6 +3,7 @@ , libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith, wrapBintoolsWith , buildLlvmTools # tools, but from the previous stage, for cross , targetLlvmLibraries # libraries, but from the next stage, for cross +, targetLlvm # This is the default binutils, but with *this* version of LLD rather # than the default LLVM verion's, if LLD is the choice. We use these for # the `useLLVM` bootstrapping below. @@ -268,7 +269,7 @@ let }; openmp = callPackage ./openmp { - inherit llvm_meta; + inherit llvm_meta targetLlvm; }; }); diff --git a/pkgs/development/compilers/llvm/7/openmp/default.nix b/pkgs/development/compilers/llvm/7/openmp/default.nix index c331762712f2d..a87dd319d8ec3 100644 --- a/pkgs/development/compilers/llvm/7/openmp/default.nix +++ b/pkgs/development/compilers/llvm/7/openmp/default.nix @@ -4,6 +4,7 @@ , fetch , cmake , llvm +, targetLlvm , perl , version }: @@ -15,7 +16,9 @@ stdenv.mkDerivation { src = fetch "openmp" "1dg53wzsci2kra8lh1y0chh60h2l8h1by93br5spzvzlxshkmrqy"; nativeBuildInputs = [ cmake perl ]; - buildInputs = [ llvm ]; + buildInputs = [ + (if stdenv.buildPlatform == stdenv.hostPlatform then llvm else targetLlvm) + ]; meta = llvm_meta // { homepage = "https://openmp.llvm.org/"; diff --git a/pkgs/development/compilers/llvm/8/default.nix b/pkgs/development/compilers/llvm/8/default.nix index 43050a72b922b..fe672357cbd42 100644 --- a/pkgs/development/compilers/llvm/8/default.nix +++ b/pkgs/development/compilers/llvm/8/default.nix @@ -3,6 +3,7 @@ , libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith, wrapBintoolsWith , buildLlvmTools # tools, but from the previous stage, for cross , targetLlvmLibraries # libraries, but from the next stage, for cross +, targetLlvm # This is the default binutils, but with *this* version of LLD rather # than the default LLVM verion's, if LLD is the choice. We use these for # the `useLLVM` bootstrapping below. @@ -267,7 +268,7 @@ let }; openmp = callPackage ./openmp { - inherit llvm_meta; + inherit llvm_meta targetLlvm; }; }); diff --git a/pkgs/development/compilers/llvm/8/openmp/default.nix b/pkgs/development/compilers/llvm/8/openmp/default.nix index e8459d2798292..32b564ff0ecf6 100644 --- a/pkgs/development/compilers/llvm/8/openmp/default.nix +++ b/pkgs/development/compilers/llvm/8/openmp/default.nix @@ -4,6 +4,7 @@ , fetch , cmake , llvm +, targetLlvm , perl , version }: @@ -15,7 +16,9 @@ stdenv.mkDerivation { src = fetch "openmp" "0b3jlxhqbpyd1nqkpxjfggm5d9va5qpyf7d4i5y7n4a1mlydv19y"; nativeBuildInputs = [ cmake perl ]; - buildInputs = [ llvm ]; + buildInputs = [ + (if stdenv.buildPlatform == stdenv.hostPlatform then llvm else targetLlvm) + ]; meta = llvm_meta // { homepage = "https://openmp.llvm.org/"; diff --git a/pkgs/development/compilers/llvm/9/default.nix b/pkgs/development/compilers/llvm/9/default.nix index 7efe8486a387b..29c44b9991db4 100644 --- a/pkgs/development/compilers/llvm/9/default.nix +++ b/pkgs/development/compilers/llvm/9/default.nix @@ -3,6 +3,7 @@ , libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith, wrapBintoolsWith , buildLlvmTools # tools, but from the previous stage, for cross , targetLlvmLibraries # libraries, but from the next stage, for cross +, targetLlvm # This is the default binutils, but with *this* version of LLD rather # than the default LLVM verion's, if LLD is the choice. We use these for # the `useLLVM` bootstrapping below. @@ -267,7 +268,7 @@ let }; openmp = callPackage ./openmp { - inherit llvm_meta; + inherit llvm_meta targetLlvm; }; }); diff --git a/pkgs/development/compilers/llvm/9/openmp/default.nix b/pkgs/development/compilers/llvm/9/openmp/default.nix index bedd191d51345..7cd9ad761fdfc 100644 --- a/pkgs/development/compilers/llvm/9/openmp/default.nix +++ b/pkgs/development/compilers/llvm/9/openmp/default.nix @@ -4,6 +4,7 @@ , fetch , cmake , llvm +, targetLlvm , perl , version }: @@ -15,7 +16,9 @@ stdenv.mkDerivation rec { src = fetch pname "1knafnpp0f7hylx8q20lkd6g1sf0flly572dayc5d5kghh7hd52w"; nativeBuildInputs = [ cmake perl ]; - buildInputs = [ llvm ]; + buildInputs = [ + (if stdenv.buildPlatform == stdenv.hostPlatform then llvm else targetLlvm) + ]; meta = llvm_meta // { homepage = "https://openmp.llvm.org/"; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 05182417be439..ca0643e77e301 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -14521,36 +14521,42 @@ with pkgs; llvmPackages_5 = recurseIntoAttrs (callPackage ../development/compilers/llvm/5 { inherit (stdenvAdapters) overrideCC; buildLlvmTools = buildPackages.llvmPackages_5.tools; + targetLlvm = targetPackages.llvmPackages_5.llvm or llvmPackages_5.llvm; targetLlvmLibraries = targetPackages.llvmPackages_5.libraries or llvmPackages_5.libraries; }); llvmPackages_6 = recurseIntoAttrs (callPackage ../development/compilers/llvm/6 { inherit (stdenvAdapters) overrideCC; buildLlvmTools = buildPackages.llvmPackages_6.tools; + targetLlvm = targetPackages.llvmPackages_6.llvm or llvmPackages_6.llvm; targetLlvmLibraries = targetPackages.llvmPackages_6.libraries or llvmPackages_6.libraries; }); llvmPackages_7 = recurseIntoAttrs (callPackage ../development/compilers/llvm/7 { inherit (stdenvAdapters) overrideCC; buildLlvmTools = buildPackages.llvmPackages_7.tools; + targetLlvm = targetPackages.llvmPackages_7.llvm or llvmPackages_7.llvm; targetLlvmLibraries = targetPackages.llvmPackages_7.libraries or llvmPackages_7.libraries; }); llvmPackages_8 = recurseIntoAttrs (callPackage ../development/compilers/llvm/8 { inherit (stdenvAdapters) overrideCC; buildLlvmTools = buildPackages.llvmPackages_8.tools; + targetLlvm = targetPackages.llvmPackages_8.llvm or llvmPackages_8.llvm; targetLlvmLibraries = targetPackages.llvmPackages_8.libraries or llvmPackages_8.libraries; }); llvmPackages_9 = recurseIntoAttrs (callPackage ../development/compilers/llvm/9 { inherit (stdenvAdapters) overrideCC; buildLlvmTools = buildPackages.llvmPackages_9.tools; + targetLlvm = targetPackages.llvmPackages_9.llvm or llvmPackages_9.llvm; targetLlvmLibraries = targetPackages.llvmPackages_9.libraries or llvmPackages_9.libraries; }); llvmPackages_10 = recurseIntoAttrs (callPackage ../development/compilers/llvm/10 { inherit (stdenvAdapters) overrideCC; buildLlvmTools = buildPackages.llvmPackages_10.tools; + targetLlvm = targetPackages.llvmPackages_10.llvm or llvmPackages_10.llvm; targetLlvmLibraries = targetPackages.llvmPackages_10.libraries or llvmPackages_10.libraries; }); @@ -14558,6 +14564,7 @@ with pkgs; inherit (stdenvAdapters) overrideCC; buildLlvmTools = buildPackages.llvmPackages_11.tools; targetLlvmLibraries = targetPackages.llvmPackages_11.libraries or llvmPackages_11.libraries; + targetLlvm = targetPackages.llvmPackages_11.llvm or llvmPackages_11.llvm; } // lib.optionalAttrs (stdenv.hostPlatform.isi686 && stdenv.hostPlatform == stdenv.buildPlatform && buildPackages.stdenv.cc.isGNU) { stdenv = gcc7Stdenv; })); @@ -14566,6 +14573,7 @@ with pkgs; inherit (stdenvAdapters) overrideCC; buildLlvmTools = buildPackages.llvmPackages_12.tools; targetLlvmLibraries = targetPackages.llvmPackages_12.libraries or llvmPackages_12.libraries; + targetLlvm = targetPackages.llvmPackages_12.llvm or llvmPackages_12.llvm; } // lib.optionalAttrs (stdenv.hostPlatform.isi686 && stdenv.hostPlatform == stdenv.buildPlatform && buildPackages.stdenv.cc.isGNU) { stdenv = gcc7Stdenv; })); @@ -14574,6 +14582,7 @@ with pkgs; inherit (stdenvAdapters) overrideCC; buildLlvmTools = buildPackages.llvmPackages_13.tools; targetLlvmLibraries = targetPackages.llvmPackages_13.libraries or llvmPackages_13.libraries; + targetLlvm = targetPackages.llvmPackages_13.llvm or llvmPackages_13.llvm; } // lib.optionalAttrs (stdenv.hostPlatform.isi686 && stdenv.hostPlatform == stdenv.buildPlatform && buildPackages.stdenv.cc.isGNU) { stdenv = gcc7Stdenv; })); @@ -14582,6 +14591,7 @@ with pkgs; inherit (stdenvAdapters) overrideCC; buildLlvmTools = buildPackages.llvmPackages_14.tools; targetLlvmLibraries = targetPackages.llvmPackages_14.libraries or llvmPackages_14.libraries; + targetLlvm = targetPackages.llvmPackages_14.llvm or llvmPackages_14.llvm; } // lib.optionalAttrs (stdenv.hostPlatform.isi686 && stdenv.hostPlatform == stdenv.buildPlatform && buildPackages.stdenv.cc.isGNU) { stdenv = gcc7Stdenv; }));