diff options
Diffstat (limited to 'gdb/testsuite/gdb.base')
-rw-r--r-- | gdb/testsuite/gdb.base/prelink-lib.c | 2 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/prelink.c | 6 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/prelink.exp | 9 |
3 files changed, 17 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.base/prelink-lib.c b/gdb/testsuite/gdb.base/prelink-lib.c index a28d724..c8f7c10 100644 --- a/gdb/testsuite/gdb.base/prelink-lib.c +++ b/gdb/testsuite/gdb.base/prelink-lib.c @@ -16,6 +16,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */ +int copyreloc = 1; + int g (void (*p)(void)) { diff --git a/gdb/testsuite/gdb.base/prelink.c b/gdb/testsuite/gdb.base/prelink.c index 115dc1f..96c1bb9 100644 --- a/gdb/testsuite/gdb.base/prelink.c +++ b/gdb/testsuite/gdb.base/prelink.c @@ -18,6 +18,11 @@ #include <stdio.h> +extern int copyreloc; + +/* Test GDB itself finds `&bssvar' right. */ +static int bssvar, *bssvarp = &bssvar; + extern void (*h (void)) (void (*)(void)); int @@ -25,5 +30,6 @@ main (void) { void (*f) (void (*)(void)) = h (); printf ("%p\n", f); + printf ("%d\n", copyreloc); f (0); } diff --git a/gdb/testsuite/gdb.base/prelink.exp b/gdb/testsuite/gdb.base/prelink.exp index 8931c9f..fe88d25 100644 --- a/gdb/testsuite/gdb.base/prelink.exp +++ b/gdb/testsuite/gdb.base/prelink.exp @@ -57,6 +57,13 @@ if {$prelink_args == ""} { return -1 } +set test "split debug of executable" +if [gdb_gnu_strip_debug $binfile] { + fail $test +} else { + pass $test +} + if ![prelink_yes $prelink_args] { # Maybe we don't have prelink. return -1 @@ -105,3 +112,5 @@ clean_restart $executable gdb_test_no_output "set verbose on" gdb_test "core-file $objdir/$subdir/prelink.core" "Using PIC \\(Position Independent Code\\) prelink displacement 0x\[^0\]\[0-9a-f\]* for \[^\r\n\]*[file tail ${libfile}].*" "seen displacement message" + +gdb_test "p &bssvar == bssvarp" " = 1" ".dynbss vs. .bss address shift" |