]> ruderich.org/simon Gitweb - blhc/blhc.git/blobdiff - bin/blhc
Fix --ignore-flag -D_FORTIFY_SOURCE=2.
[blhc/blhc.git] / bin / blhc
index c3834fbf07aeaec8757b1c6cc3499fbc47ab5bd0..51fc4e14d62e1849d09ab06e171aaf0544d446ee 100755 (executable)
--- a/bin/blhc
+++ b/bin/blhc
@@ -172,6 +172,7 @@ my @def_cxxflags = (
 my @def_cppflags = ();
 my @def_cppflags_fortify = (
     '-D_FORTIFY_SOURCE=2', # must be first, see cppflags_fortify_broken()
+    # If you add another flag fix hack below (search for "Hack to fix").
 );
 my @def_cppflags_fortify_bad = (
     # These flags may overwrite -D_FORTIFY_SOURCE=2.
@@ -862,6 +863,13 @@ foreach my $file (@ARGV) {
         @ldflags = (@ldflags, @def_ldflags_bindnow);
     }
 
+    # Hack to fix cppflags_fortify_broken() if --ignore-flag
+    # -D_FORTIFY_SOURCE=2 is used to ignore missing fortification. Only works
+    # as long as @def_cppflags_fortify contains only one variable.
+    if (scalar @def_cppflags_fortify == 0) {
+        $harden_fortify = 0;
+    }
+
     # Ignore flags for this arch if requested.
     if ($arch and exists $option_ignore_arch_flag{$arch}) {
         my @flag_refs = (\@cflags, \@cxxflags, \@cppflags, \@ldflags);