diff options
author | Jörg Thalheim <joerg@thalheim.io> | 2022-11-06 19:53:50 +0100 |
---|---|---|
committer | Jörg Thalheim <joerg@thalheim.io> | 2022-11-14 12:50:04 +0100 |
commit | 890d0576c5f68852cd3d6ca81c5428122c620560 (patch) | |
tree | a19b41c4f3d8b8bfed5e0e730db44a87c314b3ac /pkgs/development/compilers | |
parent | 801d535fab9d7dacbe1b79a6dfff0ededa71f194 (diff) | |
download | nixpkgs-890d0576c5f68852cd3d6ca81c5428122c620560.tar nixpkgs-890d0576c5f68852cd3d6ca81c5428122c620560.tar.gz nixpkgs-890d0576c5f68852cd3d6ca81c5428122c620560.tar.bz2 nixpkgs-890d0576c5f68852cd3d6ca81c5428122c620560.tar.lz nixpkgs-890d0576c5f68852cd3d6ca81c5428122c620560.tar.xz nixpkgs-890d0576c5f68852cd3d6ca81c5428122c620560.tar.zst nixpkgs-890d0576c5f68852cd3d6ca81c5428122c620560.zip |
cross/mingw: make threading library configureable
Diffstat (limited to 'pkgs/development/compilers')
-rw-r--r-- | pkgs/development/compilers/gcc/10/default.nix | 8 | ||||
-rw-r--r-- | pkgs/development/compilers/gcc/11/default.nix | 8 | ||||
-rw-r--r-- | pkgs/development/compilers/gcc/12/default.nix | 8 | ||||
-rw-r--r-- | pkgs/development/compilers/gcc/4.8/default.nix | 6 | ||||
-rw-r--r-- | pkgs/development/compilers/gcc/4.9/default.nix | 6 | ||||
-rw-r--r-- | pkgs/development/compilers/gcc/6/default.nix | 8 | ||||
-rw-r--r-- | pkgs/development/compilers/gcc/7/default.nix | 8 | ||||
-rw-r--r-- | pkgs/development/compilers/gcc/8/default.nix | 9 | ||||
-rw-r--r-- | pkgs/development/compilers/gcc/9/default.nix | 8 | ||||
-rw-r--r-- | pkgs/development/compilers/gcc/common/configure-flags.nix | 3 | ||||
-rw-r--r-- | pkgs/development/compilers/gcc/common/extra-target-flags.nix | 4 | ||||
-rw-r--r-- | pkgs/development/compilers/go/1.18.nix | 2 | ||||
-rw-r--r-- | pkgs/development/compilers/go/1.19.nix | 2 |
13 files changed, 40 insertions, 40 deletions
diff --git a/pkgs/development/compilers/gcc/10/default.nix b/pkgs/development/compilers/gcc/10/default.nix index 207860b90c0..e4cebab266e 100644 --- a/pkgs/development/compilers/gcc/10/default.nix +++ b/pkgs/development/compilers/gcc/10/default.nix @@ -37,7 +37,7 @@ assert langGo -> langCC; assert langAda -> gnatboot != null; # threadsCross is just for MinGW -assert threadsCross != null -> stdenv.targetPlatform.isWindows; +assert threadsCross != {} -> stdenv.targetPlatform.isWindows; # profiledCompiler builds inject non-determinism in one of the compilation stages. # If turned on, we can't provide reproducible builds anymore @@ -65,7 +65,7 @@ let majorVersion = "10"; ++ optional (targetPlatform.libc == "musl" && targetPlatform.isPower) ../ppc-musl.patch # Obtain latest patch with ../update-mcfgthread-patches.sh - ++ optional (!crossStageStatic && targetPlatform.isMinGW) ./Added-mcf-thread-model-support-from-mcfgthread.patch + ++ optional (!crossStageStatic && targetPlatform.isMinGW && threadsCross.model == "mcf") ./Added-mcf-thread-model-support-from-mcfgthread.patch ++ optional (buildPlatform.system == "aarch64-darwin" && targetPlatform != buildPlatform) (fetchpatch { url = "https://raw.githubusercontent.com/richard-vd/musl-cross-make/5e9e87f06fc3220e102c29d3413fbbffa456fcd6/patches/gcc-${version}/0008-darwin-aarch64-self-host-driver.patch"; @@ -179,7 +179,7 @@ stdenv.mkDerivation ({ ++ (optional (zlib != null) zlib) ; - depsTargetTarget = optional (!crossStageStatic && threadsCross != null) threadsCross; + depsTargetTarget = optional (!crossStageStatic && threadsCross != {} && threadsCross.package != null) threadsCross.package; NIX_LDFLAGS = lib.optionalString hostPlatform.isSunOS "-lm -ldl"; @@ -199,7 +199,7 @@ stdenv.mkDerivation ({ lib stdenv targetPackages - crossStageStatic libcCross + crossStageStatic libcCross threadsCross version gmp mpfr libmpc isl diff --git a/pkgs/development/compilers/gcc/11/default.nix b/pkgs/development/compilers/gcc/11/default.nix index 3b03e185dd8..220339c2959 100644 --- a/pkgs/development/compilers/gcc/11/default.nix +++ b/pkgs/development/compilers/gcc/11/default.nix @@ -37,7 +37,7 @@ assert langGo -> langCC; assert langAda -> gnatboot != null; # threadsCross is just for MinGW -assert threadsCross != null -> stdenv.targetPlatform.isWindows; +assert threadsCross != {} -> stdenv.targetPlatform.isWindows; # profiledCompiler builds inject non-determinism in one of the compilation stages. # If turned on, we can't provide reproducible builds anymore @@ -76,7 +76,7 @@ let majorVersion = "11"; }) # Obtain latest patch with ../update-mcfgthread-patches.sh - ++ optional (!crossStageStatic && targetPlatform.isMinGW) ./Added-mcf-thread-model-support-from-mcfgthread.patch; + ++ optional (!crossStageStatic && targetPlatform.isMinGW && threadsCross.model == "mcf") ./Added-mcf-thread-model-support-from-mcfgthread.patch; /* Cross-gcc settings (build == host != target) */ crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt"; @@ -187,7 +187,7 @@ stdenv.mkDerivation ({ ++ (optional (zlib != null) zlib) ; - depsTargetTarget = optional (!crossStageStatic && threadsCross != null) threadsCross; + depsTargetTarget = optional (!crossStageStatic && threadsCross != {} && threadsCross.package != null) threadsCross.package; NIX_LDFLAGS = lib.optionalString hostPlatform.isSunOS "-lm -ldl"; @@ -207,7 +207,7 @@ stdenv.mkDerivation ({ lib stdenv targetPackages - crossStageStatic libcCross + crossStageStatic libcCross threadsCross version gmp mpfr libmpc isl diff --git a/pkgs/development/compilers/gcc/12/default.nix b/pkgs/development/compilers/gcc/12/default.nix index c7fcd5475ad..78c7a12027c 100644 --- a/pkgs/development/compilers/gcc/12/default.nix +++ b/pkgs/development/compilers/gcc/12/default.nix @@ -41,7 +41,7 @@ assert langAda -> gnatboot != null; assert !langD; # threadsCross is just for MinGW -assert threadsCross != null -> stdenv.targetPlatform.isWindows; +assert threadsCross != {} -> stdenv.targetPlatform.isWindows; # profiledCompiler builds inject non-determinism in one of the compilation stages. # If turned on, we can't provide reproducible builds anymore @@ -71,7 +71,7 @@ let majorVersion = "12"; ++ optional langD ../libphobos.patch # Obtain latest patch with ../update-mcfgthread-patches.sh - ++ optional (!crossStageStatic && targetPlatform.isMinGW) ./Added-mcf-thread-model-support-from-mcfgthread.patch; + ++ optional (!crossStageStatic && targetPlatform.isMinGW && threadsCross.model == "mcf") ./Added-mcf-thread-model-support-from-mcfgthread.patch; /* Cross-gcc settings (build == host != target) */ crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt"; @@ -180,7 +180,7 @@ stdenv.mkDerivation ({ ++ (optional (zlib != null) zlib) ; - depsTargetTarget = optional (!crossStageStatic && threadsCross != null) threadsCross; + depsTargetTarget = optional (!crossStageStatic && threadsCross != {}) threadsCross.package; NIX_LDFLAGS = lib.optionalString hostPlatform.isSunOS "-lm -ldl"; @@ -201,7 +201,7 @@ stdenv.mkDerivation ({ lib stdenv targetPackages - crossStageStatic libcCross + crossStageStatic libcCross threadsCross version gmp mpfr libmpc isl diff --git a/pkgs/development/compilers/gcc/4.8/default.nix b/pkgs/development/compilers/gcc/4.8/default.nix index 0bd2e5e1b91..ba084af53ee 100644 --- a/pkgs/development/compilers/gcc/4.8/default.nix +++ b/pkgs/development/compilers/gcc/4.8/default.nix @@ -45,7 +45,7 @@ assert stdenv.buildPlatform.isDarwin -> gnused != null; assert langGo -> langCC; # threadsCross is just for MinGW -assert threadsCross != null -> stdenv.targetPlatform.isWindows; +assert threadsCross != {} -> stdenv.targetPlatform.isWindows; # profiledCompiler builds inject non-determinism in one of the compilation stages. # If turned on, we can't provide reproducible builds anymore @@ -188,7 +188,7 @@ stdenv.mkDerivation ({ ++ (optionals javaAwtGtk ([ gtk2 libart_lgpl ] ++ xlibs)) ; - depsTargetTarget = optional (!crossStageStatic && threadsCross != null) threadsCross; + depsTargetTarget = optional (!crossStageStatic && threadsCross != {}) threadsCross; preConfigure = import ../common/pre-configure.nix { inherit lib; @@ -204,7 +204,7 @@ stdenv.mkDerivation ({ lib stdenv targetPackages - crossStageStatic libcCross + crossStageStatic libcCross threadsCross version gmp mpfr libmpc isl diff --git a/pkgs/development/compilers/gcc/4.9/default.nix b/pkgs/development/compilers/gcc/4.9/default.nix index 9a977392aeb..516cdee708d 100644 --- a/pkgs/development/compilers/gcc/4.9/default.nix +++ b/pkgs/development/compilers/gcc/4.9/default.nix @@ -45,7 +45,7 @@ assert stdenv.buildPlatform.isDarwin -> gnused != null; assert langGo -> langCC; # threadsCross is just for MinGW -assert threadsCross != null -> stdenv.targetPlatform.isWindows; +assert threadsCross != {} -> stdenv.targetPlatform.isWindows; # profiledCompiler builds inject non-determinism in one of the compilation stages. # If turned on, we can't provide reproducible builds anymore @@ -208,7 +208,7 @@ stdenv.mkDerivation ({ ++ (optionals javaAwtGtk ([ gtk2 libart_lgpl ] ++ xlibs)) ; - depsTargetTarget = optional (!crossStageStatic && threadsCross != null) threadsCross; + depsTargetTarget = optional (!crossStageStatic && threadsCross != {}) threadsCross; preConfigure = import ../common/pre-configure.nix { inherit lib; @@ -224,7 +224,7 @@ stdenv.mkDerivation ({ lib stdenv targetPackages - crossStageStatic libcCross + crossStageStatic libcCross threadsCross version gmp mpfr libmpc isl diff --git a/pkgs/development/compilers/gcc/6/default.nix b/pkgs/development/compilers/gcc/6/default.nix index 8c28e9b4b46..8bd9d41f1ea 100644 --- a/pkgs/development/compilers/gcc/6/default.nix +++ b/pkgs/development/compilers/gcc/6/default.nix @@ -48,7 +48,7 @@ assert langGo -> langCC; assert langAda -> gnatboot != null; # threadsCross is just for MinGW -assert threadsCross != null -> stdenv.targetPlatform.isWindows; +assert threadsCross != {} -> stdenv.targetPlatform.isWindows; # profiledCompiler builds inject non-determinism in one of the compilation stages. # If turned on, we can't provide reproducible builds anymore @@ -72,7 +72,7 @@ let majorVersion = "6"; ++ optional (targetPlatform.libc == "musl") ../libgomp-dont-force-initial-exec.patch # Obtain latest patch with ../update-mcfgthread-patches.sh - ++ optional (!crossStageStatic && targetPlatform.isMinGW) ./Added-mcf-thread-model-support-from-mcfgthread.patch + ++ optional (!crossStageStatic && targetPlatform.isMinGW && threadsCross.model == "mcf") ./Added-mcf-thread-model-support-from-mcfgthread.patch ++ optional (targetPlatform.libc == "musl" && targetPlatform.isx86_32) (fetchpatch { url = "https://git.alpinelinux.org/aports/plain/main/gcc/gcc-6.1-musl-libssp.patch?id=5e4b96e23871ee28ef593b439f8c07ca7c7eb5bb"; sha256 = "1jf1ciz4gr49lwyh8knfhw6l5gvfkwzjy90m7qiwkcbsf4a3fqn2"; @@ -217,7 +217,7 @@ stdenv.mkDerivation ({ ++ (optionals javaAwtGtk ([ gtk2 libart_lgpl ] ++ xlibs)) ; - depsTargetTarget = optional (!crossStageStatic && threadsCross != null) threadsCross; + depsTargetTarget = optional (!crossStageStatic && threadsCross != {}) threadsCross.package; NIX_LDFLAGS = lib.optionalString hostPlatform.isSunOS "-lm -ldl"; @@ -235,7 +235,7 @@ stdenv.mkDerivation ({ lib stdenv targetPackages - crossStageStatic libcCross + crossStageStatic libcCross threadsCross version gmp mpfr libmpc isl diff --git a/pkgs/development/compilers/gcc/7/default.nix b/pkgs/development/compilers/gcc/7/default.nix index 4097d6999d7..637be9fd971 100644 --- a/pkgs/development/compilers/gcc/7/default.nix +++ b/pkgs/development/compilers/gcc/7/default.nix @@ -32,7 +32,7 @@ assert stdenv.buildPlatform.isDarwin -> gnused != null; assert langGo -> langCC; # threadsCross is just for MinGW -assert threadsCross != null -> stdenv.targetPlatform.isWindows; +assert threadsCross != {} -> stdenv.targetPlatform.isWindows; # profiledCompiler builds inject non-determinism in one of the compilation stages. # If turned on, we can't provide reproducible builds anymore @@ -75,7 +75,7 @@ let majorVersion = "7"; ++ optional (targetPlatform.libc == "musl") ../libgomp-dont-force-initial-exec.patch # Obtain latest patch with ../update-mcfgthread-patches.sh - ++ optional (!crossStageStatic && targetPlatform.isMinGW) ./Added-mcf-thread-model-support-from-mcfgthread.patch + ++ optional (!crossStageStatic && targetPlatform.isMinGW && threadsCross.model == "mcf") ./Added-mcf-thread-model-support-from-mcfgthread.patch ++ [ ../libsanitizer-no-cyclades-9.patch ]; @@ -184,7 +184,7 @@ stdenv.mkDerivation ({ ++ (optional (zlib != null) zlib) ; - depsTargetTarget = optional (!crossStageStatic && threadsCross != null) threadsCross; + depsTargetTarget = optional (!crossStageStatic && threadsCross != {}) threadsCross.package; NIX_CFLAGS_COMPILE = lib.optionalString (stdenv.cc.isClang && langFortran) "-Wno-unused-command-line-argument"; NIX_LDFLAGS = lib.optionalString hostPlatform.isSunOS "-lm -ldl"; @@ -203,7 +203,7 @@ stdenv.mkDerivation ({ lib stdenv targetPackages - crossStageStatic libcCross + crossStageStatic libcCross threadsCross version gmp mpfr libmpc isl diff --git a/pkgs/development/compilers/gcc/8/default.nix b/pkgs/development/compilers/gcc/8/default.nix index 26591000fd8..4eb47d00c5c 100644 --- a/pkgs/development/compilers/gcc/8/default.nix +++ b/pkgs/development/compilers/gcc/8/default.nix @@ -32,7 +32,7 @@ assert stdenv.buildPlatform.isDarwin -> gnused != null; assert langGo -> langCC; # threadsCross is just for MinGW -assert threadsCross != null -> stdenv.targetPlatform.isWindows; +assert threadsCross != {} -> stdenv.targetPlatform.isWindows; # profiledCompiler builds inject non-determinism in one of the compilation stages. # If turned on, we can't provide reproducible builds anymore @@ -59,8 +59,7 @@ let majorVersion = "8"; ++ optional (targetPlatform.libc == "musl") ../libgomp-dont-force-initial-exec.patch # Obtain latest patch with ../update-mcfgthread-patches.sh - ++ optional (!crossStageStatic && targetPlatform.isMinGW) ./Added-mcf-thread-model-support-from-mcfgthread.patch - + ++ optional (!crossStageStatic && targetPlatform.isMinGW && threadsCross.model == "mcf") ./Added-mcf-thread-model-support-from-mcfgthread.patch ++ [ ../libsanitizer-no-cyclades-9.patch ]; /* Cross-gcc settings (build == host != target) */ @@ -168,7 +167,7 @@ stdenv.mkDerivation ({ ++ (optional (zlib != null) zlib) ; - depsTargetTarget = optional (!crossStageStatic && threadsCross != null) threadsCross; + depsTargetTarget = optional (!crossStageStatic && threadsCross != {}) threadsCross.package; NIX_LDFLAGS = lib.optionalString hostPlatform.isSunOS "-lm -ldl"; @@ -186,7 +185,7 @@ stdenv.mkDerivation ({ lib stdenv targetPackages - crossStageStatic libcCross + crossStageStatic libcCross threadsCross version gmp mpfr libmpc isl diff --git a/pkgs/development/compilers/gcc/9/default.nix b/pkgs/development/compilers/gcc/9/default.nix index b970785d38e..4c49cdaa3e2 100644 --- a/pkgs/development/compilers/gcc/9/default.nix +++ b/pkgs/development/compilers/gcc/9/default.nix @@ -41,7 +41,7 @@ assert langGo -> langCC; assert langAda -> gnatboot != null; # threadsCross is just for MinGW -assert threadsCross != null -> stdenv.targetPlatform.isWindows; +assert threadsCross != {} -> stdenv.targetPlatform.isWindows; # profiledCompiler builds inject non-determinism in one of the compilation stages. # If turned on, we can't provide reproducible builds anymore @@ -71,7 +71,7 @@ let majorVersion = "9"; ++ optional (targetPlatform.libc == "musl" && targetPlatform.isPower) ../ppc-musl.patch # Obtain latest patch with ../update-mcfgthread-patches.sh - ++ optional (!crossStageStatic && targetPlatform.isMinGW) ./Added-mcf-thread-model-support-from-mcfgthread.patch + ++ optional (!crossStageStatic && targetPlatform.isMinGW && threadsCross.model == "mcf") ./Added-mcf-thread-model-support-from-mcfgthread.patch ; /* Cross-gcc settings (build == host != target) */ @@ -180,7 +180,7 @@ stdenv.mkDerivation ({ ++ (optional (zlib != null) zlib) ; - depsTargetTarget = optional (!crossStageStatic && threadsCross != null) threadsCross; + depsTargetTarget = optional (!crossStageStatic && threadsCross != {}) threadsCross.package; NIX_LDFLAGS = lib.optionalString hostPlatform.isSunOS "-lm -ldl"; @@ -198,7 +198,7 @@ stdenv.mkDerivation ({ lib stdenv targetPackages - crossStageStatic libcCross + crossStageStatic libcCross threadsCross version gmp mpfr libmpc isl diff --git a/pkgs/development/compilers/gcc/common/configure-flags.nix b/pkgs/development/compilers/gcc/common/configure-flags.nix index 09533163cbf..8e444d54bf3 100644 --- a/pkgs/development/compilers/gcc/common/configure-flags.nix +++ b/pkgs/development/compilers/gcc/common/configure-flags.nix @@ -2,6 +2,7 @@ , targetPackages , crossStageStatic, libcCross +, threadsCross , version , gmp, mpfr, libmpc, isl @@ -86,7 +87,7 @@ let "--enable-__cxa_atexit" "--enable-long-long" "--enable-threads=${if targetPlatform.isUnix then "posix" - else if targetPlatform.isWindows then "mcf" + else if targetPlatform.isWindows then (threadsCross.model or "win32") else "single"}" "--enable-nls" ] ++ lib.optionals (targetPlatform.libc == "uclibc" || targetPlatform.libc == "musl") [ diff --git a/pkgs/development/compilers/gcc/common/extra-target-flags.nix b/pkgs/development/compilers/gcc/common/extra-target-flags.nix index ad4ab6bcb4b..4dedd333b00 100644 --- a/pkgs/development/compilers/gcc/common/extra-target-flags.nix +++ b/pkgs/development/compilers/gcc/common/extra-target-flags.nix @@ -15,7 +15,7 @@ in "-B${lib.getLib dep}${dep.libdir or "/lib"}" ]); in mkFlags libcCross langD - ++ lib.optionals (!crossStageStatic) (mkFlags threadsCross langD) + ++ lib.optionals (!crossStageStatic) (mkFlags (threadsCross.package or null) langD) ; EXTRA_LDFLAGS_FOR_TARGET = let @@ -28,6 +28,6 @@ in "-Wl,-rpath-link,${lib.getLib dep}${dep.libdir or "/lib"}" ])); in mkFlags libcCross - ++ lib.optionals (!crossStageStatic) (mkFlags threadsCross) + ++ lib.optionals (!crossStageStatic) (mkFlags (threadsCross.package or null)) ; } diff --git a/pkgs/development/compilers/go/1.18.nix b/pkgs/development/compilers/go/1.18.nix index 07a590f3884..7f6e2ce6ace 100644 --- a/pkgs/development/compilers/go/1.18.nix +++ b/pkgs/development/compilers/go/1.18.nix @@ -61,7 +61,7 @@ stdenv.mkDerivation rec { depsBuildTarget = lib.optional isCross targetCC; - depsTargetTarget = lib.optional stdenv.targetPlatform.isWindows threadsCross; + depsTargetTarget = lib.optional stdenv.targetPlatform.isWindows threadsCross.package; postPatch = '' patchShebangs . diff --git a/pkgs/development/compilers/go/1.19.nix b/pkgs/development/compilers/go/1.19.nix index 0d977ec3af3..a406b21458d 100644 --- a/pkgs/development/compilers/go/1.19.nix +++ b/pkgs/development/compilers/go/1.19.nix @@ -61,7 +61,7 @@ stdenv.mkDerivation rec { depsBuildTarget = lib.optional isCross targetCC; - depsTargetTarget = lib.optional stdenv.targetPlatform.isWindows threadsCross; + depsTargetTarget = lib.optional stdenv.targetPlatform.isWindows threadsCross.package; postPatch = '' patchShebangs . |