From 1f6366d38cdd8b858b903ebcad9166cd48196f40 Mon Sep 17 00:00:00 2001 From: Theodore Ni <3806110+tjni@users.noreply.github.com> Date: Fri, 19 Aug 2022 00:08:11 -0700 Subject: [PATCH] cc-wrapper: fortran: enable stackprotector on M1 Was failing due to https://github.com/iains/gcc-darwin-arm64/issues/54, fix picked up in https://github.com/NixOS/nixpkgs/pull/186477. --- pkgs/build-support/cc-wrapper/default.nix | 9 +-------- pkgs/build-support/cc-wrapper/fortran-hook.sh | 2 +- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/pkgs/build-support/cc-wrapper/default.nix b/pkgs/build-support/cc-wrapper/default.nix index b9dc9fc9a723..797a735f5a6e 100644 --- a/pkgs/build-support/cc-wrapper/default.nix +++ b/pkgs/build-support/cc-wrapper/default.nix @@ -251,19 +251,12 @@ 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 59e493e1836d..d72f314c01ce 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="@fortran_hardening@"} +: ${NIX_HARDENING_ENABLE="stackprotector pic strictoverflow relro bindnow"} export NIX_HARDENING_ENABLE unset -v role_post