diff options
28 files changed, 65 insertions, 93 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index 1e1aae7..d2580bd 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,35 @@ +2016-04-05 Andrew Burgess <andrew.burgess@embecosm.com> + + * emulparams/arc-endianness.sh: New file. + * emulparams/arcebelf.sh: Deleted. + * emulparams/arcebelf_prof.sh: Deleted. + * emulparams/arceblinux.sh: Deleted. + * emulparams/arceblinux_prof.sh: Deleted. + * emulparams/arcelf.sh: Include arc-endinness.sh. + * emulparams/arcelf_prof.sh: Include arc-endinness.sh. + * emulparams/arclinux.sh: Include arc-endinness.sh. + * emulparams/arclinux_prof.sh: Include arc-endinness.sh. + * emulparams/arcv2elf.sh: Include arc-endinness.sh. + * emulparams/arcv2elfx.sh: Include arc-endinness.sh. + * testsuite/ld-elf/compressed1d.d: Update pattern for big and + little endian arc targets. + * testsuite/ld-elf/eh-frame-hdr.d: Likewise. + * testsuite/ld-elf/group1.d: Likewise. + * testsuite/ld-elf/group3b.d: Likewise. + * testsuite/ld-elf/group8a.d: Likewise. + * testsuite/ld-elf/group8b.d: Likewise. + * testsuite/ld-elf/group9a.d: Likewise. + * testsuite/ld-elf/group9b.d: Likewise. + * testsuite/ld-elf/linkonce2.d: Likewise. + * testsuite/ld-elf/pr12851.d: Likewise. + * testsuite/ld-elf/pr12975.d: Likewise. + * testsuite/ld-elf/pr13177.d: Likewise. + * testsuite/ld-elf/pr13195.d: Likewise. + * testsuite/ld-elf/pr17615.d: Likewise. + * testsuite/ld-elf/pr19162.d: Likewise. + * testsuite/ld-elf/sec64k.exp: Likewise. + * testsuite/lib/ld-lib.exp: Likewise. + 2016-04-05 Maciej W. Rozycki <macro@imgtec.com> PR ld/19908 diff --git a/ld/emulparams/arc-endianness.sh b/ld/emulparams/arc-endianness.sh new file mode 100644 index 0000000..4d6158b --- /dev/null +++ b/ld/emulparams/arc-endianness.sh @@ -0,0 +1,10 @@ +case ${target} in + arceb-*) + ARC_ENDIAN="big" + ;; + arc-*) + ARC_ENDIAN="little" + ;; + *) + exit 1 +esac diff --git a/ld/emulparams/arcebelf.sh b/ld/emulparams/arcebelf.sh deleted file mode 100644 index 994605e..0000000 --- a/ld/emulparams/arcebelf.sh +++ /dev/null @@ -1,15 +0,0 @@ -SCRIPT_NAME=elfarc -TEMPLATE_NAME=elf32 -OUTPUT_FORMAT="elf32-bigarc" -LITTLE_OUTPUT_FORMAT="elf32-littlearc" -BIG_OUTPUT_FORMAT="elf32-bigarc" -# leave room for vector table, 32 vectors * 8 bytes -TEXT_START_ADDR=0x100 -MAXPAGESIZE="CONSTANT (MAXPAGESIZE)" -#NONPAGED_TEXT_START_ADDR=0x0 -ARCH=arc -MACHINE= -ENTRY=__start -SDATA_START_SYMBOLS='__SDATA_BEGIN__ = .;' -OTHER_SECTIONS="/DISCARD/ : { *(.__arc_profile_*) }" -EMBEDDED=yes diff --git a/ld/emulparams/arcebelf_prof.sh b/ld/emulparams/arcebelf_prof.sh deleted file mode 100644 index 1bd0531..0000000 --- a/ld/emulparams/arcebelf_prof.sh +++ /dev/null @@ -1,21 +0,0 @@ -SCRIPT_NAME=elfarc -TEMPLATE_NAME=elf32 -OUTPUT_FORMAT="elf32-bigarc" -LITTLE_OUTPUT_FORMAT="elf32-littlearc" -BIG_OUTPUT_FORMAT="elf32-bigarc" -# leave room for vector table, 32 vectors * 8 bytes -TEXT_START_ADDR=0x100 -MAXPAGESIZE="CONSTANT (MAXPAGESIZE)" -#NONPAGED_TEXT_START_ADDR=0x0 -ARCH=arc -MACHINE= -ENTRY=__start -SDATA_START_SYMBOLS='__SDATA_BEGIN__ = .;' -OTHER_READONLY_SECTIONS=" - .__arc_profile_desc ${RELOCATING-0} : { *(.__arc_profile_desc) } - .__arc_profile_forward ${RELOCATING-0} : { *(.__arc_profile_forward) } -" -OTHER_BSS_SECTIONS=" - .__arc_profile_counters ${RELOCATING-0} : { *(.__arc_profile_counters) } -" -EMBEDDED=yes diff --git a/ld/emulparams/arceblinux.sh b/ld/emulparams/arceblinux.sh deleted file mode 100644 index 54fd7a9..0000000 --- a/ld/emulparams/arceblinux.sh +++ /dev/null @@ -1,17 +0,0 @@ -SCRIPT_NAME=arclinux -OUTPUT_FORMAT="elf32-bigarc" -LITTLE_OUTPUT_FORMAT="elf32-littlearc" -BIG_OUTPUT_FORMAT="elf32-bigarc" -TEXT_START_ADDR=0x10000 -MAXPAGESIZE=0x2000 -COMMONPAGESIZE=0x2000 -NONPAGED_TEXT_START_ADDR=0x10000 -ARCH=arc -MACHINE= -ENTRY=__start -TEMPLATE_NAME=arclinux -TEMPLATE_NAME=elf32 -EXTRA_EM_FILE=arclinux -GENERATE_SHLIB_SCRIPT=yes -SDATA_START_SYMBOLS='__SDATA_BEGIN__ = .;' -OTHER_SECTIONS="/DISCARD/ : { *(.__arc_profile_*) }" diff --git a/ld/emulparams/arceblinux_prof.sh b/ld/emulparams/arceblinux_prof.sh deleted file mode 100644 index 3b1ccdd..0000000 --- a/ld/emulparams/arceblinux_prof.sh +++ /dev/null @@ -1,23 +0,0 @@ -SCRIPT_NAME=arclinux -OUTPUT_FORMAT="elf32-bigarc" -LITTLE_OUTPUT_FORMAT="elf32-littlearc" -BIG_OUTPUT_FORMAT="elf32-bigarc" -TEXT_START_ADDR=0x10000 -MAXPAGESIZE=0x2000 -COMMONPAGESIZE=0x2000 -NONPAGED_TEXT_START_ADDR=0x10000 -ARCH=arc -MACHINE= -ENTRY=__start -TEMPLATE_NAME=arclinux -TEMPLATE_NAME=elf32 -EXTRA_EM_FILE=arclinux -GENERATE_SHLIB_SCRIPT=yes -SDATA_START_SYMBOLS='__SDATA_BEGIN__ = .;' -OTHER_READONLY_SECTIONS=" - .__arc_profile_desc ${RELOCATING-0} : { *(.__arc_profile_desc) } - .__arc_profile_forward ${RELOCATING-0} : { *(.__arc_profile_forward) } -" -OTHER_BSS_SECTIONS=" - .__arc_profile_counters ${RELOCATING-0} : { *(.__arc_profile_counters) } -" diff --git a/ld/emulparams/arcelf.sh b/ld/emulparams/arcelf.sh index 14a3033..a0b9c8f 100644 --- a/ld/emulparams/arcelf.sh +++ b/ld/emulparams/arcelf.sh @@ -1,3 +1,4 @@ +. ${srcdir}/emulparams/arc-endianness.sh SCRIPT_NAME=elfarc TEMPLATE_NAME=elf32 if [ "x${ARC_ENDIAN}" = "xbig" ]; then diff --git a/ld/emulparams/arcelf_prof.sh b/ld/emulparams/arcelf_prof.sh index 0202002..c94e3cb 100644 --- a/ld/emulparams/arcelf_prof.sh +++ b/ld/emulparams/arcelf_prof.sh @@ -1,3 +1,4 @@ +. ${srcdir}/emulparams/arc-endianness.sh SCRIPT_NAME=elfarc TEMPLATE_NAME=elf32 if [ "x${ARC_ENDIAN}" = "xbig" ]; then diff --git a/ld/emulparams/arclinux.sh b/ld/emulparams/arclinux.sh index 452a272..9d17bfe 100644 --- a/ld/emulparams/arclinux.sh +++ b/ld/emulparams/arclinux.sh @@ -1,3 +1,4 @@ +. ${srcdir}/emulparams/arc-endianness.sh SCRIPT_NAME=arclinux if [ "x${ARC_ENDIAN}" = "xbig" ]; then OUTPUT_FORMAT="elf32-bigarc" diff --git a/ld/emulparams/arclinux_prof.sh b/ld/emulparams/arclinux_prof.sh index fed098b..495f628 100644 --- a/ld/emulparams/arclinux_prof.sh +++ b/ld/emulparams/arclinux_prof.sh @@ -1,3 +1,4 @@ +. ${srcdir}/emulparams/arc-endianness.sh SCRIPT_NAME=arclinux if [ "x${ARC_ENDIAN}" = "xbig" ]; then OUTPUT_FORMAT="elf32-bigarc" diff --git a/ld/emulparams/arcv2elf.sh b/ld/emulparams/arcv2elf.sh index 2793ea3..e21882b 100644 --- a/ld/emulparams/arcv2elf.sh +++ b/ld/emulparams/arcv2elf.sh @@ -1,3 +1,4 @@ +. ${srcdir}/emulparams/arc-endianness.sh MACHINE= SCRIPT_NAME=elfarcv2 if [ "x${ARC_ENDIAN}" = "xbig" ]; then diff --git a/ld/emulparams/arcv2elfx.sh b/ld/emulparams/arcv2elfx.sh index 9999d8d..7a4f284 100644 --- a/ld/emulparams/arcv2elfx.sh +++ b/ld/emulparams/arcv2elfx.sh @@ -1,3 +1,4 @@ +. ${srcdir}/emulparams/arc-endianness.sh MACHINE= SCRIPT_NAME=elfarcv2 if [ "x${ARC_ENDIAN}" = "xbig" ]; then diff --git a/ld/testsuite/ld-elf/compressed1d.d b/ld/testsuite/ld-elf/compressed1d.d index 5c07046..496557d 100644 --- a/ld/testsuite/ld-elf/compressed1d.d +++ b/ld/testsuite/ld-elf/compressed1d.d @@ -2,7 +2,7 @@ #as: --compress-debug-sections=none #ld: -r --compress-debug-sections=zlib-gnu #readelf: -SW -#notarget: arc-*-* d30v-*-* dlx-*-* fr30-*-* frv-*-* i370-*-* i860-*-* iq2000-*-* mn10200-*-* moxie-*-* msp430-*-* mt-*-* or1k-*-* pj-*-* +#notarget: arc*-*-* d30v-*-* dlx-*-* fr30-*-* frv-*-* i370-*-* i860-*-* iq2000-*-* mn10200-*-* moxie-*-* msp430-*-* mt-*-* or1k-*-* pj-*-* # Not all ELF targets use the elf.em emulation... #failif diff --git a/ld/testsuite/ld-elf/eh-frame-hdr.d b/ld/testsuite/ld-elf/eh-frame-hdr.d index 7e466c3..b4ea7fb 100644 --- a/ld/testsuite/ld-elf/eh-frame-hdr.d +++ b/ld/testsuite/ld-elf/eh-frame-hdr.d @@ -2,7 +2,7 @@ #ld: -e _start --eh-frame-hdr #objdump: -hw #target: cfi -#xfail: arc-*-elf* avr*-*-* or1k*-*-elf or1k*-*-rtems* visium-*-* +#xfail: arc*-*-elf* avr*-*-* or1k*-*-elf or1k*-*-rtems* visium-*-* # These targets support CFI generation but not shared libraries. #... [0-9] .eh_frame_hdr 0*[12][048c] .* diff --git a/ld/testsuite/ld-elf/group3b.d b/ld/testsuite/ld-elf/group3b.d index a242c40..0da9540 100644 --- a/ld/testsuite/ld-elf/group3b.d +++ b/ld/testsuite/ld-elf/group3b.d @@ -2,7 +2,7 @@ #source: group3a.s #ld: -T group.ld #readelf: -s -#xfail: d30v-*-* dlx-*-* i960-*-* pj*-*-* +#xfail: arc*-*-* d30v-*-* dlx-*-* i960-*-* pj*-*-* # generic linker targets don't comply with all symbol merging rules Symbol table '.symtab' contains .* entries: diff --git a/ld/testsuite/ld-elf/group8a.d b/ld/testsuite/ld-elf/group8a.d index f645256..3613044 100644 --- a/ld/testsuite/ld-elf/group8a.d +++ b/ld/testsuite/ld-elf/group8a.d @@ -1,7 +1,7 @@ #source: group8.s #ld: -r --gc-sections --entry foo #readelf: -g --wide -#notarget: arc-*-* d30v-*-* dlx-*-* i960-*-* pj*-*-* +#notarget: arc*-*-* d30v-*-* dlx-*-* i960-*-* pj*-*-* #notarget: hppa64-*-* i370-*-* i860-*-* ia64-*-* mep-*-* mn10200-*-* #xfail: cr16-*-* crx-*-* # generic linker targets don't support --gc-sections, nor do a bunch of others diff --git a/ld/testsuite/ld-elf/group8b.d b/ld/testsuite/ld-elf/group8b.d index 2ce6b1a..3859cb6 100644 --- a/ld/testsuite/ld-elf/group8b.d +++ b/ld/testsuite/ld-elf/group8b.d @@ -1,7 +1,7 @@ #source: group8.s #ld: -r --gc-sections --entry bar #readelf: -g --wide -#notarget: arc-*-* d30v-*-* dlx-*-* i960-*-* pj*-*-* +#notarget: arc*-*-* d30v-*-* dlx-*-* i960-*-* pj*-*-* #notarget: hppa64-*-* i370-*-* i860-*-* ia64-*-* mep-*-* mn10200-*-* #xfail: cr16-*-* crx-*-* # generic linker targets don't support --gc-sections, nor do a bunch of others diff --git a/ld/testsuite/ld-elf/group9a.d b/ld/testsuite/ld-elf/group9a.d index 62215a5..4e8341d 100644 --- a/ld/testsuite/ld-elf/group9a.d +++ b/ld/testsuite/ld-elf/group9a.d @@ -1,7 +1,7 @@ #source: group9.s #ld: -r --gc-sections --entry foo #readelf: -g --wide -#notarget: arc-*-* d30v-*-* dlx-*-* i960-*-* pj*-*-* +#notarget: arc*-*-* d30v-*-* dlx-*-* i960-*-* pj*-*-* #notarget: alpha-*-* hppa64-*-* i370-*-* i860-*-* ia64-*-* mep-*-* mn10200-*-* #xfail: cr16-*-* crx-*-* # generic linker targets don't support --gc-sections, nor do a bunch of others diff --git a/ld/testsuite/ld-elf/group9b.d b/ld/testsuite/ld-elf/group9b.d index c4600d8..ce5931c 100644 --- a/ld/testsuite/ld-elf/group9b.d +++ b/ld/testsuite/ld-elf/group9b.d @@ -1,7 +1,7 @@ #source: group9.s #ld: -r --gc-sections --entry bar #readelf: -g --wide -#notarget: arc-*-* d30v-*-* dlx-*-* i960-*-* pj*-*-* +#notarget: arc*-*-* d30v-*-* dlx-*-* i960-*-* pj*-*-* #notarget: alpha-*-* hppa64-*-* i370-*-* i860-*-* ia64-*-* mep-*-* mn10200-*-* #xfail: cr16-*-* crx-*-* # generic linker targets don't support --gc-sections, nor do a bunch of others diff --git a/ld/testsuite/ld-elf/linkonce2.d b/ld/testsuite/ld-elf/linkonce2.d index edc135f..7668b32 100644 --- a/ld/testsuite/ld-elf/linkonce2.d +++ b/ld/testsuite/ld-elf/linkonce2.d @@ -2,7 +2,7 @@ #source: linkonce1b.s #ld: -emit-relocs #objdump: -r -#notarget: arc-*-* d30v-*-* dlx-*-* i960-*-* pj*-*-* +#notarget: arc*-*-* d30v-*-* dlx-*-* i960-*-* pj*-*-* # generic elf targets don't emit relocs .*: file format .* diff --git a/ld/testsuite/ld-elf/pr12851.d b/ld/testsuite/ld-elf/pr12851.d index 8aa48e9..f02e3d2 100644 --- a/ld/testsuite/ld-elf/pr12851.d +++ b/ld/testsuite/ld-elf/pr12851.d @@ -2,7 +2,7 @@ #source: start.s #ld: --gc-sections #readelf: -s --wide -#notarget: arc-*-* d30v-*-* dlx-*-* i960-*-* pj*-*-* +#notarget: arc*-*-* d30v-*-* dlx-*-* i960-*-* pj*-*-* #notarget: hppa64-*-* i370-*-* i860-*-* ia64-*-* mep-*-* mn10200-*-* # generic linker targets don't support --gc-sections, nor do a bunch of others diff --git a/ld/testsuite/ld-elf/pr12975.d b/ld/testsuite/ld-elf/pr12975.d index 11ace1f..97326a7 100644 --- a/ld/testsuite/ld-elf/pr12975.d +++ b/ld/testsuite/ld-elf/pr12975.d @@ -1,7 +1,7 @@ #ld: --gc-sections -shared -version-script pr12975.t #readelf: -s --wide #target: *-*-linux* *-*-gnu* -#notarget: arc-*-* d30v-*-* dlx-*-* i960-*-* pj*-*-* +#notarget: arc*-*-* d30v-*-* dlx-*-* i960-*-* pj*-*-* #notarget: hppa64-*-* i370-*-* i860-*-* ia64-*-* mep-*-* mn10200-*-* # generic linker targets don't support --gc-sections, nor do a bunch of others diff --git a/ld/testsuite/ld-elf/pr13177.d b/ld/testsuite/ld-elf/pr13177.d index a009988..d47aadf 100644 --- a/ld/testsuite/ld-elf/pr13177.d +++ b/ld/testsuite/ld-elf/pr13177.d @@ -2,7 +2,7 @@ #ld: --gc-sections -shared #readelf: -s -D --wide #target: *-*-linux* *-*-gnu* -#notarget: arc-*-* d30v-*-* dlx-*-* i960-*-* pj*-*-* +#notarget: arc*-*-* d30v-*-* dlx-*-* i960-*-* pj*-*-* #notarget: hppa64-*-* i370-*-* i860-*-* ia64-*-* mep-*-* mn10200-*-* # generic linker targets don't support --gc-sections, nor do a bunch of others diff --git a/ld/testsuite/ld-elf/pr13195.d b/ld/testsuite/ld-elf/pr13195.d index 6b39f2d..c806c11 100644 --- a/ld/testsuite/ld-elf/pr13195.d +++ b/ld/testsuite/ld-elf/pr13195.d @@ -1,7 +1,7 @@ #ld: --gc-sections -shared -version-script pr13195.t #readelf: -s --wide -D #target: *-*-linux* *-*-gnu* -#notarget: arc-*-* d30v-*-* dlx-*-* i960-*-* pj*-*-* +#notarget: arc*-*-* d30v-*-* dlx-*-* i960-*-* pj*-*-* #notarget: hppa64-*-* i370-*-* i860-*-* ia64-*-* mep-*-* mn10200-*-* # generic linker targets don't support --gc-sections, nor do a bunch of others diff --git a/ld/testsuite/ld-elf/pr17615.d b/ld/testsuite/ld-elf/pr17615.d index 1b7a59b..0b11823 100644 --- a/ld/testsuite/ld-elf/pr17615.d +++ b/ld/testsuite/ld-elf/pr17615.d @@ -1,7 +1,7 @@ #ld: --gc-sections -shared #readelf: -S --wide --dyn-syms #target: *-*-linux* *-*-gnu* -#notarget: arc-*-* d30v-*-* dlx-*-* i960-*-* pj*-*-* +#notarget: arc*-*-* d30v-*-* dlx-*-* i960-*-* pj*-*-* #notarget: hppa64-*-* i370-*-* i860-*-* ia64-*-* mep-*-* mn10200-*-* # generic linker targets don't support --gc-sections, nor do a bunch of others diff --git a/ld/testsuite/ld-elf/pr19162.d b/ld/testsuite/ld-elf/pr19162.d index c08bbed..1a54546 100644 --- a/ld/testsuite/ld-elf/pr19162.d +++ b/ld/testsuite/ld-elf/pr19162.d @@ -3,7 +3,7 @@ #ld: -shared -z max-page-size=0x200000 #readelf: -l --wide #target: *-*-linux* *-*-gnu* *-*-nacl* -#notarget: arc-*-* hppa-*-* +#notarget: arc*-*-* hppa-*-* # arc target has an extra 64K stack section. # hppa fails due to PR 12376. diff --git a/ld/testsuite/ld-elf/sec64k.exp b/ld/testsuite/ld-elf/sec64k.exp index 7d079ce..f168cff 100644 --- a/ld/testsuite/ld-elf/sec64k.exp +++ b/ld/testsuite/ld-elf/sec64k.exp @@ -29,7 +29,7 @@ if ![is_elf_format] { # Targets using the generic linker backend don't sort section symbols # before local symbols, so don't bother testing them. -if { [istarget "arc-*-*"] +if { [istarget "arc*-*-*"] || [istarget "d30v-*-*"] || [istarget "dlx-*-*"] || [istarget "i960-*-*"] diff --git a/ld/testsuite/lib/ld-lib.exp b/ld/testsuite/lib/ld-lib.exp index 320ed82..ce446fd 100644 --- a/ld/testsuite/lib/ld-lib.exp +++ b/ld/testsuite/lib/ld-lib.exp @@ -1664,7 +1664,7 @@ proc check_gc_sections_available { } { if {![info exists gc_sections_available_saved]} { # Some targets don't support gc-sections despite whatever's # advertised by ld's options. - if { [istarget arc-*-*] + if { [istarget arc*-*-*] || [istarget d30v-*-*] || [istarget dlx-*-*] || [istarget i960-*-*] @@ -1706,7 +1706,7 @@ proc check_gc_sections_available { } { proc check_shared_lib_support { } { if {![istarget aarch64*-*-elf] - && ![istarget arc-*-*] + && ![istarget arc*-*-*] && ![istarget arm*-*-elf] && ![istarget avr-*-*] && ![istarget cr16-*-*] |