diff options
author | Vladimír Čunát <v@cunat.cz> | 2022-07-29 19:26:07 +0200 |
---|---|---|
committer | Vladimír Čunát <v@cunat.cz> | 2022-07-29 19:27:34 +0200 |
commit | 5b5843e2b24fc81206e4080fc1706188230fedb9 (patch) | |
tree | a610d7b2a7225300931f45b5933c715d04516b7d /pkgs/build-support/cc-wrapper | |
parent | ef45bf389af10c34dac1769e9e83bc3f204449c4 (diff) | |
parent | 2cc754a7baa72659430ec961608f0fc1dbe128df (diff) |
Merge #151983: wrapper: Fortran: disable stackprotector
...hardening on darwin aarch64 (merge into staging)
Diffstat (limited to 'pkgs/build-support/cc-wrapper')
-rw-r--r-- | pkgs/build-support/cc-wrapper/default.nix | 9 | ||||
-rw-r--r-- | pkgs/build-support/cc-wrapper/fortran-hook.sh | 2 |
2 files changed, 9 insertions, 2 deletions
diff --git a/pkgs/build-support/cc-wrapper/default.nix b/pkgs/build-support/cc-wrapper/default.nix index d2af065cde2b7..f8e28c452c339 100644 --- a/pkgs/build-support/cc-wrapper/default.nix +++ b/pkgs/build-support/cc-wrapper/default.nix @@ -249,12 +249,19 @@ stdenv.mkDerivation { wrap ${targetPrefix}gdc $wrapper $ccPath/${targetPrefix}gdc '' - + optionalString cc.langFortran or false '' + + optionalString cc.langFortran or false ('' wrap ${targetPrefix}gfortran $wrapper $ccPath/${targetPrefix}gfortran ln -sv ${targetPrefix}gfortran $out/bin/${targetPrefix}g77 ln -sv ${targetPrefix}gfortran $out/bin/${targetPrefix}f77 export named_fc=${targetPrefix}gfortran '' + # Darwin aarch64 fortran compilations seem to fail otherwise, see: + # https://github.com/NixOS/nixpkgs/issues/140041 + + (if (stdenvNoCC.isDarwin && stdenvNoCC.isAarch64) then '' + export fortran_hardening="pic strictoverflow relro bindnow" + '' else '' + export fortran_hardening="pic strictoverflow relro bindnow stackprotector" + '')) + optionalString cc.langJava or false '' wrap ${targetPrefix}gcj $wrapper $ccPath/${targetPrefix}gcj diff --git a/pkgs/build-support/cc-wrapper/fortran-hook.sh b/pkgs/build-support/cc-wrapper/fortran-hook.sh index d72f314c01ce6..59e493e1836d2 100644 --- a/pkgs/build-support/cc-wrapper/fortran-hook.sh +++ b/pkgs/build-support/cc-wrapper/fortran-hook.sh @@ -5,7 +5,7 @@ export FC${role_post}=@named_fc@ # If unset, assume the default hardening flags. # These are different for fortran. -: ${NIX_HARDENING_ENABLE="stackprotector pic strictoverflow relro bindnow"} +: ${NIX_HARDENING_ENABLE="@fortran_hardening@"} export NIX_HARDENING_ENABLE unset -v role_post |