]> ruderich.org/simon Gitweb - blhc/blhc.git/commitdiff
Improve linker command detection to handle line breaks correctly.
authorSimon Ruderich <simon@ruderich.org>
Wed, 14 Mar 2012 01:25:11 +0000 (02:25 +0100)
committerSimon Ruderich <simon@ruderich.org>
Wed, 14 Mar 2012 01:25:11 +0000 (02:25 +0100)
bin/blhc
t/logs/bad-multiline
t/logs/good-multiline
t/tests.t

index 9c3347c8eb9e510370562ae12401901655bffdf9..b99e7dc813eea3fe8ece2a0e62a04194fc792b34 100755 (executable)
--- a/bin/blhc
+++ b/bin/blhc
@@ -275,8 +275,8 @@ foreach my $line (@input) {
     my $linker   = 0;
 
     # Linker commands.
-    if ($line =~ m{\s-o\s+               # -o
-                   (\\\s+)*              # possible line continuation
+    if ($line =~ m{\s-o                  # -o
+                   [\s\\]*\s+            # possible line continuation
                    ([A-Za-z0-9_/.-]+/)?  # path to file
                    [A-Za-z0-9_-]+        # binary name (no dots!)
                    (\.so([0-9.])*|\.la)? # library (including version)
index 490690a1584e7cdc1a335b125df18f04e93e799e..9ecf89b8fa2b37266e3cd6373961382ed1a2d633 100644 (file)
@@ -9,6 +9,15 @@ gcc -g -O2 -fstack-protector -Wformat -Wformat-security -Werror=format-security\
 gcc -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -D_FORTIFY_SOURCE=2 -c test-c.c
 gcc -Wl,-z,relro -o test test-a.o test-b.o test-c.o\
        -ltest
+gcc -o\
+test test-c.o test-a.o test-b.o\
+       -ltest
+gcc -o \
+test test-c.o test-b.o test-a.o\
+       
+gcc -o \
+test test-b.o test-a.o test-c.c\
+       
 
 # Multiple commands in a single line.
 gcc -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -c test-a.c; gcc -D_FORTIFY_SOURCE=2 -c test-b.c
index cc4a90c89a74574578baf3de5ef95b9cd7db31a3..e97595872fae6ab852e0b94e7aadf369488c055d 100644 (file)
@@ -14,6 +14,18 @@ gcc \
        test \
            test-a.o test-b.o test-c.o \
 -ltest
+gcc \
+               -Wl,-z,relro \
+-o\
+test \
+           test-a.o test-b.o test-c.o \
+-ltest
+gcc \
+               -Wl,-z,relro \
+-o\
+       test\
+           test-a.o test-b.o test-c.o \
+-ltest
 
 # Multiple commands in a single line.
 gcc -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -D_FORTIFY_SOURCE=2 -c test-a.c; gcc -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -D_FORTIFY_SOURCE=2 -c test-b.c
index 60136066cb072ddba3d88c0b0067fbee2822e741..939dc8bf8f8ada717984bf81e289c27295ea0c8f 100644 (file)
--- a/t/tests.t
+++ b/t/tests.t
@@ -258,6 +258,11 @@ is_blhc 'bad-multiline', '', 4,
         "CFLAGS missing (-Wformat): gcc \\             -g -O2 -fstack-protector\\     --param=ssp-buffer-size=4 -Wformat-security\\ -Werror=format-security -D_FORTIFY_SOURCE=2 -c test-a.c
 CFLAGS missing (--param=ssp-buffer-size=4): gcc -g -O2 -fstack-protector -Wformat -Wformat-security -Werror=format-security\\ -D_FORTIFY_SOURCE=2\\ -c test-b.c
 CFLAGS missing (-Werror=format-security): gcc -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -D_FORTIFY_SOURCE=2 -c test-c.c
+LDFLAGS missing (-Wl,-z,relro): gcc -o\\ test test-c.o test-a.o test-b.o\\     -ltest
+LDFLAGS missing (-Wl,-z,relro): gcc -o \\ test test-c.o test-b.o test-a.o\\ 
+CFLAGS missing (-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security): gcc -o \\ test test-b.o test-a.o test-c.c\\ 
+CPPFLAGS missing (-D_FORTIFY_SOURCE=2): gcc -o \\ test test-b.o test-a.o test-c.c\\ 
+LDFLAGS missing (-Wl,-z,relro): gcc -o \\ test test-b.o test-a.o test-c.c\\ 
 CPPFLAGS missing (-D_FORTIFY_SOURCE=2): gcc -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -c test-a.c
 CFLAGS missing (-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security):  gcc -D_FORTIFY_SOURCE=2 -c test-b.c
 CFLAGS missing (-Wformat-security -Werror=format-security): gcc -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -D_FORTIFY_SOURCE=2 -c test-a.c