Merge pull request #225220 from amjoseph-nixpkgs/pr/gfortran/do-not-disable-bootstrap

This commit is contained in:
Artturi 2023-04-11 22:33:14 +03:00 committed by GitHub
commit a2da3d62a6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 10 additions and 24 deletions

View File

@ -17,7 +17,6 @@
, isGNU ? false, isClang ? cc.isClang or false, gnugrep ? null
, buildPackages ? {}
, libcxx ? null
, grossHackForStagingNext ? false
# Whether or not to add `-B` and `-L` to `nix-support/cc-{c,ld}flags`
, useCcForLibs ?
@ -412,7 +411,7 @@ stdenv.mkDerivation {
# already knows how to find its own libstdc++, and adding
# additional -isystem flags will confuse gfortran (see
# https://github.com/NixOS/nixpkgs/pull/209870#issuecomment-1500550903)
+ optionalString (libcxx == null && (if grossHackForStagingNext then isClang else true) && (useGccForLibs && gccForLibs.langCC or false)) ''
+ optionalString (libcxx == null && isClang && (useGccForLibs && gccForLibs.langCC or false)) ''
for dir in ${gccForLibs}${lib.optionalString (hostPlatform != targetPlatform) "/${targetPlatform.config}"}/include/c++/*; do
echo "-isystem $dir" >> $out/nix-support/libcxx-cxxflags
done

View File

@ -29,7 +29,6 @@
, buildPackages
, libxcrypt
, disableGdbPlugin ? !enablePlugin
, disableBootstrap ? !stdenv.hostPlatform.isDarwin
, nukeReferences
, callPackage
}:
@ -57,6 +56,7 @@ with builtins;
let majorVersion = "12";
version = "${majorVersion}.2.0";
disableBootstrap = !stdenv.hostPlatform.isDarwin;
inherit (stdenv) buildPlatform hostPlatform targetPlatform;

View File

@ -44,6 +44,9 @@ let
inherit (stdenv)
buildPlatform hostPlatform targetPlatform;
# See https://github.com/NixOS/nixpkgs/pull/209870#issuecomment-1500550903
disableBootstrap' = disableBootstrap && !langFortran;
crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt";
crossDarwin = targetPlatform != hostPlatform && targetPlatform.libc == "libSystem";
@ -217,7 +220,7 @@ let
# TODO: aarch64-darwin has clang stdenv and its arch and cpu flag values are incompatible with gcc
++ lib.optionals (!(stdenv.isDarwin && stdenv.isAarch64)) (import ../common/platform-flags.nix { inherit (stdenv) targetPlatform; inherit lib; })
++ lib.optionals (targetPlatform != hostPlatform) crossConfigureFlags
++ lib.optional disableBootstrap "--disable-bootstrap"
++ lib.optional disableBootstrap' "--disable-bootstrap"
# Platform-specific flags
++ lib.optional (targetPlatform == hostPlatform && targetPlatform.isx86_32) "--with-arch=${stdenv.hostPlatform.parsed.cpu.name}"

View File

@ -9,7 +9,7 @@
, python3
, openblas
, zlib
, gfortran-tmp-noisystem
, gfortran
}:
let
@ -56,7 +56,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [
pkg-config
python3
gfortran-tmp-noisystem
gfortran
];
buildFlags = [

View File

@ -55,9 +55,6 @@ buildPythonPackage rec {
export SKLEARN_BUILD_PARALLEL=$NIX_BUILD_CORES
'';
# TODO: a proper fix? See around PR #225220
NIX_LDFLAGS = if stdenv.cc.isGNU then "-L${stdenv.cc.cc.lib}/lib" else null;
doCheck = !stdenv.isAarch64;
disabledTests = [

View File

@ -14855,15 +14855,6 @@ with pkgs;
profiledCompiler = false;
});
gfortran-tmp-noisystem = wrapCCWith { grossHackForStagingNext = true; cc = (gcc.cc.override {
name = "gfortran";
langFortran = true;
langCC = false;
langC = false;
profiledCompiler = false;
disableBootstrap = false;
}); };
gfortran48 = wrapCC (gcc48.cc.override {
name = "gfortran";
langFortran = true;
@ -15345,12 +15336,8 @@ with pkgs;
julia_16-bin = callPackage ../development/compilers/julia/1.6-bin.nix { };
julia_18-bin = callPackage ../development/compilers/julia/1.8-bin.nix { };
julia_18 = callPackage ../development/compilers/julia/1.8.nix {
gfortran = gfortran-tmp-noisystem;
};
julia_19 = callPackage ../development/compilers/julia/1.9.nix {
gfortran = gfortran-tmp-noisystem;
};
julia_18 = callPackage ../development/compilers/julia/1.8.nix { };
julia_19 = callPackage ../development/compilers/julia/1.9.nix { };
julia-lts-bin = julia_16-bin;
julia-stable-bin = julia_18-bin;