julia{18,19,}: fix build by a temporary hack

This is a low-rebuild version of PR #225273
/cc the proper and hopefully complete fix in PR #225220
This commit is contained in:
Vladimír Čunát 2023-04-10 16:34:07 +02:00
parent 995e7507ce
commit e2691227cd
No known key found for this signature in database
GPG key ID: E747DF1F9575A3AA
3 changed files with 22 additions and 4 deletions

View file

@ -17,6 +17,7 @@
, 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 ?
@ -407,7 +408,11 @@ stdenv.mkDerivation {
touch "$out/nix-support/libcxx-cxxflags"
touch "$out/nix-support/libcxx-ldflags"
''
+ optionalString (libcxx == null && (useGccForLibs && gccForLibs.langCC or false)) ''
# Adding -isystem flags should be done only for clang; gcc
# 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)) ''
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,6 +29,7 @@
, buildPackages
, libxcrypt
, disableGdbPlugin ? !enablePlugin
, disableBootstrap ? !stdenv.hostPlatform.isDarwin
, nukeReferences
, callPackage
}:
@ -56,7 +57,6 @@ with builtins;
let majorVersion = "12";
version = "${majorVersion}.2.0";
disableBootstrap = !stdenv.hostPlatform.isDarwin;
inherit (stdenv) buildPlatform hostPlatform targetPlatform;

View file

@ -14846,6 +14846,15 @@ 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;
@ -15327,8 +15336,12 @@ 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 { };
julia_19 = callPackage ../development/compilers/julia/1.9.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-lts-bin = julia_16-bin;
julia-stable-bin = julia_18-bin;