XCOFF ld testsuite fixes
* testsuite/ld-scripts/align.exp: Don't exclude xcoff. Pass -bnogc ld option for xcoff. * testsuite/ld-scripts/provide.exp: Likewise. * testsuite/ld-scripts/data.exp: Pass -bnogc ld option for xcoff. * testsuite/ld-scripts/default-script.exp: Likewise. * testsuite/ld-scripts/defined.exp: Likewise. * testsuite/ld-scripts/empty-address.exp: Likewise. * testsuite/ld-scripts/expr.exp: Likewise. * testsuite/ld-scripts/include.exp: Likewise. * testsuite/ld-scripts/script.exp: Likewise. * testsuite/ld-scripts/assign-loc.d: Don't exclude xcoff. * testsuite/ld-scripts/defined3.d: Likewise. * testsuite/ld-scripts/defined4.d: Likewise. * testsuite/ld-scripts/pr18963.d: Likewise. * testsuite/ld-scripts/sane1.d: Likewise. * testsuite/ld-scripts/segment-start.d: Likewise. * testsuite/ld-scripts/include-1.d: Likewise, and relax text vma. * testsuite/ld-scripts/defined5.d: Update xfail and comment. * testsuite/ld-scripts/defined5.s: Tweak "defined" to be at non-zero section offset. * testsuite/ld-scripts/fill16.d: xfail for xcoff. * testsuite/ld-scripts/provide-2.d: Accept more symbols. * testsuite/ld-scripts/provide-4.d: Likewise. * testsuite/ld-scripts/provide-5.d: Likewise. * testsuite/ld-scripts/provide-6.d: Likewise. * testsuite/ld-scripts/provide-7.d: Likewise. * testsuite/ld-scripts/align.t: Accept xcoff mapped .text and .data. * testsuite/ld-scripts/defined3.t: Likewise. * testsuite/ld-scripts/defined4.t: Likewise. * testsuite/ld-scripts/defined5.t: Likewise. * testsuite/ld-scripts/fill.t: Likewise. * testsuite/ld-scripts/include-subdata.t: Likewise. * testsuite/ld-scripts/provide-1.t: Likewise. * testsuite/ld-scripts/provide-2.t: Likewise. * testsuite/ld-scripts/provide-3.t: Likewise. * testsuite/ld-scripts/provide-4.t: Likewise. * testsuite/ld-scripts/provide-5.t: Likewise. * testsuite/ld-scripts/provide-6.t: Likewise. * testsuite/ld-scripts/provide-7.t: Likewise. * testsuite/ld-scripts/provide-8.t: Likewise. * testsuite/ld-scripts/assign-loc.t: Add required xcoff sections. * testsuite/ld-scripts/sizeof.t: Likewise. * testsuite/ld-scripts/align2.t: Likewise, and mapped sections. * testsuite/ld-scripts/align5.t: Likewise. * testsuite/ld-scripts/default-script.t: Likewise. * testsuite/ld-scripts/empty-address-1.t: Likewise. * testsuite/ld-scripts/empty-address-2a.t: Likewise. * testsuite/ld-scripts/empty-address-2b.t: Likewise. * testsuite/ld-scripts/empty-address-3a.t: Likewise. * testsuite/ld-scripts/empty-address-3b.t: Likewise. * testsuite/ld-scripts/empty-address-3c.t: Likewise. * testsuite/ld-scripts/include-sections.t: Likewise. * testsuite/ld-scripts/pr14962.t: Likewise. * testsuite/ld-scripts/sane1.t: Likewise.
This commit is contained in:
parent
231b7382c0
commit
e553d5b2e7
57
ld/ChangeLog
57
ld/ChangeLog
@ -1,3 +1,60 @@
|
||||
2020-07-07 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* testsuite/ld-scripts/align.exp: Don't exclude xcoff. Pass
|
||||
-bnogc ld option for xcoff.
|
||||
* testsuite/ld-scripts/provide.exp: Likewise.
|
||||
* testsuite/ld-scripts/data.exp: Pass -bnogc ld option for xcoff.
|
||||
* testsuite/ld-scripts/default-script.exp: Likewise.
|
||||
* testsuite/ld-scripts/defined.exp: Likewise.
|
||||
* testsuite/ld-scripts/empty-address.exp: Likewise.
|
||||
* testsuite/ld-scripts/expr.exp: Likewise.
|
||||
* testsuite/ld-scripts/include.exp: Likewise.
|
||||
* testsuite/ld-scripts/script.exp: Likewise.
|
||||
* testsuite/ld-scripts/assign-loc.d: Don't exclude xcoff.
|
||||
* testsuite/ld-scripts/defined3.d: Likewise.
|
||||
* testsuite/ld-scripts/defined4.d: Likewise.
|
||||
* testsuite/ld-scripts/pr18963.d: Likewise.
|
||||
* testsuite/ld-scripts/sane1.d: Likewise.
|
||||
* testsuite/ld-scripts/segment-start.d: Likewise.
|
||||
* testsuite/ld-scripts/include-1.d: Likewise, and relax text vma.
|
||||
* testsuite/ld-scripts/defined5.d: Update xfail and comment.
|
||||
* testsuite/ld-scripts/defined5.s: Tweak "defined" to be at
|
||||
non-zero section offset.
|
||||
* testsuite/ld-scripts/fill16.d: xfail for xcoff.
|
||||
* testsuite/ld-scripts/provide-2.d: Accept more symbols.
|
||||
* testsuite/ld-scripts/provide-4.d: Likewise.
|
||||
* testsuite/ld-scripts/provide-5.d: Likewise.
|
||||
* testsuite/ld-scripts/provide-6.d: Likewise.
|
||||
* testsuite/ld-scripts/provide-7.d: Likewise.
|
||||
* testsuite/ld-scripts/align.t: Accept xcoff mapped .text and .data.
|
||||
* testsuite/ld-scripts/defined3.t: Likewise.
|
||||
* testsuite/ld-scripts/defined4.t: Likewise.
|
||||
* testsuite/ld-scripts/defined5.t: Likewise.
|
||||
* testsuite/ld-scripts/fill.t: Likewise.
|
||||
* testsuite/ld-scripts/include-subdata.t: Likewise.
|
||||
* testsuite/ld-scripts/provide-1.t: Likewise.
|
||||
* testsuite/ld-scripts/provide-2.t: Likewise.
|
||||
* testsuite/ld-scripts/provide-3.t: Likewise.
|
||||
* testsuite/ld-scripts/provide-4.t: Likewise.
|
||||
* testsuite/ld-scripts/provide-5.t: Likewise.
|
||||
* testsuite/ld-scripts/provide-6.t: Likewise.
|
||||
* testsuite/ld-scripts/provide-7.t: Likewise.
|
||||
* testsuite/ld-scripts/provide-8.t: Likewise.
|
||||
* testsuite/ld-scripts/assign-loc.t: Add required xcoff sections.
|
||||
* testsuite/ld-scripts/sizeof.t: Likewise.
|
||||
* testsuite/ld-scripts/align2.t: Likewise, and mapped sections.
|
||||
* testsuite/ld-scripts/align5.t: Likewise.
|
||||
* testsuite/ld-scripts/default-script.t: Likewise.
|
||||
* testsuite/ld-scripts/empty-address-1.t: Likewise.
|
||||
* testsuite/ld-scripts/empty-address-2a.t: Likewise.
|
||||
* testsuite/ld-scripts/empty-address-2b.t: Likewise.
|
||||
* testsuite/ld-scripts/empty-address-3a.t: Likewise.
|
||||
* testsuite/ld-scripts/empty-address-3b.t: Likewise.
|
||||
* testsuite/ld-scripts/empty-address-3c.t: Likewise.
|
||||
* testsuite/ld-scripts/include-sections.t: Likewise.
|
||||
* testsuite/ld-scripts/pr14962.t: Likewise.
|
||||
* testsuite/ld-scripts/sane1.t: Likewise.
|
||||
|
||||
2020-07-07 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* testsuite/ld-scripts/align.exp: Use is_pecoff_format.
|
||||
|
||||
@ -19,11 +19,6 @@
|
||||
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
|
||||
# MA 02110-1301, USA.
|
||||
|
||||
if {[istarget "powerpc*-*-aix*"] || [istarget "rs6000-*-aix*"]} {
|
||||
# Target maps .text and .data to other sections.
|
||||
return
|
||||
}
|
||||
|
||||
set testname "align1"
|
||||
|
||||
if ![ld_assemble $as $srcdir/$subdir/align.s tmpdir/align.o] {
|
||||
@ -35,6 +30,8 @@ if ![ld_assemble $as $srcdir/$subdir/align.s tmpdir/align.o] {
|
||||
set saved_LDFLAGS "$LDFLAGS"
|
||||
if { [is_pecoff_format] } then {
|
||||
set LDFLAGS "$LDFLAGS --image-base 0"
|
||||
} elseif { [is_xcoff_format] } then {
|
||||
set LDFLAGS "$LDFLAGS -bnogc"
|
||||
}
|
||||
|
||||
if ![ld_link $ld tmpdir/align "$LDFLAGS -T $srcdir/$subdir/align.t tmpdir/align.o"] {
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
SECTIONS
|
||||
{
|
||||
.text : {*(.text)}
|
||||
.text : {*(.text .pr)}
|
||||
.data ALIGN(0x1000) : AT (ALIGN (LOADADDR (.text) + SIZEOF (.text), 0x80))
|
||||
{}
|
||||
ASSERT (LOADADDR(.data) == 0x80, "dyadic ALIGN broken")
|
||||
|
||||
@ -1,7 +1,8 @@
|
||||
SECTIONS
|
||||
{
|
||||
.text : {*(.text)}
|
||||
.text : {*(.text .pr)}
|
||||
. = ALIGN(data_align);
|
||||
.data : {*(.data)}
|
||||
.data : {*(.data .rw)}
|
||||
.bss : {*(.bss)}
|
||||
/DISCARD/ : {*(*)}
|
||||
}
|
||||
|
||||
@ -1,12 +1,15 @@
|
||||
SECTIONS
|
||||
{
|
||||
.text : {
|
||||
SORT_NONE (*) (.text .text.*)
|
||||
SORT_NONE (*) (.text .text.* .pr)
|
||||
}
|
||||
|
||||
.data : {
|
||||
SORT_NONE (*) (.data .data.*)
|
||||
SORT_NONE (*) (.data .data.* .rw)
|
||||
foo = .;
|
||||
}
|
||||
.bss : {
|
||||
SORT_NONE (*) (.bss)
|
||||
}
|
||||
/DISCARD/ : {*(*)}
|
||||
}
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
#ld: -T assign-loc.t
|
||||
#source: data.s
|
||||
#nm: -n
|
||||
#xfail: powerpc*-*-aix* rs6000-*-aix*
|
||||
|
||||
#...
|
||||
0+0100 A HEAP_SIZE
|
||||
#...
|
||||
|
||||
@ -13,5 +13,8 @@ SECTIONS
|
||||
|
||||
_end = .;
|
||||
|
||||
.text : { *(.text) }
|
||||
.data : { *(.data) }
|
||||
.bss : { *(.bss) }
|
||||
/DISCARD/ : { *(*) }
|
||||
}
|
||||
|
||||
@ -27,6 +27,13 @@ if {[is_aout_format]} {
|
||||
return
|
||||
}
|
||||
|
||||
set old_LDFLAGS $LDFLAGS
|
||||
if { [is_xcoff_format] } then {
|
||||
set LDFLAGS "$LDFLAGS -bnogc"
|
||||
}
|
||||
|
||||
run_dump_test data
|
||||
run_dump_test fill
|
||||
run_dump_test fill16
|
||||
|
||||
set LDFLAGS $old_LDFLAGS
|
||||
|
||||
@ -21,6 +21,8 @@
|
||||
set old_ldflags $LDFLAGS
|
||||
if { [istarget spu*-*-*] } {
|
||||
set LDFLAGS "$LDFLAGS --local-store 0:0"
|
||||
} elseif { [is_xcoff_format] } {
|
||||
set LDFLAGS "$LDFLAGS -bnogc"
|
||||
}
|
||||
|
||||
set test_list [lsort [glob -nocomplain $srcdir/$subdir/default-script*.d]]
|
||||
|
||||
@ -2,6 +2,8 @@ _START = DEFINED(_START) ? _START : 0x900;
|
||||
SECTIONS
|
||||
{
|
||||
. = _START;
|
||||
.text : {*(.text)}
|
||||
.text : {*(.text .pr)}
|
||||
.data : {*(.data)}
|
||||
.bss : {*(.bss)}
|
||||
/DISCARD/ : {*(*)}
|
||||
}
|
||||
|
||||
@ -30,6 +30,8 @@ if ![ld_assemble $as $srcdir/$subdir/defined.s tmpdir/def.o] {
|
||||
set saved_LDFLAGS "$LDFLAGS"
|
||||
if { [is_pecoff_format] } then {
|
||||
set LDFLAGS "$LDFLAGS --image-base 0"
|
||||
} elseif { [is_xcoff_format] } then {
|
||||
set LDFLAGS "$LDFLAGS -bnogc"
|
||||
}
|
||||
|
||||
if { ![ld_link $ld tmpdir/def "$LDFLAGS -T $srcdir/$subdir/defined.t tmpdir/def.o"] } {
|
||||
|
||||
@ -2,7 +2,6 @@
|
||||
#nm: -B
|
||||
#source: phdrs.s
|
||||
#source: defined.s
|
||||
#xfail: powerpc*-*-aix* rs6000-*-aix*
|
||||
|
||||
# Check that DEFINED matches only symbols defined before its location.
|
||||
# The ellipsis account for target-specific symbols. Matching both A and T
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
defined6 = DEFINED (sym2) ? 1 : 0;
|
||||
SECTIONS {
|
||||
.text : { *(.text) sym2 = .; }
|
||||
.text : { *(.text .pr) sym2 = .; }
|
||||
.data : { *(.data) }
|
||||
.bss : { *(.bss) *(COMMON) }
|
||||
}
|
||||
|
||||
@ -1,7 +1,6 @@
|
||||
#ld: -Tdefined4.t
|
||||
#nm: -B
|
||||
#source: defined4.s
|
||||
#xfail: powerpc*-*-aix* rs6000-*-aix*
|
||||
#xfail: mips*-*-*
|
||||
# We check that defined and defined1 have the same address. MIPS targets
|
||||
# use different address.
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
SECTIONS {
|
||||
.text : { *(.text) }
|
||||
.data : { *(.data) }
|
||||
.data : { *(.data .rw) }
|
||||
.bss : { *(.bss) *(COMMON) }
|
||||
}
|
||||
defined1 = defined;
|
||||
|
||||
@ -1,7 +1,8 @@
|
||||
#ld: -Tdefined5.t
|
||||
#nm: -B
|
||||
#source: defined5.s
|
||||
#xfail: powerpc*-*-aix* rs6000-*-aix*
|
||||
#xfail: [is_xcoff_format]
|
||||
# xcoff outputs value of "defined" from the object file
|
||||
|
||||
# Check that arithmetic on DEFINED works.
|
||||
#...
|
||||
|
||||
@ -2,5 +2,5 @@
|
||||
.data
|
||||
.byte 0
|
||||
.text
|
||||
defined:
|
||||
.byte 0
|
||||
defined:
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
defined = addr1;
|
||||
SECTIONS {
|
||||
.text : { *(.text) }
|
||||
.text : { *(.text .pr) }
|
||||
. = ALIGN (0x1000);
|
||||
.data : { *(.data) }
|
||||
.data : { *(.data .rw) }
|
||||
addr1 = ADDR (.data);
|
||||
}
|
||||
|
||||
@ -1,11 +1,12 @@
|
||||
SECTIONS
|
||||
{
|
||||
.text 0x0000000: { *(.text) }
|
||||
.text 0: { *(.text .pr) }
|
||||
.data 0x200:
|
||||
{
|
||||
__data_start = . ;
|
||||
*(.data)
|
||||
}
|
||||
__data_end = .;
|
||||
.bss : { *(.bss) }
|
||||
/DISCARD/ : { *(.*) }
|
||||
}
|
||||
|
||||
@ -1,7 +1,8 @@
|
||||
SECTIONS
|
||||
{
|
||||
.text : { *(.text) }
|
||||
.text : { *(.text .pr) }
|
||||
.data : { *(.data) }
|
||||
__data_end = .;
|
||||
.bss : { *(.bss) }
|
||||
/DISCARD/ : { *(.*) }
|
||||
}
|
||||
|
||||
@ -1,11 +1,12 @@
|
||||
SECTIONS
|
||||
{
|
||||
.text 0x0000000: { *(.text) }
|
||||
.text 0x0000000: { *(.text .pr) }
|
||||
.data :
|
||||
{
|
||||
PROVIDE (__data_start = .);
|
||||
*(.data)
|
||||
}
|
||||
__data_end = .;
|
||||
.bss : { *(.bss) }
|
||||
/DISCARD/ : { *(.*) }
|
||||
}
|
||||
|
||||
@ -1,10 +1,11 @@
|
||||
SECTIONS
|
||||
{
|
||||
.text 0x00000000: { *(.text) }
|
||||
.text 0x00000000: { *(.text .pr) }
|
||||
.data ALIGN(0x1000) + (. & (0x1000 - 1)):
|
||||
{
|
||||
*(.data)
|
||||
}
|
||||
__data_end = .;
|
||||
.bss : { *(.bss) }
|
||||
/DISCARD/ : { *(.*) }
|
||||
}
|
||||
|
||||
@ -1,11 +1,12 @@
|
||||
SECTIONS
|
||||
{
|
||||
.text 0x00000000: { *(.text) }
|
||||
.text 0x00000000: { *(.text .pr) }
|
||||
.data ALIGN(0x1000) + (. & (0x1000 - 1)):
|
||||
{
|
||||
PROVIDE (__data_start = .);
|
||||
*(.data)
|
||||
}
|
||||
__data_end = .;
|
||||
.bss : { *(.bss) }
|
||||
/DISCARD/ : { *(.*) }
|
||||
}
|
||||
|
||||
@ -1,11 +1,12 @@
|
||||
SECTIONS
|
||||
{
|
||||
.text 0x00000000: { *(.text) }
|
||||
.text 0x00000000: { *(.text .pr) }
|
||||
.data ALIGN(0x1000) + (. & (0x1000 - 1)):
|
||||
{
|
||||
__data_start = .;
|
||||
*(.data)
|
||||
}
|
||||
__data_end = .;
|
||||
.bss : { *(.bss) }
|
||||
/DISCARD/ : { *(.*) }
|
||||
}
|
||||
|
||||
@ -22,6 +22,8 @@
|
||||
set old_LDFLAGS $LDFLAGS
|
||||
if { [is_pecoff_format] } then {
|
||||
set LDFLAGS "$LDFLAGS --image-base 0"
|
||||
} elseif { [is_xcoff_format] } then {
|
||||
set LDFLAGS "$LDFLAGS -bnogc"
|
||||
}
|
||||
|
||||
run_dump_test empty-address-1
|
||||
|
||||
@ -24,6 +24,8 @@ if { [istarget spu*-*-*] } then {
|
||||
set LDFLAGS "$LDFLAGS --no-overlays --local-store 0:0"
|
||||
} elseif { [is_pecoff_format] } then {
|
||||
set LDFLAGS "$LDFLAGS --image-base 0"
|
||||
} elseif { [is_xcoff_format] } then {
|
||||
set LDFLAGS "$LDFLAGS -bnogc"
|
||||
}
|
||||
|
||||
run_dump_test expr1
|
||||
|
||||
@ -3,12 +3,12 @@ SECTIONS
|
||||
.text :
|
||||
{
|
||||
. += 4;
|
||||
*0.o(.text)
|
||||
*0.o(.text .pr)
|
||||
FILL (0x12)
|
||||
*1.o(.text)
|
||||
*1.o(.text .pr)
|
||||
. += 1;
|
||||
FILL (0x23)
|
||||
*2.o(.text)
|
||||
*2.o(.text .pr)
|
||||
FILL (0x003456)
|
||||
. += 4;
|
||||
FILL (0x00004567000089ab0000cdef00000123)
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
#source: fill16_2.s
|
||||
#ld: -T fill.t
|
||||
#objdump: -s -j .text
|
||||
#skip: arm-*-coff i[3-7]86-*-coff
|
||||
#skip: arm-*-coff i[3-7]86-*-coff [is_xcoff_format]
|
||||
#xfail: alpha*-*-*ecoff sh-*-pe sparc*-*-coff
|
||||
#xfail: tic30-*-coff tic4x-*-* tic54x-*-* z8k-*-*
|
||||
#xfail: z80-*-coff
|
||||
|
||||
@ -1,13 +1,12 @@
|
||||
# name: include-1
|
||||
# source: include.s
|
||||
# ld: -T include-1.t
|
||||
# objdump: -w -h
|
||||
# xfail: "*-aix*"
|
||||
# AIX targets rename the .text and .data sectons...
|
||||
#name: include-1
|
||||
#source: include.s
|
||||
#ld: -T include-1.t
|
||||
#objdump: -w -h
|
||||
|
||||
.*: file format .*
|
||||
|
||||
Sections:
|
||||
Idx +Name +Size +VMA +LMA +File off +Algn +Flags
|
||||
0 .text 0+0000020 0+0000000 0+0000000 [0-9a-f]+ 2\*\*[0-9]+ CONTENTS, ALLOC, LOAD,.*CODE
|
||||
0 .text 0+(20|1000) 0+0000000 0+0000000 [0-9a-f]+ 2\*\*[0-9]+ CONTENTS, ALLOC, LOAD,.*CODE
|
||||
1 .data 0+0000010 0+0100000 0+0100000 [0-9a-f]+ 2\*\*[0-9]+ CONTENTS, ALLOC, LOAD, DATA
|
||||
#pass
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
SECTIONS {
|
||||
.text : { *(.text) } >rom
|
||||
.text : { *(.text .pr) } >rom
|
||||
INCLUDE include-data.t
|
||||
.bss : { *(.bss) }
|
||||
/DISCARD/ : { *(*) }
|
||||
}
|
||||
|
||||
@ -1,2 +1,2 @@
|
||||
*(.data)
|
||||
*(.data .rw)
|
||||
|
||||
|
||||
@ -27,6 +27,8 @@ if { [istarget spu*-*-*] } then {
|
||||
set LDFLAGS "$LDFLAGS --local-store 0:0 --no-overlays"
|
||||
} elseif { [is_pecoff_format] } then {
|
||||
set LDFLAGS "$LDFLAGS --image-base 0"
|
||||
} elseif { [is_xcoff_format] } then {
|
||||
set LDFLAGS "$LDFLAGS -bnogc"
|
||||
}
|
||||
|
||||
set test_list [lsort [glob -nocomplain $srcdir/$subdir/include*.d]]
|
||||
|
||||
@ -2,7 +2,8 @@ NOCROSSREFS ( .text .data )
|
||||
x = ABSOLUTE(x);
|
||||
SECTIONS
|
||||
{
|
||||
.text : { *(.text) }
|
||||
.data : { *(.data) }
|
||||
.text : { *(.text .pr) }
|
||||
.data : { *(.data .rw) }
|
||||
.bss : { *(.bss) }
|
||||
/DISCARD/ : { *(*) }
|
||||
}
|
||||
|
||||
@ -1,9 +1,8 @@
|
||||
# source: data.s
|
||||
# ld: -T pr18963.t
|
||||
# nm: -B -n
|
||||
# notarget: *-*-aix* *-*-vms
|
||||
# Skip on AIX targets because they require non-empty sections.
|
||||
# Plus skip for VMS based targets as the linker automatically adds extra libraries that may not be present in a cross build.
|
||||
# notarget: *-*-vms
|
||||
# Skip for VMS based targets as the linker automatically adds extra libraries that may not be present in a cross build.
|
||||
# 64-bit Cygwin targets always start their sections at 0x200000000 which is why the regexps include a 2.
|
||||
|
||||
#...
|
||||
|
||||
@ -5,7 +5,7 @@ SECTIONS
|
||||
LONG (foo)
|
||||
LONG (bar)
|
||||
. = ALIGN (0x10);
|
||||
*(.data)
|
||||
*(.data .rw)
|
||||
}
|
||||
PROVIDE (foo = .);
|
||||
PROVIDE (bar = .);
|
||||
|
||||
@ -3,5 +3,6 @@
|
||||
#nm: -B
|
||||
#...
|
||||
0+3 A baz
|
||||
#...
|
||||
0+2000 D foo
|
||||
#pass
|
||||
|
||||
@ -6,6 +6,6 @@ SECTIONS
|
||||
PROVIDE (baz = 3);
|
||||
.data 0x2000 :
|
||||
{
|
||||
*(.data)
|
||||
*(.data .rw)
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,7 +4,7 @@ SECTIONS
|
||||
{
|
||||
LONG (foo)
|
||||
LONG (bar)
|
||||
*(.data)
|
||||
*(.data .rw)
|
||||
}
|
||||
foo = .;
|
||||
bar = .;
|
||||
|
||||
@ -4,6 +4,10 @@
|
||||
#map: provide-4.map
|
||||
#...
|
||||
0+3 A baz
|
||||
#...
|
||||
0+2000 D foo
|
||||
#...
|
||||
0+2010 D loc2
|
||||
#...
|
||||
0+2030 A loc4
|
||||
#pass
|
||||
|
||||
@ -6,7 +6,7 @@ SECTIONS
|
||||
PROVIDE (baz = 3);
|
||||
.data 0x2000 :
|
||||
{
|
||||
*(.data)
|
||||
*(.data .rw)
|
||||
|
||||
PROVIDE (loc1 = ALIGN (., 0x10));
|
||||
PROVIDE (loc2 = ALIGN (., 0x10));
|
||||
|
||||
@ -4,3 +4,4 @@
|
||||
#map: provide-5.map
|
||||
#...
|
||||
0+10 A foo
|
||||
#pass
|
||||
|
||||
@ -5,6 +5,6 @@ SECTIONS
|
||||
|
||||
.data 0x1000 :
|
||||
{
|
||||
*(.data)
|
||||
*(.data .rw)
|
||||
}
|
||||
}
|
||||
|
||||
@ -5,5 +5,6 @@
|
||||
|
||||
#...
|
||||
0+1000 D foo
|
||||
#...
|
||||
0+1000 D foo_2
|
||||
#...
|
||||
|
||||
@ -2,7 +2,7 @@ SECTIONS
|
||||
{
|
||||
.data 0x1000 :
|
||||
{
|
||||
*(.data)
|
||||
*(.data .rw)
|
||||
}
|
||||
|
||||
foo = ADDR (.data);
|
||||
|
||||
@ -4,5 +4,6 @@
|
||||
|
||||
#...
|
||||
0+10 A foo
|
||||
#...
|
||||
0+10 A foo_2
|
||||
#...
|
||||
|
||||
@ -2,7 +2,7 @@ SECTIONS
|
||||
{
|
||||
.data 0x1000 :
|
||||
{
|
||||
*(.data)
|
||||
*(.data .rw)
|
||||
}
|
||||
|
||||
foo = 0x10;
|
||||
|
||||
@ -2,7 +2,7 @@ SECTIONS
|
||||
{
|
||||
.data 0x1000 :
|
||||
{
|
||||
*(.data)
|
||||
*(.data .rw)
|
||||
QUAD (__FOO);
|
||||
}
|
||||
|
||||
|
||||
@ -19,11 +19,10 @@
|
||||
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
|
||||
# MA 02110-1301, USA.
|
||||
|
||||
# AIX maps .text and .data to other sections.
|
||||
# a.out objdump displays the file header inside the text segment,
|
||||
# confusing run_dump_test.
|
||||
|
||||
if {[istarget "powerpc*-*-aix*"] || [istarget "rs6000-*-aix*"] || [is_aout_format]} {
|
||||
if { [is_aout_format] } {
|
||||
unsupported provide-1
|
||||
unsupported provide-2
|
||||
unsupported provide-3
|
||||
@ -33,6 +32,8 @@ if {[istarget "powerpc*-*-aix*"] || [istarget "rs6000-*-aix*"] || [is_aout_forma
|
||||
set saved_LDFLAGS "$LDFLAGS"
|
||||
if { [is_pecoff_format] } then {
|
||||
set LDFLAGS "$LDFLAGS --image-base 0"
|
||||
} elseif { [is_xcoff_format] } then {
|
||||
set LDFLAGS "$LDFLAGS -bnogc"
|
||||
}
|
||||
|
||||
set test_list [lsort [glob -nocomplain $srcdir/$subdir/provide-*.d]]
|
||||
|
||||
@ -1,9 +1,8 @@
|
||||
# source: data.s
|
||||
# ld: -T sane1.t
|
||||
# nm: -B -n
|
||||
# notarget: mmix-* pdp11-* powerpc*-*-aix* rs6000-*-aix*
|
||||
# notarget: mmix-* pdp11-*
|
||||
# mmix symbol sections are wrong, pdp sign extends 16-bit addresses
|
||||
# rs6000-aix doesn't like empty .text
|
||||
|
||||
#...
|
||||
0+0004 A s5
|
||||
|
||||
@ -20,8 +20,10 @@ SECTIONS
|
||||
s4 = ABSOLUTE (d1) - 2;
|
||||
s5 = ABSOLUTE (d2) % 5;
|
||||
s6 = ABSOLUTE (d2) / 5;
|
||||
*(.data)
|
||||
*(.data .rw)
|
||||
}
|
||||
.text : { *(.text) }
|
||||
.bss : { *(.bss) }
|
||||
/DISCARD/ : {*(*)}
|
||||
|
||||
diff = d2 - d1;
|
||||
|
||||
@ -187,6 +187,9 @@ set old_LDFLAGS $LDFLAGS
|
||||
if { [is_pecoff_format] } then {
|
||||
set flags "--image-base 0"
|
||||
set LDFLAGS "$LDFLAGS --image-base 0"
|
||||
} elseif { [is_xcoff_format] } then {
|
||||
set flags "-bnogc"
|
||||
set LDFLAGS "$LDFLAGS -bnogc"
|
||||
}
|
||||
|
||||
if ![ld_link $ld tmpdir/script "$flags -T $srcdir/$subdir/script.t tmpdir/script.o"] {
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
#source: segment-start.s
|
||||
#ld: -e 0 -u __executable_start -T segment-start.ld
|
||||
#nm: -B
|
||||
#xfail: mmix-*-* pdp11-*-* powerpc-*-aix* powerpc-*-beos* rs6000-*-* sh-*-pe
|
||||
#xfail: mmix-*-* pdp11-*-* sh-*-pe
|
||||
#xfail: tic30-*-*aout* c54x*-*-*coff* tic54x-*-*coff*
|
||||
# XFAIL targets that are not expected to handle SEGMENT_START correctly.
|
||||
|
||||
|
||||
@ -11,7 +11,12 @@ SECTIONS {
|
||||
. = . + SIZEOF(.text);
|
||||
data_end = .;
|
||||
}
|
||||
}
|
||||
.bss :
|
||||
{
|
||||
. = 8;
|
||||
*(.bss)
|
||||
}
|
||||
}
|
||||
|
||||
sizeof_text = SIZEOF(.text);
|
||||
sizeof_data = SIZEOF(.data);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user