diff options
author | Jakub Jelinek <jakub@redhat.com> | 2002-10-10 07:49:11 +0000 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2002-10-10 07:49:11 +0000 |
commit | 2030e6d786607499a56eeda4a28d2e0c2ba585aa (patch) | |
tree | d1a1f437c53e27ab5b2a7fdf27ade9476eac4901 | |
parent | 967c0d836c8acc7fa86dd490c483f850dbadb851 (diff) | |
download | binutils-gdb-2030e6d786607499a56eeda4a28d2e0c2ba585aa.tar.gz |
* ld-i386/combreloc.s: New test.
* ld-i386/combreloc.d: New test.
* ld-i386/i386.exp (i386tests): Add it.
-rw-r--r-- | ld/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | ld/testsuite/ld-i386/combreloc.d | 18 | ||||
-rw-r--r-- | ld/testsuite/ld-i386/combreloc.s | 22 | ||||
-rw-r--r-- | ld/testsuite/ld-i386/i386.exp | 2 |
4 files changed, 48 insertions, 0 deletions
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index f55976317e9..3a681f687ea 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2002-10-10 Jakub Jelinek <jakub@redhat.com> + + * ld-i386/combreloc.s: New test. + * ld-i386/combreloc.d: New test. + * ld-i386/i386.exp (i386tests): Add it. + 2002-10-10 Alan Modra <amodra@bigpond.net.au> * ld-i386/i386.exp (reloc): Turn off combreloc. diff --git a/ld/testsuite/ld-i386/combreloc.d b/ld/testsuite/ld-i386/combreloc.d new file mode 100644 index 00000000000..762f48126cc --- /dev/null +++ b/ld/testsuite/ld-i386/combreloc.d @@ -0,0 +1,18 @@ +# Test that orphan reloc sections are merged into .rel.dyn with +# -z combreloc. +#source: combreloc.s +#as: --32 +#ld: -shared -melf_i386 -z combreloc +#readelf: -r +#target: i?86-*-* + +Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 4 entries: + Offset Info Type Sym.Value Sym. Name +[0-9a-f]+ [0-9a-f]+01 R_386_32 [0-9a-f]+ _start +[0-9a-f]+ [0-9a-f]+01 R_386_32 [0-9a-f]+ _start +[0-9a-f]+ [0-9a-f]+01 R_386_32 [0-9a-f]+ _start +[0-9a-f]+ [0-9a-f]+06 R_386_GLOB_DAT [0-9a-f]+ _start + +Relocation section '.rel.plt' at offset 0x[0-9a-f]+ contains 1 entries: + Offset Info Type Sym.Value Sym. Name +[0-9a-f]+ [0-9a-f]+07 R_386_JUMP_SLOT [0-9a-f]+ foo diff --git a/ld/testsuite/ld-i386/combreloc.s b/ld/testsuite/ld-i386/combreloc.s new file mode 100644 index 00000000000..2a78a7ce9b5 --- /dev/null +++ b/ld/testsuite/ld-i386/combreloc.s @@ -0,0 +1,22 @@ + .text + .globl _start, foo + .type _start,@function +_start: + pushl %ebp + movl %esp, %ebp + pushl %ebx + call 1f +1: popl %ebx + addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ebx + movl _start@GOT(%ebx), %eax + movl (%eax), %eax + call foo@PLT + movl (%esp), %ebx + leave +foo: ret + .data + .long _start + .section "__libc_subfreeres", "aw", @progbits + .long _start + .section "__libc_atexit", "aw", @progbits + .long _start diff --git a/ld/testsuite/ld-i386/i386.exp b/ld/testsuite/ld-i386/i386.exp index 680ced91c54..7f572da729a 100644 --- a/ld/testsuite/ld-i386/i386.exp +++ b/ld/testsuite/ld-i386/i386.exp @@ -59,6 +59,8 @@ set i386tests { {{objdump -drj.text tlsindntpoff.dd}} "tlsindntpoff"} {"Reloc section order" "-shared -melf_i386 -z nocombreloc" "--32" {reloc.s} {{objdump -hw reloc.d}} "reloc.so"} + {"-z combreloc relocation sections" "-shared -melf_i386 -z combreloc" + "--32" {combreloc.s} {{readelf -r combreloc.d}} "combreloc.so"} } run_ld_link_tests $i386tests |