diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2006-06-01 05:40:24 +0000 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2006-06-01 05:40:24 +0000 |
commit | 1224efb888c0f18139c170b28a57d67e80c90a40 (patch) | |
tree | 29c304c753951c38c55d71718ca677497d17357c /ld | |
parent | 117ed4f8d5a9691c0bc1200d5d797e5211688c84 (diff) | |
download | binutils-1224efb888c0f18139c170b28a57d67e80c90a40.zip binutils-1224efb888c0f18139c170b28a57d67e80c90a40.tar.gz binutils-1224efb888c0f18139c170b28a57d67e80c90a40.tar.bz2 |
include/elf/
2006-05-31 H.J. Lu <hongjiu.lu@intel.com>
* internal.h (ELF_SECTION_SIZE): New.
(ELF_IS_SECTION_IN_SEGMENT): Likewise.
(ELF_IS_SECTION_IN_SEGMENT_FILE): Updated.
(ELF_IS_SECTION_IN_SEGMENT_MEMORY): Likewise.
ld/testsuite/
2006-05-31 H.J. Lu <hongjiu.lu@intel.com>
* ld-elf/binutils.exp: Make it Linux only.
(strip_test): Renamed to binutils_test. Check for unsupported
options.
Add more tests.
* ld-elf/commonpage1.d: Make it Linux only.
* ld-elf/maxpage1.d: Likewise.
* ld-elf/maxpage1.s: Add main, start and __start.
* ld-elf/maxpage2.d: New file.
* ld-elf/tbss1.s: Likewise.
* ld-elf/tbss2.s: Likewise.
* ld-elf/tdata1.s: Likewise.
* ld-elf/tdata2.s: Likewise.
Diffstat (limited to 'ld')
-rw-r--r-- | ld/testsuite/ChangeLog | 18 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/binutils.exp | 67 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/commonpage1.d | 1 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/maxpage1.d | 1 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/maxpage1.s | 8 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/maxpage2.d | 9 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/tbss1.s | 24 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/tbss2.s | 16 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/tdata1.s | 24 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/tdata2.s | 16 |
10 files changed, 169 insertions, 15 deletions
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index 405a18a..c32f594 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,21 @@ +2006-05-31 H.J. Lu <hongjiu.lu@intel.com> + + * ld-elf/binutils.exp: Make it Linux only. + (strip_test): Renamed to binutils_test. Check for unsupported + options. + Add more tests. + + * ld-elf/commonpage1.d: Make it Linux only. + * ld-elf/maxpage1.d: Likewise. + + * ld-elf/maxpage1.s: Add main, start and __start. + + * ld-elf/maxpage2.d: New file. + * ld-elf/tbss1.s: Likewise. + * ld-elf/tbss2.s: Likewise. + * ld-elf/tdata1.s: Likewise. + * ld-elf/tdata2.s: Likewise. + 2006-05-30 H.J. Lu <hongjiu.lu@intel.com> * ld-elf/binutils.exp: New file. diff --git a/ld/testsuite/ld-elf/binutils.exp b/ld/testsuite/ld-elf/binutils.exp index 77ba761..aa59b69 100644 --- a/ld/testsuite/ld-elf/binutils.exp +++ b/ld/testsuite/ld-elf/binutils.exp @@ -20,26 +20,41 @@ # Make sure that binutils can correctly handle ld output in ELF. -# This test can only be run on ELF platforms. -if ![is_elf_format] { +# Run on Linux only. +if { ![istarget *-*-linux*] } { return } -proc strip_test { ld_options test } { +if { [istarget *-*-linux*aout*] + || [istarget *-*-linux*oldld*] } { + return +} + +proc binutils_test { prog_name ld_options test } { global as global ld global READELF + global objcopy global strip global srcdir global subdir + global link_output + + eval set prog \$$prog_name + set test_name "$prog_name $ld_options ($test)" if { ![ld_assemble $as $srcdir/$subdir/$test.s tmpdir/$test.o ] } { - unresolved "$ld_options" + unresolved "$test_name" return } if { ![ld_simple_link $ld tmpdir/$test "$ld_options tmpdir/$test.o"] } { - unresolved "$ld_options" + if { [string match "*not supported*" $link_output] + || [string match "*unrecognized option*" $link_output] } { + unsupported "$ld_options is not supported by this target" + } else { + unresolved "$test_name" + } return } @@ -47,15 +62,15 @@ proc strip_test { ld_options test } { catch "exec $READELF -l --wide tmpdir/$test > tmpdir/$test.exp" got if ![string match "" $got] then { send_log "$got\n" - unresolved "$ld_options" + unresolved "$test_name" return } - send_log "$strip tmpdir/$test\n" - catch "exec $strip tmpdir/$test" got + send_log "$prog tmpdir/$test\n" + catch "exec $prog tmpdir/$test" got if ![string match "" $got] then { send_log "$got\n" - unresolved "$ld_options" + fail "$test_name" return } @@ -63,18 +78,42 @@ proc strip_test { ld_options test } { catch "exec $READELF -l --wide tmpdir/$test > tmpdir/$test.out" got if ![string match "" $got] then { send_log "$got\n" - unresolved "$ld_options" + unresolved "$test_name" return } if { [catch {exec cmp tmpdir/$test.exp tmpdir/$test.out}] } then { send_log "tmpdir/$test.exp tmpdir/$test.out differ.\n" - fail "$ld_options" + fail "$test_name" return } - pass "$ld_options" + pass "$test_name" } -strip_test "-z max-page-size=0x200000" maxpage1 -strip_test "-z max-page-size=0x200000 -z common-page-size=0x100000" maxpage1 +binutils_test strip "-z max-page-size=0x200000" maxpage1 +binutils_test strip "-z max-page-size=0x200000 -z common-page-size=0x100000" maxpage1 +binutils_test strip "-z max-page-size=0x100000" maxpage1 +binutils_test strip "-z max-page-size=0x100000 -z common-page-size=0x1000" maxpage1 + +binutils_test strip "" maxpage1 +binutils_test strip "-shared" maxpage1 +binutils_test objcopy "" maxpage1 +binutils_test objcopy "-shared" maxpage1 + +binutils_test objcopy "" tbss1 +binutils_test objcopy "-shared" tbss1 +binutils_test objcopy "-z max-page-size=0x100000" tbss1 +binutils_test objcopy "-z max-page-size=0x100000 -z common-page-size=0x1000" tbss1 +binutils_test objcopy "" tdata1 +binutils_test objcopy "-shared" tdata1 +binutils_test objcopy "-z max-page-size=0x100000" tdata1 +binutils_test objcopy "-z max-page-size=0x100000 -z common-page-size=0x1000" tdata1 +binutils_test objcopy "" tbss2 +binutils_test objcopy "-shared" tbss2 +binutils_test objcopy "-z max-page-size=0x100000" tbss2 +binutils_test objcopy "-z max-page-size=0x100000 -z common-page-size=0x1000" tbss2 +binutils_test objcopy "-z max-page-size=0x100000" tdata2 +binutils_test objcopy "" tdata2 +binutils_test objcopy "-shared" tdata2 +binutils_test objcopy "-z max-page-size=0x100000 -z common-page-size=0x1000" tdata2 diff --git a/ld/testsuite/ld-elf/commonpage1.d b/ld/testsuite/ld-elf/commonpage1.d index 5b685b2..76dc056 100644 --- a/ld/testsuite/ld-elf/commonpage1.d +++ b/ld/testsuite/ld-elf/commonpage1.d @@ -1,6 +1,7 @@ #source: maxpage1.s #ld: -z max-page-size=0x200000 -z common-page-size=0x100000 #readelf: -l --wide +#target: *-*-linux* #... LOAD+.*0x200000 diff --git a/ld/testsuite/ld-elf/maxpage1.d b/ld/testsuite/ld-elf/maxpage1.d index f7f2dbf..57acda0 100644 --- a/ld/testsuite/ld-elf/maxpage1.d +++ b/ld/testsuite/ld-elf/maxpage1.d @@ -1,6 +1,7 @@ #source: maxpage1.s #ld: -z max-page-size=0x200000 #readelf: -l --wide +#target: *-*-linux* #... LOAD+.*0x200000 diff --git a/ld/testsuite/ld-elf/maxpage1.s b/ld/testsuite/ld-elf/maxpage1.s index b64ee3a..1a7735a 100644 --- a/ld/testsuite/ld-elf/maxpage1.s +++ b/ld/testsuite/ld-elf/maxpage1.s @@ -1,6 +1,12 @@ + .globl main + .globl start + .globl _start + .globl __start .text - .global _start +main: +start: _start: +__start: .long 0 .data diff --git a/ld/testsuite/ld-elf/maxpage2.d b/ld/testsuite/ld-elf/maxpage2.d new file mode 100644 index 0000000..7fe9379 --- /dev/null +++ b/ld/testsuite/ld-elf/maxpage2.d @@ -0,0 +1,9 @@ +#source: maxpage1.s +#ld: -z max-page-size=0x100000 +#readelf: -l --wide +#target: *-*-linux* + +#... + LOAD+.*0x100000 + LOAD+.*0x100000 +#pass diff --git a/ld/testsuite/ld-elf/tbss1.s b/ld/testsuite/ld-elf/tbss1.s new file mode 100644 index 0000000..4f1631f --- /dev/null +++ b/ld/testsuite/ld-elf/tbss1.s @@ -0,0 +1,24 @@ + .globl main + .globl start + .globl _start + .globl __start + .text +main: +start: +_start: +__start: + .byte 0 + .globl bss + .section .bss,"aw",%nobits + .p2align 12 + .type bss,%object + .size bss,4096 +bss: + .zero 4096 + .globl tbss + .section .tbss,"awT",%nobits + .p2align 12 + .type tbss,%object + .size tbss,4096 +tbss: + .zero 4096 diff --git a/ld/testsuite/ld-elf/tbss2.s b/ld/testsuite/ld-elf/tbss2.s new file mode 100644 index 0000000..b980925 --- /dev/null +++ b/ld/testsuite/ld-elf/tbss2.s @@ -0,0 +1,16 @@ + .globl main + .globl start + .globl _start + .globl __start + .text +main: +start: +_start: +__start: + .byte 0 + .globl tbss + .section .tbss,"awT",%nobits + .type tbss,%object + .size tbss,1 +tbss: + .zero 1 diff --git a/ld/testsuite/ld-elf/tdata1.s b/ld/testsuite/ld-elf/tdata1.s new file mode 100644 index 0000000..6ea57b6 --- /dev/null +++ b/ld/testsuite/ld-elf/tdata1.s @@ -0,0 +1,24 @@ + .globl main + .globl start + .globl _start + .globl __start + .text +main: +start: +_start: +__start: + .byte 0 + .globl data + .section .data,"aw",%progbits + .p2align 4 + .type data,%object + .size data,4096 +data: + .zero 4096 + .globl tdata + .section .tdata,"awT",%progbits + .p2align 4 + .type tdata,%object + .size tdata,4096 +tdata: + .zero 4096 diff --git a/ld/testsuite/ld-elf/tdata2.s b/ld/testsuite/ld-elf/tdata2.s new file mode 100644 index 0000000..1da459f --- /dev/null +++ b/ld/testsuite/ld-elf/tdata2.s @@ -0,0 +1,16 @@ + .globl main + .globl start + .globl _start + .globl __start + .text +main: +start: +_start: +__start: + .byte 0 + .globl tdata + .section .tdata,"awT",%progbits + .type tdata,%object + .size tdata,1 +tdata: + .byte 0 |