]> ruderich.org/simon Gitweb - blhc/blhc.git/blobdiff - bin/blhc
Fix --ignore-flag with -fPIE.
[blhc/blhc.git] / bin / blhc
index 6156b7d1a9b47616e6391b1887ade3cf2453c6c0..a51c860158608a12116c60a5d5113d182014dbb0 100755 (executable)
--- a/bin/blhc
+++ b/bin/blhc
@@ -202,11 +202,11 @@ my @flag_refs = (
     \@def_ldflags,
     \@def_ldflags_relro,
     \@def_ldflags_bindnow,
+    \@def_ldflags_pie,
 );
 # References to all used flags.
 my @flag_refs_all = (
     @flag_refs,
-    \@def_ldflags_pie,
     \@def_ldflags_pic,
 );
 # Renaming rules for the output so the regex parts are not visible. Also
@@ -533,7 +533,7 @@ FILE:
 foreach my $file (@ARGV) {
     print "checking '$file'...\n" if scalar @ARGV > 1;
 
-    open my $fh, '<', $file or die "$!: $file";
+    open my $fh, '<', $file or die $!;
 
     # Architecture of this file.
     my $arch = $option_arch;
@@ -1033,17 +1033,17 @@ changes are in effect:
 
 =over 2
 
-=item
+=item *
 
 Print tags instead of normal warnings, see L</"BUILDD TAGS"> for a list of
 possible tags.
 
-=item
+=item *
 
 Don't check hardening flags in old log files (if dpkg-dev << 1.16.1 is
 detected).
 
-=item
+=item *
 
 Don't require Term::ANSIColor.
 
@@ -1129,17 +1129,13 @@ which is displayed.
 
 =over 2
 
-=item
-
-B<I-hardening-wrapper-used>
+=item B<I-hardening-wrapper-used>
 
 The package uses hardening-wrapper which intercepts calls to gcc and adds
 hardening flags. The build log doesn't contain any hardening flags and thus
 can't be checked by blhc.
 
-=item
-
-B<W-compiler-flags-hidden> (summary of hidden lines)
+=item B<W-compiler-flags-hidden> (summary of hidden lines)
 
 Build log contains lines which hide the real compiler flags. For example:
 
@@ -1153,19 +1149,20 @@ F<debian/rules> fixes builds with hidden compiler flags. Sometimes C<.SILENT>
 in a F<Makefile> must be removed. And as last resort the F<Makefile> must be
 patched to remove the C<@>s hiding the real compiler commands.
 
-=item
-
-B<W-dpkg-buildflags-missing> (summary of missing flags)
+=item B<W-dpkg-buildflags-missing> (summary of missing flags)
 
 CPPFLAGS, CFLAGS, CXXFLAGS, LDFLAGS missing.
 
-=item
-
-B<I-invalid-cmake-used> (version)
+=item B<I-invalid-cmake-used> (version)
 
-=item
+By default CMake ignores CPPFLAGS thus missing those hardening flags. Debian
+patched CMake in versions 2.8.7-1 and 2.8.7-2 to respect CPPFLAGS, but this
+patch was rejected by upstream and later reverted in Debian. Thus those two
+versions show correct usage of CPPFLAGS even if the package doesn't correctly
+handle them (for example by passing them to CFLAGS). To prevent false
+negatives just blacklist those two versions.
 
-B<I-no-compiler-commands>
+=item B<I-no-compiler-commands>
 
 No compiler commands were detected. Either the log contains none or they were
 not correctly detected by blhc (please report the bug in this case).
@@ -1203,6 +1200,11 @@ Missing hardening flags.
 
 Hardening wrapper detected, no tests performed.
 
+=item B<32>
+
+Invalid CMake version used. See B<I-invalid-cmake-used> under L</"BUILDD
+TAGS"> for a detailed explanation.
+
 =back
 
 =head1 AUTHOR