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
This commit is contained in:
Matthew Bauer 2020-07-06 00:22:19 -04:00
parent 4855aa62fa
commit f42aa7e1d7
2 changed files with 14 additions and 2 deletions

View file

@ -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 =
''

View file

@ -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