about summary refs log tree commit diff
path: root/pkgs/build-support
diff options
context:
space:
mode:
authorRobert Scott <code@humanleg.org.uk>2023-10-16 18:25:08 +0100
committerRobert Scott <code@humanleg.org.uk>2024-02-24 12:00:09 +0000
commit4a91b3e798c7fb9faa8613e4180d39ac3db42266 (patch)
treebe9651e8740be34b7e50922c5d01fd36b83dca67 /pkgs/build-support
parentcfc5c35a0b39f3dc4ab73c2e4cd12191eb4ebe09 (diff)
downloadnixlib-4a91b3e798c7fb9faa8613e4180d39ac3db42266.tar
nixlib-4a91b3e798c7fb9faa8613e4180d39ac3db42266.tar.gz
nixlib-4a91b3e798c7fb9faa8613e4180d39ac3db42266.tar.bz2
nixlib-4a91b3e798c7fb9faa8613e4180d39ac3db42266.tar.lz
nixlib-4a91b3e798c7fb9faa8613e4180d39ac3db42266.tar.xz
nixlib-4a91b3e798c7fb9faa8613e4180d39ac3db42266.tar.zst
nixlib-4a91b3e798c7fb9faa8613e4180d39ac3db42266.zip
cc-wrapper: add trivialautovarinit hardening flag support
this equates to -ftrivial-auto-var-init=pattern

clang has removed support for -ftrivial-auto-var-init=zero and
are unlikely to re-add it, so use -ftrivial-auto-var-init=pattern
on both compilers if only to make behaviour more consistent
between the two.

add to pkgsExtraHardening's defaultHardeningFlags.
Diffstat (limited to 'pkgs/build-support')
-rw-r--r--pkgs/build-support/cc-wrapper/add-hardening.sh6
1 files changed, 5 insertions, 1 deletions
diff --git a/pkgs/build-support/cc-wrapper/add-hardening.sh b/pkgs/build-support/cc-wrapper/add-hardening.sh
index e884f8388b58..ef166e2f50c5 100644
--- a/pkgs/build-support/cc-wrapper/add-hardening.sh
+++ b/pkgs/build-support/cc-wrapper/add-hardening.sh
@@ -32,7 +32,7 @@ if [[ -n "${hardeningEnableMap[fortify3]-}" ]]; then
 fi
 
 if (( "${NIX_DEBUG:-0}" >= 1 )); then
-  declare -a allHardeningFlags=(fortify fortify3 stackprotector pie pic strictoverflow format zerocallusedregs)
+  declare -a allHardeningFlags=(fortify fortify3 stackprotector pie pic strictoverflow format trivialautovarinit zerocallusedregs)
   declare -A hardeningDisableMap=()
 
   # Determine which flags were effectively disabled so we can report below.
@@ -106,6 +106,10 @@ for flag in "${!hardeningEnableMap[@]}"; do
         hardeningCFlagsBefore+=('-fno-strict-overflow')
       fi
       ;;
+    trivialautovarinit)
+      if (( "${NIX_DEBUG:-0}" >= 1 )); then echo HARDENING: enabling trivialautovarinit >&2; fi
+      hardeningCFlagsBefore+=('-ftrivial-auto-var-init=pattern')
+      ;;
     format)
       if (( "${NIX_DEBUG:-0}" >= 1 )); then echo HARDENING: enabling format >&2; fi
       hardeningCFlagsBefore+=('-Wformat' '-Wformat-security' '-Werror=format-security')