aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2006-06-01 05:40:24 +0000
committerH.J. Lu <hjl.tools@gmail.com>2006-06-01 05:40:24 +0000
commit1224efb888c0f18139c170b28a57d67e80c90a40 (patch)
tree29c304c753951c38c55d71718ca677497d17357c /ld
parent117ed4f8d5a9691c0bc1200d5d797e5211688c84 (diff)
downloadbinutils-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/ChangeLog18
-rw-r--r--ld/testsuite/ld-elf/binutils.exp67
-rw-r--r--ld/testsuite/ld-elf/commonpage1.d1
-rw-r--r--ld/testsuite/ld-elf/maxpage1.d1
-rw-r--r--ld/testsuite/ld-elf/maxpage1.s8
-rw-r--r--ld/testsuite/ld-elf/maxpage2.d9
-rw-r--r--ld/testsuite/ld-elf/tbss1.s24
-rw-r--r--ld/testsuite/ld-elf/tbss2.s16
-rw-r--r--ld/testsuite/ld-elf/tdata1.s24
-rw-r--r--ld/testsuite/ld-elf/tdata2.s16
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