]> ruderich.org/simon Gitweb - blhc/blhc.git/commitdiff
Detect more C++ non-verbose builds.
authorSimon Ruderich <simon@ruderich.org>
Thu, 29 Mar 2012 15:42:15 +0000 (17:42 +0200)
committerSimon Ruderich <simon@ruderich.org>
Thu, 29 Mar 2012 15:42:15 +0000 (17:42 +0200)
bin/blhc
t/logs/configure
t/logs/verbose-build
t/tests.t

index 87037453ac493594c06b3339118d28621be94f12..9800eafad367ab187ffedd6fe94ae9f4fc20ea45 100755 (executable)
--- a/bin/blhc
+++ b/bin/blhc
@@ -312,13 +312,16 @@ sub is_non_verbose_build {
     my ($line, $next_line, $skip_ref) = @_;
 
     if (not ($line =~ /^checking if you want to see long compiling messages\.\.\. no/
-                or $line =~ /^\s*\[?(?:CC|CCLD|CXX|CXXLD|LD|LINK)\]?\s+(.+?)$/
+                or $line =~ /^\s*\[?(?:CC|CCLD|C\+\+|CXX|CXXLD|LD|LINK)\]?\s+(.+?)$/
                 or $line =~ /^\s*(?:C|c)ompiling\s+(.+?)(?:\.\.\.)?$/
                 or $line =~ /^\s*(?:B|b)uilding (?:program|shared library)\s+(.+?)$/
                 or $line =~ /^\s*\[[\d ]+%\] Building (?:C|CXX) object (.+?)$/)) {
         return 0;
     }
 
+    # False positives.
+    return 0 if $line =~ /^\s*C\+\+.+?:\s+(?:yes|no)\s*$/;
+
     my $file = $1;
 
     # On the first pass we only check if this line is verbose or not.
@@ -586,6 +589,9 @@ FILE: foreach my $file (@ARGV) {
                 # `./configure` output.
                 next if not $non_verbose
                         and $line =~ /^(?:checking|(?:C|c)onfigure:) /;
+                next if $line =~ /^\s*(?:Host\s+)?(?:C(?:\+\+)?\s+)?
+                                   (?:C|c)ompiler[\s.]*:?\s+
+                                 /xo;
                 next if $line =~ /^\s*(?:- )?(?:HOST_)?(?:CC|CXX)\s*=\s*$cc_regex_full\s*$/o;
 
                 # Check if additional hardening options were used. Used to
index b390ba8036463c764f5de401f43bcde59f0c0df0..91cb3544ced2ba5511544501c1d0afb56041efec 100644 (file)
@@ -77,11 +77,15 @@ Configuration:
 Looking for compiler... gcc is executable.
 Looking for compiler... cc is executable.
 
+Compiler version:       gcc (Debian 4.6.3-1) 4.6.3
+
 configure: using CFLAGS=-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -fPIC
 configure: using LDFLAGS=-Wl,-z,relro -Wl,--as-needed -Wl,-z,now  -Wl,--as-needed
 
 configure: Compiling with gcc -fstack-protector-all et al.
 
+  C++ library:      yes
+
 echo Using CC="gcc"
 Using CC=gcc
 echo Using CXX="gcc"
index 835e7c5357e1486dc4dc1cb7d56552a17a78df53..aca060b7151f8cbae6251921c0567f48cc2c7d62 100644 (file)
@@ -48,6 +48,9 @@ checking whether compiling and linking against OpenSSL works... yes
 
 CC modules/server/test.c
 
+    C++      test/test.o
+C++ test.cpp
+
 Byte-compiling python modules...
 Byte-compiling python modules (optimized versions) ...
 Byte-compiling python modules...
index 69da46599b8e7ca66a2e8e82c0efbe4a3c268227..0d9281a583003b4f28d58624e00a9c9c5317119a 100644 (file)
--- a/t/tests.t
+++ b/t/tests.t
@@ -377,6 +377,8 @@ NONVERBOSE BUILD:       [CC]   src/test-b.o
 NONVERBOSE BUILD:       [CC]   src/test_c.o
 NONVERBOSE BUILD:       [LD]   src/test.o
 NONVERBOSE BUILD: CC modules/server/test.c
+NONVERBOSE BUILD:     C++      test/test.o
+NONVERBOSE BUILD: C++ test.cpp
 NONVERBOSE BUILD: Compiling test/test.cc to ../build/test/test.o
 NONVERBOSE BUILD: Building shared library ../build/test/libtest.so.1.2.3
 NONVERBOSE BUILD: Compiling test.cc to ../build/test/test.o