From 319ebef3a361a914fc2e3b90bc9ff66ed8d2e107 Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Sat, 26 Jan 2019 20:36:42 -0500 Subject: [PATCH] Revert "Merge pull request #36948 from dtzWill/fix/glibc-libgcc_s" This reverts commit 80ff19a45f40ddb3a3c55dbd929295fcb946eabb, reversing changes made to 43e867a226a8dc5c9c968aeae1c526697c71cd32. --- pkgs/development/libraries/glibc/default.nix | 16 ++++ pkgs/top-level/all-packages.nix | 86 +++++++++++++------- 2 files changed, 74 insertions(+), 28 deletions(-) diff --git a/pkgs/development/libraries/glibc/default.nix b/pkgs/development/libraries/glibc/default.nix index a5422b4c837d..e46985d3fca8 100644 --- a/pkgs/development/libraries/glibc/default.nix +++ b/pkgs/development/libraries/glibc/default.nix @@ -39,6 +39,22 @@ callPackage ./common.nix { inherit stdenv; } { # limit rebuilds by only disabling pie w/musl ++ stdenv.lib.optional stdenv.hostPlatform.isMusl "pie"; + # When building glibc from bootstrap-tools, we need libgcc_s at RPATH for + # any program we run, because the gcc will have been placed at a new + # store path than that determined when built (as a source for the + # bootstrap-tools tarball) + # Building from a proper gcc staying in the path where it was installed, + # libgcc_s will not be at {gcc}/lib, and gcc's libgcc will be found without + # any special hack. + preInstall = '' + if [ -f ${stdenv.cc.cc}/lib/libgcc_s.so.1 ]; then + mkdir -p $out/lib + cp ${stdenv.cc.cc}/lib/libgcc_s.so.1 $out/lib/libgcc_s.so.1 + # the .so It used to be a symlink, but now it is a script + cp -a ${stdenv.cc.cc}/lib/libgcc_s.so $out/lib/libgcc_s.so + fi + ''; + postInstall = '' echo SUPPORTED-LOCALES=C.UTF-8/UTF-8 > ../glibc-2*/localedata/SUPPORTED make -j''${NIX_BUILD_CORES:-1} -l''${NIX_BUILD_CORES:-1} localedata/install-locales diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 860db43fce6c..e4ecba9d702c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7336,51 +7336,67 @@ in llvmPackages = recurseIntoAttrs llvmPackages_5; - llvmPackages_35 = callPackage ../development/compilers/llvm/3.5 { + llvmPackages_35 = callPackage ../development/compilers/llvm/3.5 ({ isl = isl_0_14; - }; + } // stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) { + stdenv = overrideCC stdenv buildPackages.gcc6; + }); - llvmPackages_37 = callPackage ../development/compilers/llvm/3.7 { + llvmPackages_37 = callPackage ../development/compilers/llvm/3.7 ({ inherit (stdenvAdapters) overrideCC; buildLlvmTools = buildPackages.llvmPackages_37.tools; targetLlvmLibraries = targetPackages.llvmPackages_37.libraries; - }; + } // stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) { + stdenv = overrideCC stdenv buildPackages.gcc6; + }); - llvmPackages_38 = callPackage ../development/compilers/llvm/3.8 { + llvmPackages_38 = callPackage ../development/compilers/llvm/3.8 ({ inherit (stdenvAdapters) overrideCC; buildLlvmTools = buildPackages.llvmPackages_38.tools; targetLlvmLibraries = targetPackages.llvmPackages_38.libraries; - }; + } // stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) { + stdenv = overrideCC stdenv buildPackages.gcc6; + }); - llvmPackages_39 = callPackage ../development/compilers/llvm/3.9 { + llvmPackages_39 = callPackage ../development/compilers/llvm/3.9 ({ inherit (stdenvAdapters) overrideCC; buildLlvmTools = buildPackages.llvmPackages_39.tools; targetLlvmLibraries = targetPackages.llvmPackages_39.libraries; - }; + } // stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) { + stdenv = overrideCC stdenv buildPackages.gcc6; + }); - llvmPackages_4 = callPackage ../development/compilers/llvm/4 { + llvmPackages_4 = callPackage ../development/compilers/llvm/4 ({ inherit (stdenvAdapters) overrideCC; buildLlvmTools = buildPackages.llvmPackages_4.tools; targetLlvmLibraries = targetPackages.llvmPackages_4.libraries; - }; + } // stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) { + stdenv = overrideCC stdenv buildPackages.gcc6; + }); - llvmPackages_5 = callPackage ../development/compilers/llvm/5 { + llvmPackages_5 = callPackage ../development/compilers/llvm/5 ({ inherit (stdenvAdapters) overrideCC; buildLlvmTools = buildPackages.llvmPackages_5.tools; targetLlvmLibraries = targetPackages.llvmPackages_5.libraries; - }; + } // stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) { + stdenv = overrideCC stdenv buildPackages.gcc6; # with gcc-7: undefined reference to `__divmoddi4' + }); - llvmPackages_6 = callPackage ../development/compilers/llvm/6 { + llvmPackages_6 = callPackage ../development/compilers/llvm/6 ({ inherit (stdenvAdapters) overrideCC; buildLlvmTools = buildPackages.llvmPackages_6.tools; targetLlvmLibraries = targetPackages.llvmPackages_6.libraries; - }; + } // stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) { + stdenv = overrideCC stdenv buildPackages.gcc6; # with gcc-7: undefined reference to `__divmoddi4' + }); - llvmPackages_7 = callPackage ../development/compilers/llvm/7 { + llvmPackages_7 = callPackage ../development/compilers/llvm/7 ({ inherit (stdenvAdapters) overrideCC; buildLlvmTools = buildPackages.llvmPackages_7.tools; targetLlvmLibraries = targetPackages.llvmPackages_7.libraries; - }; + } // stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) { + stdenv = overrideCC stdenv buildPackages.gcc6; # with gcc-7: undefined reference to `__divmoddi4' + }); llvmPackages_latest = llvmPackages_7; @@ -7499,10 +7515,12 @@ in }; # For beta and nightly releases use the nixpkgs-mozilla overlay - rust = callPackage ../development/compilers/rust { + rust = callPackage ../development/compilers/rust ({ inherit (darwin.apple_sdk.frameworks) CoreFoundation Security; llvm = llvm_7; - }; + } // stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) { + stdenv = overrideCC stdenv gcc6; # with gcc-7: undefined reference to `__divmoddi4' + }); inherit (rust) cargo rustc; buildRustCrate = callPackage ../build-support/rust/build-rust-crate { }; @@ -8131,9 +8149,11 @@ in spark_22 = callPackage ../applications/networking/cluster/spark { version = "2.2.1"; }; spidermonkey_1_8_5 = callPackage ../development/interpreters/spidermonkey/1.8.5.nix { }; - spidermonkey_38 = callPackage ../development/interpreters/spidermonkey/38.nix { + spidermonkey_38 = callPackage ../development/interpreters/spidermonkey/38.nix ({ inherit (darwin) libobjc; - }; + } // (stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) { + stdenv = overrideCC stdenv gcc6; # with gcc-7: undefined reference to `__divmoddi4' + })); spidermonkey_52 = callPackage ../development/interpreters/spidermonkey/52.nix { }; spidermonkey_60 = callPackage ../development/interpreters/spidermonkey/60.nix { }; spidermonkey = spidermonkey_38; @@ -10364,18 +10384,28 @@ in hyperscan = callPackage ../development/libraries/hyperscan { }; - icu58 = callPackage (import ../development/libraries/icu/58.nix fetchurl) { + icu58 = callPackage (import ../development/libraries/icu/58.nix fetchurl) ({ nativeBuildRoot = buildPackages.icu58.override { buildRootOnly = true; }; - }; - icu59 = callPackage ../development/libraries/icu/59.nix { + } // + (stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) { + stdenv = overrideCC stdenv gcc6; # with gcc-7: undefined reference to `__divmoddi4' + })); + icu59 = callPackage ../development/libraries/icu/59.nix ({ nativeBuildRoot = buildPackages.icu59.override { buildRootOnly = true; }; - }; - icu60 = callPackage ../development/libraries/icu/60.nix { + } // (stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) { + stdenv = overrideCC stdenv gcc6; # with gcc-7: undefined reference to `__divmoddi4' + })); + icu60 = callPackage ../development/libraries/icu/60.nix ({ nativeBuildRoot = buildPackages.icu60.override { buildRootOnly = true; }; - }; - icu63 = callPackage ../development/libraries/icu/63.nix { + } // (stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) { + stdenv = overrideCC stdenv gcc6; # with gcc-7: undefined reference to `__divmoddi4' + })); + icu63 = callPackage ../development/libraries/icu/63.nix ({ nativeBuildRoot = buildPackages.icu63.override { buildRootOnly = true; }; - }; + } // (stdenv.lib.optionalAttrs (stdenv.cc.isGNU && stdenv.hostPlatform.isi686) { + stdenv = overrideCC stdenv gcc6; # with gcc-7: undefined reference to `__divmoddi4' + })); + icu = icu59; id3lib = callPackage ../development/libraries/id3lib { };