diff options
Diffstat (limited to 'ld/testsuite/ld-elf')
-rw-r--r-- | ld/testsuite/ld-elf/compress.exp | 167 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/gabiend.rt | 4 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/gabinormal.rt | 4 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/gnubegin.rS | 3 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/gnunormal.rS | 3 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/zlibbegin.rS | 3 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/zlibnormal.rS | 3 |
7 files changed, 186 insertions, 1 deletions
diff --git a/ld/testsuite/ld-elf/compress.exp b/ld/testsuite/ld-elf/compress.exp index adb7fc2..e2448b9 100644 --- a/ld/testsuite/ld-elf/compress.exp +++ b/ld/testsuite/ld-elf/compress.exp @@ -49,7 +49,8 @@ set build_tests { "-shared" "-fPIC -g -Wa,--compress-debug-sections" {foo.c} {} "libfoo.so"} {"Build libbar.so with compressed debug sections" - "-shared" "-fPIC -g -Wa,--compress-debug-sections" + "-shared -Wl,--compress-debug-sections=none" + "-fPIC -g -Wa,--compress-debug-sections" {begin.c end.c} {} "libbar.so"} {"Build libfoozlib.so with compressed debug sections with zlib-gabi" "-shared" "-fPIC -g -Wa,--compress-debug-sections=zlib-gabi" @@ -57,6 +58,30 @@ set build_tests { {"Build libbarzlib.so with compressed debug sections with zlib-gabi" "-shared" "-fPIC -g -Wa,--compress-debug-sections=zlib-gabi" {begin.c end.c} {} "libbarzlib.so"} + {"Build libzlibfoo.so with zlib compressed debug sections" + "-shared -Wl,--compress-debug-sections=zlib" + "-fPIC -g -Wa,--compress-debug-sections=zlib" + {foo.c} {} "libzlibfoo.so"} + {"Build libgnufoo.so with zlib-gnu compressed debug sections" + "-shared -Wl,--compress-debug-sections=zlib-gnu" + "-fPIC -g -Wa,--compress-debug-sections=zlib-gnu" + {foo.c} {} "libgnufoo.so"} + {"Build libgabifoo.so with zlib-gabi compressed debug sections" + "-shared -Wl,--compress-debug-sections=zlib-gabi" + "-fPIC -g -Wa,--compress-debug-sections=zlib-gabi" + {foo.c} {} "libgabifoo.so"} + {"Build zlibbegin.o with zlib compressed debug sections" + "-r -nostdlib -Wl,--compress-debug-sections=zlib" + "-g -Wa,--compress-debug-sections=zlib" + {begin.c} {} "zlibbegin.o"} + {"Build gnubegin.o with zlib-gnu compressed debug sections" + "-r -nostdlib -Wl,--compress-debug-sections=zlib-gnu" + "-g -Wa,--compress-debug-sections=zlib-gnu" + {begin.c} {} "gnubegin.o"} + {"Build gabiend.o with zlib-gabi compressed debug sections" + "-r -nostdlib -Wl,--compress-debug-sections=zlib-gabi" + "-g -Wa,--compress-debug-sections=zlib-gnu" + {end.c} {} "gabiend.o"} } set run_tests { @@ -66,6 +91,15 @@ set run_tests { {"Run normal with libfoo.so with compressed debug sections with zlib-gabi" "tmpdir/begin.o tmpdir/libfoozlib.so tmpdir/end.o" "" {main.c} "normal" "normal.out" "-Wa,--compress-debug-sections=zlib-gabi"} + {"Run zlibnormal with libzlibfoo.so with zlib compressed debug sections" + "tmpdir/begin.o tmpdir/libzlibfoo.so tmpdir/end.o --compress-debug-sections=zlib" "" + {main.c} "zlibnormal" "normal.out" "-Wa,--compress-debug-sections=zlib"} + {"Run gnunormal with libgnufoo.so with zlib-gnu compressed debug sections" + "tmpdir/gnubegin.o tmpdir/libgnufoo.so tmpdir/end.o --compress-debug-sections=zlib-gnu" "" + {main.c} "gnunormal" "normal.out" "-Wa,--compress-debug-sections=zlib-gnu"} + {"Run gabinormal with libgabifoo.so with zlib-gabi compressed debug sections" + "tmpdir/zlibbegin.o tmpdir/libgabifoo.so tmpdir/gabiend.o --compress-debug-sections=zlib-gabi" "" + {main.c} "gabinormal" "normal.out" "-Wa,--compress-debug-sections=zlib-gabi"} } run_cc_link_tests $build_tests @@ -79,3 +113,134 @@ if { [catch {exec cmp tmpdir/libfoo.so tmpdir/libfoozlib.so}] } then { } else { pass "$test_name" } + +global READELF + +set test_name "Link -r with zlib compressed debug output" +set test zlibbegin +send_log "$READELF -S -W tmpdir/$test.o > tmpdir/$test.out\n" +set got [remote_exec host "$READELF -S -W tmpdir/$test.o" "" "/dev/null" "tmpdir/$test.out"] +if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then { + send_log "$got\n" + unresolved "$test_name" +} +if { [regexp_diff tmpdir/$test.out $srcdir/$subdir/$test.rS] } then { + fail "$test_name" +} else { + pass "$test_name" +} + +set test_name "Link -r with zlib-gnu compressed debug output" +set test gnubegin +send_log "$READELF -S -W tmpdir/$test.o > tmpdir/$test.out\n" +set got [remote_exec host "$READELF -S -W tmpdir/$test.o" "" "/dev/null" "tmpdir/$test.out"] +if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then { + send_log "$got\n" + unresolved "$test_name" +} +if { [regexp_diff tmpdir/$test.out $srcdir/$subdir/$test.rS] } then { + fail "$test_name" +} else { + pass "$test_name" +} + +set test_name "Link -r with zlib-gabi compressed debug output" +set test gabiend +send_log "$READELF -t -W tmpdir/$test.o > tmpdir/$test.out\n" +set got [remote_exec host "$READELF -t -W tmpdir/$test.o" "" "/dev/null" "tmpdir/$test.out"] +if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then { + send_log "$got\n" + unresolved "$test_name" +} +if { [regexp_diff tmpdir/$test.out $srcdir/$subdir/$test.rt] } then { + fail "$test_name" +} else { + pass "$test_name" +} + +set test_name "Link with zlib compressed debug output" +set test normal +send_log "$READELF -w tmpdir/$test > tmpdir/$test.out\n" +set got [remote_exec host "$READELF -w tmpdir/$test" "" "/dev/null" "tmpdir/$test.out"] +if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then { + send_log "$got\n" + unresolved "$test_name" +} + +set test_name "Link with zlib compressed debug output" +set test zlibnormal +send_log "$READELF -w tmpdir/$test | sed -e \"s/.zdebug_/.debug_/\" > tmpdir/$test.out\n" +set got [remote_exec host "$READELF -w tmpdir/$test | sed -e \"s/.zdebug_/.debug_/\"" "" "/dev/null" "tmpdir/$test.out"] +if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then { + send_log "$got\n" + unresolved "$test_name" +} +if { [catch {exec cmp tmpdir/normal.out tmpdir/$test.out}] } then { + send_log "tmpdir/normal.out tmpdir/$test.out differ.\n" + fail "$test_name" +} else { + pass "$test_name" +} +send_log "$READELF -S -W tmpdir/$test' > tmpdir/$test.out\n" +set got [remote_exec host "$READELF -S -W tmpdir/$test" "" "/dev/null" "tmpdir/$test.out"] +if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then { + send_log "$got\n" + unresolved "$test_name" +} +if { [regexp_diff tmpdir/$test.out $srcdir/$subdir/$test.rS] } then { + fail "$test_name" +} else { + pass "$test_name" +} + +set test_name "Link with zlib-gnu compressed debug output" +set test gnunormal +send_log "$READELF -w tmpdir/$test | sed -e \"s/.zdebug_/.debug_/\" > tmpdir/$test.out\n" +set got [remote_exec host "$READELF -w tmpdir/$test | sed -e \"s/.zdebug_/.debug_/\"" "" "/dev/null" "tmpdir/$test.out"] +if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then { + send_log "$got\n" + unresolved "$test_name" +} +if { [catch {exec cmp tmpdir/normal.out tmpdir/$test.out}] } then { + send_log "tmpdir/normal.out tmpdir/$test.out differ.\n" + fail "$test_name" +} else { + pass "$test_name" +} +send_log "$READELF -S -W tmpdir/$test' > tmpdir/$test.out\n" +set got [remote_exec host "$READELF -S -W tmpdir/$test" "" "/dev/null" "tmpdir/$test.out"] +if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then { + send_log "$got\n" + unresolved "$test_name" +} +if { [regexp_diff tmpdir/$test.out $srcdir/$subdir/$test.rS] } then { + fail "$test_name" +} else { + pass "$test_name" +} + +set test gabinormal +set test_name "Link with zlib-gabi compressed debug output" +send_log "$READELF -w tmpdir/$test > tmpdir/$test.out\n" +set got [remote_exec host "$READELF -w tmpdir/$test" "" "/dev/null" "tmpdir/$test.out"] +if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then { + send_log "$got\n" + unresolved "$test_name" +} +if { [catch {exec cmp tmpdir/normal.out tmpdir/$test.out}] } then { + send_log "tmpdir/normal.out tmpdir/$test.out differ.\n" + fail "$test_name" +} else { + pass "$test_name" +} +send_log "$READELF -t -W tmpdir/$test > tmpdir/$test.out\n" +set got [remote_exec host "$READELF -t -W tmpdir/$test" "" "/dev/null" "tmpdir/$test.out"] +if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then { + send_log "$got\n" + unresolved "$test_name" +} +if { [regexp_diff tmpdir/$test.out $srcdir/$subdir/$test.rt] } then { + fail "$test_name" +} else { + pass "$test_name" +} diff --git a/ld/testsuite/ld-elf/gabiend.rt b/ld/testsuite/ld-elf/gabiend.rt new file mode 100644 index 0000000..23bc36c --- /dev/null +++ b/ld/testsuite/ld-elf/gabiend.rt @@ -0,0 +1,4 @@ +#... + +\[[0-9a-f]+\]: .*COMPRESSED + +ZLIB, [0-9a-f]+, 1 +#pass diff --git a/ld/testsuite/ld-elf/gabinormal.rt b/ld/testsuite/ld-elf/gabinormal.rt new file mode 100644 index 0000000..23bc36c --- /dev/null +++ b/ld/testsuite/ld-elf/gabinormal.rt @@ -0,0 +1,4 @@ +#... + +\[[0-9a-f]+\]: .*COMPRESSED + +ZLIB, [0-9a-f]+, 1 +#pass diff --git a/ld/testsuite/ld-elf/gnubegin.rS b/ld/testsuite/ld-elf/gnubegin.rS new file mode 100644 index 0000000..54de24c --- /dev/null +++ b/ld/testsuite/ld-elf/gnubegin.rS @@ -0,0 +1,3 @@ +#... + +\[[ 0-9]+\] .zdebug_.* +(PROGBITS|MIPS_DWARF) +0+ +[0-9a-f]+ +[0-9a-f]+ [0-9a-f]+ +0 +0 +1 +#pass diff --git a/ld/testsuite/ld-elf/gnunormal.rS b/ld/testsuite/ld-elf/gnunormal.rS new file mode 100644 index 0000000..54de24c --- /dev/null +++ b/ld/testsuite/ld-elf/gnunormal.rS @@ -0,0 +1,3 @@ +#... + +\[[ 0-9]+\] .zdebug_.* +(PROGBITS|MIPS_DWARF) +0+ +[0-9a-f]+ +[0-9a-f]+ [0-9a-f]+ +0 +0 +1 +#pass diff --git a/ld/testsuite/ld-elf/zlibbegin.rS b/ld/testsuite/ld-elf/zlibbegin.rS new file mode 100644 index 0000000..54de24c --- /dev/null +++ b/ld/testsuite/ld-elf/zlibbegin.rS @@ -0,0 +1,3 @@ +#... + +\[[ 0-9]+\] .zdebug_.* +(PROGBITS|MIPS_DWARF) +0+ +[0-9a-f]+ +[0-9a-f]+ [0-9a-f]+ +0 +0 +1 +#pass diff --git a/ld/testsuite/ld-elf/zlibnormal.rS b/ld/testsuite/ld-elf/zlibnormal.rS new file mode 100644 index 0000000..54de24c --- /dev/null +++ b/ld/testsuite/ld-elf/zlibnormal.rS @@ -0,0 +1,3 @@ +#... + +\[[ 0-9]+\] .zdebug_.* +(PROGBITS|MIPS_DWARF) +0+ +[0-9a-f]+ +[0-9a-f]+ [0-9a-f]+ +0 +0 +1 +#pass |