Fix linker tests to work with 16-bit targets.
PR 25829 * testsuite/ld-scripts/script.exp (check_script) (extract_symbol_test): Make test addresses fit in 16 bits. * testsuite/ld-scripts/memory.t: Likewise. * testsuite/ld-scripts/memory_sym.t (TXT_LENGTH): Likewise. * testsuite/ld-scripts/default-script.t (_START): Likewise. * testsuite/ld-scripts/default-script1.d: Likewise. * testsuite/ld-scripts/default-script2.d: Likewise. * testsuite/ld-scripts/default-script3.d: Likewise. * testsuite/ld-scripts/default-script4.d: Likewise. * testsuite/ld-scripts/empty-address-1.t: Likewise. * testsuite/ld-scripts/empty-address-1.d: Likewise. * testsuite/ld-scripts/empty-address-2a.d: Likewise. * testsuite/ld-scripts/empty-address-2b.d: Likewise. * testsuite/ld-misc/start.s: .long -> .dc.a to allow relocation to fit target address size. * testsuite/ld-scripts/empty-address-1.s: Likewise. * testsuite/ld-scripts/empty-address-2.s: Likewise.
This commit is contained in:
parent
d89edf9b81
commit
39a7b38fac
21
ld/ChangeLog
21
ld/ChangeLog
@ -1,3 +1,24 @@
|
||||
2020-04-21 Stephen Casner <casner@acm.org>
|
||||
|
||||
PR 25829
|
||||
* testsuite/ld-scripts/script.exp (check_script)
|
||||
(extract_symbol_test): Make test addresses fit in 16 bits.
|
||||
* testsuite/ld-scripts/memory.t: Likewise.
|
||||
* testsuite/ld-scripts/memory_sym.t (TXT_LENGTH): Likewise.
|
||||
* testsuite/ld-scripts/default-script.t (_START): Likewise.
|
||||
* testsuite/ld-scripts/default-script1.d: Likewise.
|
||||
* testsuite/ld-scripts/default-script2.d: Likewise.
|
||||
* testsuite/ld-scripts/default-script3.d: Likewise.
|
||||
* testsuite/ld-scripts/default-script4.d: Likewise.
|
||||
* testsuite/ld-scripts/empty-address-1.t: Likewise.
|
||||
* testsuite/ld-scripts/empty-address-1.d: Likewise.
|
||||
* testsuite/ld-scripts/empty-address-2a.d: Likewise.
|
||||
* testsuite/ld-scripts/empty-address-2b.d: Likewise.
|
||||
* testsuite/ld-misc/start.s: .long -> .dc.a to allow relocation to
|
||||
fit target address size.
|
||||
* testsuite/ld-scripts/empty-address-1.s: Likewise.
|
||||
* testsuite/ld-scripts/empty-address-2.s: Likewise.
|
||||
|
||||
2020-04-21 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR ld/25849
|
||||
|
@ -7,4 +7,4 @@ _start:
|
||||
__start:
|
||||
.global main /* Used by HPPA targets. */
|
||||
main:
|
||||
.long foo
|
||||
.dc.a foo
|
||||
|
@ -1,4 +1,4 @@
|
||||
_START = DEFINED(_START) ? _START : 0x9000000;
|
||||
_START = DEFINED(_START) ? _START : 0x900;
|
||||
SECTIONS
|
||||
{
|
||||
. = _START;
|
||||
|
@ -1,9 +1,11 @@
|
||||
# source: default-script.s
|
||||
# ld: -defsym _START=0x8000000 -T default-script.t
|
||||
# ld: -defsym _START=0x800 -T default-script.t
|
||||
# nm: -n
|
||||
# skip: *-*-mingw64 x86_64-*-cygwin
|
||||
# Skipped on Mingw64 and Cygwin because the image base defaults to 0x100000000
|
||||
|
||||
#...
|
||||
0*8000000 . _START
|
||||
0*800 . _START
|
||||
#...
|
||||
0*8000000 T text
|
||||
0*800 T text
|
||||
#pass
|
||||
|
@ -1,9 +1,11 @@
|
||||
# source: default-script.s
|
||||
# ld: -T default-script.t -defsym _START=0x8000000
|
||||
# ld: -T default-script.t -defsym _START=0x800
|
||||
# nm: -n
|
||||
# skip: *-*-mingw64 x86_64-*-cygwin
|
||||
# Skipped on Mingw64 and Cygwin because the image base defaults to 0x100000000
|
||||
|
||||
#...
|
||||
0*8000000 . _START
|
||||
0*800 . _START
|
||||
#...
|
||||
0*9000000 T text
|
||||
0*900 T text
|
||||
#pass
|
||||
|
@ -1,9 +1,11 @@
|
||||
# source: default-script.s
|
||||
# ld: -defsym _START=0x8000000 -dT default-script.t
|
||||
# ld: -defsym _START=0x800 -dT default-script.t
|
||||
# nm: -n
|
||||
# skip: *-*-mingw64 x86_64-*-cygwin
|
||||
# Skipped on Mingw64 and Cygwin because the image base defaults to 0x100000000
|
||||
|
||||
#...
|
||||
0*8000000 . _START
|
||||
0*800 . _START
|
||||
#...
|
||||
0*8000000 T text
|
||||
0*800 T text
|
||||
#pass
|
||||
|
@ -1,9 +1,11 @@
|
||||
# source: default-script.s
|
||||
# ld: --default-script default-script.t -defsym _START=0x8000000
|
||||
# ld: --default-script default-script.t -defsym _START=0x800
|
||||
# nm: -n
|
||||
# skip: *-*-mingw64 x86_64-*-cygwin
|
||||
# Skipped on Mingw64 and Cygwin because the image base defaults to 0x100000000
|
||||
|
||||
#...
|
||||
0*8000000 . _START
|
||||
0*800 . _START
|
||||
#...
|
||||
0*8000000 T text
|
||||
0*800 T text
|
||||
#pass
|
||||
|
@ -2,8 +2,8 @@
|
||||
#nm: -n
|
||||
#xfail: frv-*-*linux*
|
||||
#...
|
||||
0+0 T _start
|
||||
0+0 [AT] _start
|
||||
#...
|
||||
0+2000000 [ADT] __data_end
|
||||
0+2000000 [ADT] __data_start
|
||||
0+200 [ADT] __data_end
|
||||
0+200 [ADT] __data_start
|
||||
#pass
|
||||
|
@ -1,5 +1,5 @@
|
||||
.text
|
||||
.global _start
|
||||
_start:
|
||||
.long __data_start
|
||||
.long __data_end
|
||||
.dc.a __data_start
|
||||
.dc.a __data_end
|
||||
|
@ -1,7 +1,7 @@
|
||||
SECTIONS
|
||||
{
|
||||
.text 0x0000000: { *(.text) }
|
||||
.data 0x2000000:
|
||||
.data 0x200:
|
||||
{
|
||||
__data_start = . ;
|
||||
*(.data)
|
||||
|
@ -1,5 +1,5 @@
|
||||
.text
|
||||
.global _start
|
||||
_start:
|
||||
.long __data_end
|
||||
.dc.a __data_end
|
||||
.p2align 4
|
||||
|
@ -1,7 +1,7 @@
|
||||
#source: empty-address-2.s
|
||||
#ld: -Ttext 0x0000000 -Tdata 0x2000000 -T empty-address-2a.t
|
||||
#ld: -Ttext 0x0000000 -Tdata 0x200 -T empty-address-2a.t
|
||||
#nm: -n
|
||||
#xfail: frv-*-*linux*
|
||||
#xfail: frv-*-*linux* riscv64-*-*
|
||||
#...
|
||||
0+0 T _start
|
||||
#...
|
||||
|
@ -1,7 +1,7 @@
|
||||
#source: empty-address-2.s
|
||||
#ld: -Ttext 0x0000000 -Tdata 0x2000000 -T empty-address-2b.t
|
||||
#ld: -Ttext 0x0000000 -Tdata 0x200 -T empty-address-2b.t
|
||||
#nm: -n
|
||||
#xfail: frv-*-*linux*
|
||||
#xfail: frv-*-*linux* riscv64-*-*
|
||||
#...
|
||||
0+0 T _start
|
||||
#...
|
||||
|
@ -1,7 +1,7 @@
|
||||
MEMORY
|
||||
{
|
||||
R_TEXTMEM (ARX) : ORIGIN = 0x100, LENGTH = 32K
|
||||
R_DATAMEM (AW) : org = 0x1000, l = (64 * 1024)
|
||||
R_TEXTMEM (ARX) : ORIGIN = 0x100, LENGTH = 16K
|
||||
R_DATAMEM (AW) : org = 0x1000, l = (4 * 1024)
|
||||
}
|
||||
|
||||
REGION_ALIAS ("A_TEXTMEM", R_TEXTMEM);
|
||||
|
@ -1,5 +1,5 @@
|
||||
TXT_ORIGIN = 0x100;
|
||||
TXT_LENGTH = 32K;
|
||||
TXT_LENGTH = 16K;
|
||||
MEMORY
|
||||
{
|
||||
R_TEXTMEM (ARX) : ORIGIN = TXT_ORIGIN, LENGTH = TXT_LENGTH
|
||||
|
@ -67,7 +67,7 @@ proc check_script { } {
|
||||
}
|
||||
|
||||
if {[info exists nm_output(tred)] \
|
||||
&& $nm_output(tred) != (0x100 + 0x8000)} {
|
||||
&& $nm_output(tred) != (0x100 + 0x4000)} {
|
||||
send_log "tred == $nm_output(tred)\n"
|
||||
verbose "tred == $nm_output(tred)"
|
||||
set passes 0
|
||||
@ -87,7 +87,7 @@ proc check_script { } {
|
||||
}
|
||||
|
||||
if {[info exists nm_output(fred)] \
|
||||
&& $nm_output(fred) != (0x1000 + 0x10000)} {
|
||||
&& $nm_output(fred) != (0x1000 + 0x1000)} {
|
||||
send_log "fred == $nm_output(fred)\n"
|
||||
verbose "fred == $nm_output(fred)"
|
||||
set passes 0
|
||||
@ -215,7 +215,7 @@ if ![ld_link $ld tmpdir/script "$flags -T $srcdir/$subdir/memory.t tmpdir/script
|
||||
}
|
||||
|
||||
set testname "MEMORY with symbols"
|
||||
if ![ld_link $ld tmpdir/script "$flags -defsym DATA_ORIGIN=0x1000 -defsym DATA_LENGTH=0x10000 -T $srcdir/$subdir/memory_sym.t tmpdir/script.o"] {
|
||||
if ![ld_link $ld tmpdir/script "$flags -defsym DATA_ORIGIN=0x1000 -defsym DATA_LENGTH=0x1000 -T $srcdir/$subdir/memory_sym.t tmpdir/script.o"] {
|
||||
fail $testname
|
||||
untested "extract symbols"
|
||||
} else {
|
||||
|
Loading…
Reference in New Issue
Block a user