# Ignore compiler warnings for now.
next if $line =~ /$warning_regex/o;
- # Remove all ANSI color sequences which are sometimes used in non-verbose
- # builds.
- $line = Term::ANSIColor::colorstrip($line);
- # Also strip '\0xf' (delete previous character), used by Elinks' build
- # system.
- $line =~ s/\x0f//g;
- # And "ESC(B" which seems to be used on armhf and hurd (not sure what it
- # does).
- $line =~ s/\033\(B//g;
+ if ($line =~ /\033/) { # esc
+ # Remove all ANSI color sequences which are sometimes used in
+ # non-verbose builds.
+ $line = Term::ANSIColor::colorstrip($line);
+ # Also strip '\0xf' (delete previous character), used by Elinks' build
+ # system.
+ $line =~ s/\x0f//g;
+ # And "ESC(B" which seems to be used on armhf and hurd (not sure what
+ # it does).
+ $line =~ s/\033\(B//g;
+ }
# Check if this line indicates a non verbose build.
my $non_verbose = is_non_verbose_build($line);
# line. parse_line() is slow, only use it when necessary.
my @line = (not $line =~ /;/)
? ($line)
- : Text::ParseWords::parse_line(';', 1, $line);
+ : map {
+ # Ensure newline at the line end - necessary for correct
+ # parsing later.
+ $_ =~ s/\s+$//;
+ $_ .= "\n";
+ } Text::ParseWords::parse_line(';', 1, $line);
foreach $line (@line) {
- # Add newline, drop all other whitespace at the end of a line.
- $line =~ s/\s+$//;
- $line .= "\n";
-
if ($continuation) {
$continuation = 0;
# Check the specified hardening options, same order as dpkg-buildflags.
if ($harden_pie) {
- @cflags = (@cflags, @cflags_pie);
+ @cflags = (@cflags, @cflags_pie);
@cxxflags = (@cxxflags, @cflags_pie);
- @ldflags = (@ldflags, @ldflags_pie);
+ @ldflags = (@ldflags, @ldflags_pie);
}
if ($harden_stack) {
- @cflags = (@cflags, @cflags_stack);
+ @cflags = (@cflags, @cflags_stack);
@cxxflags = (@cxxflags, @cflags_stack);
}
if ($harden_fortify) {
@cppflags = (@cppflags, @cppflags_fortify);
}
if ($harden_format) {
- @cflags = (@cflags, @cflags_format);
+ @cflags = (@cflags, @cflags_format);
@cxxflags = (@cxxflags, @cflags_format);
}
if ($harden_relro) {