t/logs/debian-cmake
t/logs/debian-cmake-2
t/logs/debian-cmake-ok
+t/logs/debian-gcc-pie
t/logs/debian-hardening-wrapper
t/logs/debian-hardening-wrapper-old-build-depends
t/logs/debian-hardening-wrapper-pbuilder
- Add better support for Fortran (c.f. Debian Bug #853265).
- Don't report missing PIE flags in buildd mode if GCC defaults to PIE (c.f.
Debian Bug 845339).
+- Add new --debian option to handle PIE flags like buildd mode, thanks to
+ Eriberto Mota for the suggestion. This is not enabled per default to prevent
+ false negatives as the flags are missing from the build log and blhc can't
+ detect if the compiler applied PIE internally (c.f. Debian Bug 845339).
Version 0.07
my $option_all = 0;
my $option_arch = undef;
my $option_buildd = 0;
+my $option_debian = 0;
$option_color = 0;
if (not Getopt::Long::GetOptions(
'help|h|?' => \$option_help,
'color' => \$option_color,
'arch=s' => \$option_arch,
'buildd' => \$option_buildd,
+ 'debian' => \$option_debian,
)) {
require Pod::Usage;
Pod::Usage::pod2usage(2);
my $parallel = 10;
# Don't check for PIE flags if automatically applied by the compiler. Only
- # used in buildd mode.
+ # used in buildd and Debian mode.
my $disable_harden_pie = 0;
+ if ($option_debian) {
+ $disable_harden_pie = 1;
+ }
while (my $line = <$fh>) {
# Detect architecture automatically unless overridden. For buildd logs
=back
+=item B<--debian>
+
+Apply Debian-specific settings. At the moment this only disables checking for
+PIE which is automatically applied by Debian's GCC and no longer requires a
+compiler command line argument.
+
=item B<--color>
Use colored (ANSI) output for warning messages.
--- /dev/null
+dpkg-buildpackage: source package foo package
+dpkg-buildpackage: host architecture amd64
+
+gcc -g -O2 -D_FORTIFY_SOURCE=2 -Wl,-z,relro -Wl,-z,now -fstack-protector-strong -Wformat -Werror=format-security -o test test.c
+gcc -fPIE -pie -g -O2 -D_FORTIFY_SOURCE=2 -Wl,-z,relro -Wl,-z,now -fstack-protector-strong -Wformat -Werror=format-security -o test test.c
use strict;
use warnings;
-use Test::More tests => 226;
+use Test::More tests => 228;
sub is_blhc {
';
+# debian specific settings
+
+is_blhc 'debian-gcc-pie', '--debian', 0, '';
+
+
# multiple files
is_blhc ['good', 'good-pie', 'good-bindnow', 'good-all', 'good-multiline', 'good-library'], '', 0,