cc-wrapper: set FC when langFortran is on

We need to set FC so that CMake and other tools can find the fortran
compiler. Also we need to limit the hardening flags since fortify and
format don’t work with fortran.

Fixes #88449
wip/yesman
Matthew Bauer 4 years ago
parent 4855aa62fa
commit f42aa7e1d7
  1. 5
      pkgs/build-support/cc-wrapper/default.nix
  2. 11
      pkgs/build-support/cc-wrapper/fortran-hook.sh

@ -214,6 +214,7 @@ stdenv.mkDerivation {
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
''
+ optionalString cc.langJava or false ''
@ -232,8 +233,8 @@ stdenv.mkDerivation {
setupHooks = [
../setup-hooks/role.bash
./setup-hook.sh
];
] ++ stdenv.lib.optional (cc.langC or true) ./setup-hook.sh
++ stdenv.lib.optional (cc.langFortran or false) ./fortran-hook.sh;
postFixup =
''

@ -0,0 +1,11 @@
getTargetRole
getTargetRoleWrapper
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"}
export NIX_HARDENING_ENABLE
unset -v role_post
Loading…
Cancel
Save