Fix tests when configured for arm-linux and arm-elf
authorWill Newton <will.newton@linaro.org>
Mon, 7 Jul 2014 16:33:34 +0000 (17:33 +0100)
committerWill Newton <will.newton@linaro.org>
Thu, 10 Jul 2014 08:32:56 +0000 (09:32 +0100)
With this change all gas and most ld tests pass when configured for
arm-linux. It doesn't look like these configurations have been
tested in a long time but this attempts to stem the bit-rot slightly.

gas/testsuite/ChangeLog:

2014-07-10  Will Newton  <will.newton@linaro.org>

* gas/arm/bl-local-2.d: Only enable the test on EABI and
NaCl configurations.
* gas/arm/bl-local-v4t.d: Likewise.
* gas/arm/blx-local.d: Likewise.
* gas/arm/branch-reloc.d: Likewise.

ld/testsuite/ChangeLog:

2014-07-10  Will Newton  <will.newton@linaro.org>

* ld-arm/arm-elf.exp (armelftests_nonacl): Move Cortex-A8 fix
tests, IFUNC tests and other EABI requiring tests to...
(armeabitests_nonacl): ...here.
* ld-arm/arm-app-abs32.d: Loosen regex for architecture type
to allow test to pass on configurations without an attributes
section.
* ld-arm/arm-app.d: Likewise.
* ld-arm/arm-lib-plt32.d: Likewise.
* ld-arm/arm-lib.d: Likewise.
* ld-arm/arm-static-app.d: Likewise.
* ld-arm/armthumb-lib.d: Likewise.
* ld-arm/cortex-a8-far.d: Likewise.
* ld-arm/farcall-mixed-app.d: Likewise.
* ld-arm/farcall-mixed-lib-v4t.d: Likewise.
* ld-arm/farcall-mixed-lib.d: Likewise.
* ld-arm/mixed-app-v5.d: Likewise.
* ld-arm/mixed-app.d: Likewise.
* ld-arm/mixed-lib.d: Likewise.
* ld-arm/tls-app.d: Likewise.
* ld-arm/tls-descrelax-be32.d: Likewise.
* ld-arm/tls-descrelax.d: Likewise.
* ld-arm/tls-descseq.d: Likewise.
* ld-arm/tls-gdesc-got.d: Likewise.
* ld-arm/tls-gdesc.d: Likewise.
* ld-arm/tls-gdierelax.d: Likewise.
* ld-arm/tls-gdierelax2.d: Likewise.
* ld-arm/tls-gdlerelax.d: Likewise.
* ld-arm/tls-lib-loc.d: Likewise.
* ld-arm/tls-lib.d: Likewise.
* ld-arm/tls-thumb1.d: Likewise.

32 files changed:
gas/testsuite/ChangeLog
gas/testsuite/gas/arm/bl-local-2.d
gas/testsuite/gas/arm/bl-local-v4t.d
gas/testsuite/gas/arm/blx-local.d
gas/testsuite/gas/arm/branch-reloc.d
ld/testsuite/ChangeLog
ld/testsuite/ld-arm/arm-app-abs32.d
ld/testsuite/ld-arm/arm-app.d
ld/testsuite/ld-arm/arm-elf.exp
ld/testsuite/ld-arm/arm-lib-plt32.d
ld/testsuite/ld-arm/arm-lib.d
ld/testsuite/ld-arm/arm-static-app.d
ld/testsuite/ld-arm/armthumb-lib.d
ld/testsuite/ld-arm/cortex-a8-far.d
ld/testsuite/ld-arm/farcall-mixed-app.d
ld/testsuite/ld-arm/farcall-mixed-lib-v4t.d
ld/testsuite/ld-arm/farcall-mixed-lib.d
ld/testsuite/ld-arm/mixed-app-v5.d
ld/testsuite/ld-arm/mixed-app.d
ld/testsuite/ld-arm/mixed-lib.d
ld/testsuite/ld-arm/tls-app.d
ld/testsuite/ld-arm/tls-descrelax-be32.d
ld/testsuite/ld-arm/tls-descrelax.d
ld/testsuite/ld-arm/tls-descseq.d
ld/testsuite/ld-arm/tls-gdesc-got.d
ld/testsuite/ld-arm/tls-gdesc.d
ld/testsuite/ld-arm/tls-gdierelax.d
ld/testsuite/ld-arm/tls-gdierelax2.d
ld/testsuite/ld-arm/tls-gdlerelax.d
ld/testsuite/ld-arm/tls-lib-loc.d
ld/testsuite/ld-arm/tls-lib.d
ld/testsuite/ld-arm/tls-thumb1.d

index 5cc4690..ef34f26 100644 (file)
@@ -1,3 +1,11 @@
+2014-07-10  Will Newton  <will.newton@linaro.org>
+
+       * gas/arm/bl-local-2.d: Only enable the test on EABI and
+       NaCl configurations.
+       * gas/arm/bl-local-v4t.d: Likewise.
+       * gas/arm/blx-local.d: Likewise.
+       * gas/arm/branch-reloc.d: Likewise.
+
 2014-07-08  Ilya Tocar  <ilya.tocar@intel.com>
 
        * gas/i386/evex-lig256-intel.d: Updated.
index c3a2819..6b55f5a 100644 (file)
@@ -1,6 +1,6 @@
 #name: bl local conversion to blx
 #objdump: -drw --prefix-addresses --show-raw-insn
-#skip: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd
+#target: *-*-*eabi* *-*-nacl*
 #as:
 
 
index 959f6b2..0262b7e 100644 (file)
@@ -1,6 +1,6 @@
 #name: bl local instructions for v4t.
 #objdump: -drw --prefix-addresses --show-raw-insn
-#skip: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix* *-*-elf
+#target: *-*-*eabi* *-*-nacl*
 #as:
 # stderr: blx-local-thumb.l
 
index 2f9a90d..d8ba40f 100644 (file)
@@ -1,6 +1,6 @@
 #name: Local BLX instructions
 #objdump: -drw --prefix-addresses --show-raw-insn
-#skip: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix* *-*-elf
+#target: *-*-*eabi* *-*-nacl*
 #as:
 # stderr: blx-local.l
 # Test assembler resolution of blx and bl instructions in ARM mode.
index 6ba322e..8ef2110 100644 (file)
@@ -1,6 +1,6 @@
 #name: Inter-section branch relocations
-#This test is only valid on ELF based ports.
-#not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+#This test is only valid on EABI based ports.
+#target: *-*-*eabi* *-*-nacl*
 #as: -march=armv5t
 #objdump: -rd
 #stderr: branch-reloc.l
index c0ba501..7ad3dca 100644 (file)
@@ -1,5 +1,36 @@
 2014-07-10  Will Newton  <will.newton@linaro.org>
 
+       * ld-arm/arm-elf.exp (armelftests_nonacl): Move Cortex-A8 fix
+       tests, IFUNC tests and other EABI requiring tests to...
+       (armeabitests_nonacl): ...here.
+       * ld-arm/arm-app-abs32.d: Loosen regex for architecture type
+       to allow test to pass on configurations without an attributes
+       section.
+       * ld-arm/arm-app.d: Likewise.
+       * ld-arm/arm-lib-plt32.d: Likewise.
+       * ld-arm/arm-lib.d: Likewise.
+       * ld-arm/arm-static-app.d: Likewise.
+       * ld-arm/armthumb-lib.d: Likewise.
+       * ld-arm/cortex-a8-far.d: Likewise.
+       * ld-arm/farcall-mixed-app.d: Likewise.
+       * ld-arm/farcall-mixed-lib-v4t.d: Likewise.
+       * ld-arm/farcall-mixed-lib.d: Likewise.
+       * ld-arm/mixed-app-v5.d: Likewise.
+       * ld-arm/mixed-app.d: Likewise.
+       * ld-arm/mixed-lib.d: Likewise.
+       * ld-arm/tls-app.d: Likewise.
+       * ld-arm/tls-descrelax-be32.d: Likewise.
+       * ld-arm/tls-descrelax.d: Likewise.
+       * ld-arm/tls-descseq.d: Likewise.
+       * ld-arm/tls-gdesc-got.d: Likewise.
+       * ld-arm/tls-gdesc.d: Likewise.
+       * ld-arm/tls-gdierelax.d: Likewise.
+       * ld-arm/tls-gdierelax2.d: Likewise.
+       * ld-arm/tls-gdlerelax.d: Likewise.
+       * ld-arm/tls-lib-loc.d: Likewise.
+       * ld-arm/tls-lib.d: Likewise.
+       * ld-arm/tls-thumb1.d: Likewise.
+
        * ld-elfvers/vers.exp: Set pic to yes for ARM targets.
 
 2014-07-08  Will Newton  <will.newton@linaro.org>
index 2f56c08..13221f0 100644 (file)
@@ -1,6 +1,6 @@
 
 tmpdir/arm-app-abs32:     file format elf32-(little|big)arm.*
-architecture: armv4t, flags 0x00000112:
+architecture: arm.*, flags 0x00000112:
 EXEC_P, HAS_SYMS, D_PAGED
 start address .*
 
index 9788db0..98fc899 100644 (file)
@@ -1,6 +1,6 @@
 
 tmpdir/arm-app:     file format elf32-(little|big)arm
-architecture: armv4t, flags 0x00000112:
+architecture: arm.*, flags 0x00000112:
 EXEC_P, HAS_SYMS, D_PAGED
 start address 0x.*
 
index 2e7e164..0576847 100644 (file)
@@ -168,9 +168,6 @@ set armelftests_common {
     {"callweak" "-static -T arm.ld" "" "" {callweak.s}
      {{objdump -dr callweak.d}}
      "callweak"}
-    {"callweak-2" "-static -T arm.ld" "" "" {callweak-2.s}
-     {{objdump -dr callweak-2.d}}
-     "callweak-2"}
     {"Relocation boundaries" "-defsym x=0 -defsym y=0 -defsym _start=0" "" "" {reloc-boundaries.s}
      {{objdump -s reloc-boundaries.d}}
      "reloc-boundaries"}
@@ -188,9 +185,6 @@ set armelftests_common {
      "" {exec-got-1b.s}
      {{readelf --relocs exec-got-1.d}}
      "exec-got-1"}
-    {"abs call" "-T arm.ld" "" "" {abs-call-1.s}
-     {{objdump -d abs-call-1.d}}
-     "abs-call-1"}
     {"Simple non-PIC shared library (no PLT check)" "-shared" "" "" {arm-lib.s}
      {{objdump -Rw arm-lib.r}}
      "arm-lib.so"}
@@ -230,9 +224,6 @@ set armelftests_nonacl {
     {"Thumb and -gc-sections" "-pie -T arm.ld -gc-sections tmpdir/gc-thumb-lib.so" "" "" {gc-thumb.s}
      {{readelf --relocs gc-thumb.d}}
      "gc-thumb"}
-    {"arm-pic-veneer" "-static -T arm.ld --pic-veneer" "" "" {arm-pic-veneer.s}
-     {{objdump -d arm-pic-veneer.d}}
-     "arm-pic-veneer"}
 
     {"Simple non-PIC shared library" "-shared" "" "" {arm-lib.s}
      {{objdump -fdw arm-lib.d} {objdump -Rw arm-lib.r}}
@@ -276,193 +267,12 @@ set armelftests_nonacl {
     {"Using Thumb lib by another lib" "-shared tmpdir/mixed-lib.so" "" "" {use-thumb-lib.s}
      {{readelf -Ds use-thumb-lib.sym}}
      "use-thumb-lib.so"}
-    {"Preempt Thumb symbol" "tmpdir/mixed-lib.so -T arm-dyn.ld --use-blx" "" ""
-     {preempt-app.s}
-     {{readelf -Ds preempt-app.sym}}
-     "preempt-app"}
     {"TLS gnu shared library inlined trampoline" "--no-fix-arm1176 -shared -T arm-dyn.ld" "" "" {tls-descseq.s}
      {{objdump -fdw tls-descseq.d} {objdump -Rw tls-descseq.r}}
      "tls-lib2inline.so"}
     {"TLS shared library gdesc local" "--no-fix-arm1176 -shared -T arm-dyn.ld" "" "" {tls-lib-loc.s}
      {{objdump -fdw tls-lib-loc.d} {objdump -Rw tls-lib-loc.r}}
      "tls-lib-loc.so"}
-    {"Cortex-A8 erratum fix, b.w"
-     "-EL -Ttext=0x8f00 --fix-cortex-a8" "" "-EL" {cortex-a8-fix-b.s}
-     {{objdump -dr cortex-a8-fix-b.d}}
-     "cortex-a8-fix-b"}
-    {"Cortex-A8 erratum fix, bl.w"
-     "-EL -Ttext=0x8f00 --fix-cortex-a8" "" "-EL" {cortex-a8-fix-bl.s}
-     {{objdump -dr cortex-a8-fix-bl.d}}
-     "cortex-a8-fix-bl"}
-    {"Cortex-A8 erratum fix, bcc.w"
-     "-EL -Ttext=0x8f00 --fix-cortex-a8" "" "-EL" {cortex-a8-fix-bcc.s}
-     {{objdump -dr cortex-a8-fix-bcc.d}}
-     "cortex-a8-fix-bcc"}
-    {"Cortex-A8 erratum fix, blx.w"
-     "-EL -Ttext=0x8f00 --fix-cortex-a8" "" "-EL" {cortex-a8-fix-blx.s}
-     {{objdump -dr cortex-a8-fix-blx.d}}
-     "cortex-a8-fix-blx"}
-    {"Cortex-A8 erratum fix, relocate b.w to ARM"
-     "-EL -Ttext=0x8f00 --fix-cortex-a8" "" "-EL" {cortex-a8-arm-target.s cortex-a8-fix-b-rel.s}
-     {{objdump -dr cortex-a8-fix-b-rel-arm.d}}
-     "cortex-a8-fix-b-rel-arm"}
-    {"Cortex-A8 erratum fix, relocate b.w to Thumb"
-     "-EL -Ttext=0x8f00 --fix-cortex-a8" "" "-EL" {cortex-a8-thumb-target.s cortex-a8-fix-b-rel.s}
-     {{objdump -dr cortex-a8-fix-b-rel-thumb.d}}
-     "cortex-a8-fix-b-rel-thumb"}
-    {"Cortex-A8 erratum fix, relocate bl.w to ARM"
-     "-EL -Ttext=0x8f00 --fix-cortex-a8" "" "-EL" {cortex-a8-arm-target.s cortex-a8-fix-bl-rel.s}
-     {{objdump -dr cortex-a8-fix-bl-rel-arm.d}}
-     "cortex-a8-fix-bl-rel-arm"}
-    {"Cortex-A8 erratum fix, relocate bl.w to Thumb"
-     "-EL -Ttext=0x8f00 --fix-cortex-a8" "" "-EL" {cortex-a8-thumb-target.s cortex-a8-fix-bl-rel.s}
-     {{objdump -dr cortex-a8-fix-bl-rel-thumb.d}}
-     "cortex-a8-fix-bl-rel-thumb"}
-    {"Cortex-A8 erratum fix, relocate b<cond>.w to Thumb"
-     "-EL -Ttext=0x8f00 --fix-cortex-a8" "" "-EL" {cortex-a8-thumb-target.s cortex-a8-fix-bcc-rel.s}
-     {{objdump -dr cortex-a8-fix-bcc-rel-thumb.d}}
-     "cortex-a8-fix-bcc-rel-thumb"}
-    {"Cortex-A8 erratum fix, relocate blx.w to ARM"
-     "-EL -Ttext=0x8f00 --fix-cortex-a8" "" "-EL" {cortex-a8-arm-target.s cortex-a8-fix-blx-rel.s}
-     {{objdump -dr cortex-a8-fix-blx-rel-arm.d}}
-     "cortex-a8-fix-blx-rel-arm"}
-    {"Cortex-A8 erratum fix, relocate blx.w to Thumb"
-     "-EL -Ttext=0x8f00 --fix-cortex-a8" "" "-EL" {cortex-a8-thumb-target.s cortex-a8-fix-blx-rel.s}
-     {{objdump -dr cortex-a8-fix-blx-rel-thumb.d}}
-     "cortex-a8-fix-blx-rel-thumb"}
-    {"Cortex-A8 erratum fix, relocate bl.w and far call"
-     "-EL -Ttext=0x00 --fix-cortex-a8 --defsym _start=0" ""
-     "-EL -mcpu=cortex-a8" {cortex-a8-far-1.s cortex-a8-far-2.s cortex-a8-far-3.s}
-     {{objdump -dr cortex-a8-far.d}}
-     "cortex-a8-far"}
-    {"Cortex-A8 erratum fix, headers"
-     "-EL --fix-cortex-a8 -T cortex-a8-fix-hdr.t" ""
-     "-EL -mcpu=cortex-a8" {cortex-a8-fix-hdr.s}
-     {{objdump -dr cortex-a8-fix-hdr.d}}
-     "cortex-a8-fix-hdr"}
-    {"Cortex-A8 erratum fix, blx.w and b<cond>.w together"
-     "-EL -Ttext=0x8f00 --fix-cortex-a8" "" "-EL" {cortex-a8-fix-blx-bcond.s}
-     {{objdump -dr cortex-a8-fix-blx-bcond.d}}
-     "cortex-a8-fix-blx-bcond"}
-    {"Cortex-A8 erratum fix, b.w to PLT"
-     "-EL -Tcortex-a8-fix-plt.ld --fix-cortex-a8 -shared" "" "-EL"
-     {cortex-a8-fix-b-plt.s}
-     {{objdump -dr cortex-a8-fix-b-plt.d}}
-     "cortex-a8-fix-b-plt"}
-    {"Cortex-A8 erratum fix, bl.w to PLT"
-     "-EL -Tcortex-a8-fix-plt.ld --fix-cortex-a8 -shared" "" "-EL"
-     {cortex-a8-fix-bl-plt.s}
-     {{objdump -dr cortex-a8-fix-bl-plt.d}}
-     "cortex-a8-fix-bl-plt"}
-    {"Cortex-A8 erratum fix, bcc.w to PLT"
-     "-EL -Tcortex-a8-fix-plt.ld --fix-cortex-a8 -shared" "" "-EL"
-     {cortex-a8-fix-bcc-plt.s}
-     {{objdump -dr cortex-a8-fix-bcc-plt.d}}
-     "cortex-a8-fix-bcc-plt"}
-    {"Cortex-A8 erratum fix, blx.w to PLT"
-     "-EL -Tcortex-a8-fix-plt.ld --fix-cortex-a8 -shared" "" "-EL"
-     {cortex-a8-fix-blx-plt.s}
-     {{objdump -dr cortex-a8-fix-blx-plt.d}}
-     "cortex-a8-fix-blx-plt"}
-    {"Cortex-A8 erratum fix, relocate bl.w to PLT"
-     "-EL --section-start=.plt=0x8e00 -Ttext=0x8f00 --fix-cortex-a8 -shared" ""
-     "-EL" {cortex-a8-thumb-target.s cortex-a8-fix-bl-rel.s}
-     {{objdump -dr cortex-a8-fix-bl-rel-plt.d}}
-     "cortex-a8-fix-bl-rel-thumb"}
-    {"IFUNC test 1" "-T ifunc-static.ld" "" "" {ifunc-1.s}
-     {{objdump -d ifunc-1.dd}
-      {objdump {-s -j.data -j.got} ifunc-1.gd}
-      {readelf -dr ifunc-1.rd}}
-     "ifunc-1"}
-    {"IFUNC test 2" "-T ifunc-static.ld" "" "" {ifunc-2.s}
-     {{objdump -d ifunc-2.dd}
-      {objdump {-s -j.data -j.got} ifunc-2.gd}
-      {readelf -dr ifunc-2.rd}}
-     "ifunc-2"}
-    {"IFUNC test 3" "-T ifunc-dynamic.ld -shared" "" "" {ifunc-3.s}
-     {{objdump -d ifunc-3.dd}
-      {objdump {-s -j.data -j.got} ifunc-3.gd}
-      {readelf -r ifunc-3.rd}}
-     "ifunc-3.so"}
-    {"IFUNC test 4" "-T ifunc-dynamic.ld -shared" "" "" {ifunc-4.s}
-     {{objdump -d ifunc-4.dd}
-      {objdump {-s -j.data -j.got} ifunc-4.gd}
-      {readelf -r ifunc-4.rd}}
-     "ifunc-4.so"}
-    {"IFUNC test 5" "-T ifunc-static.ld" "" "" {ifunc-5.s}
-     {{objdump -d ifunc-5.dd}
-      {objdump {-s -j.data -j.got} ifunc-5.gd}
-      {readelf -dr ifunc-5.rd}}
-     "ifunc-5"}
-    {"IFUNC test 6" "-T ifunc-static.ld" "" "" {ifunc-6.s}
-     {{objdump -d ifunc-6.dd}
-      {objdump {-s -j.data -j.got} ifunc-6.gd}
-      {readelf -dr ifunc-6.rd}}
-     "ifunc-6"}
-    {"IFUNC test 7" "-T ifunc-dynamic.ld tmpdir/ifunc-3.so -shared" ""
-     "" {ifunc-7.s}
-     {{objdump -d ifunc-7.dd}
-      {objdump {-s -j.data -j.got} ifunc-7.gd}
-      {readelf -r ifunc-7.rd}}
-     "ifunc-7.so"}
-    {"IFUNC test 8" "-T ifunc-dynamic.ld tmpdir/ifunc-4.so -shared" ""
-     "" {ifunc-8.s}
-     {{objdump -d ifunc-8.dd}
-      {objdump {-s -j.data -j.got} ifunc-8.gd}
-      {readelf -r ifunc-8.rd}}
-     "ifunc-8.so"}
-    {"IFUNC test 9" "-T ifunc-dynamic.ld tmpdir/ifunc-3.so" "" "" {ifunc-9.s}
-     {{objdump -d ifunc-9.dd}
-      {objdump {-s -j.data -j.got} ifunc-9.gd}
-      {readelf -r ifunc-9.rd}}
-     "ifunc-9"}
-    {"IFUNC test 10" "-T ifunc-dynamic.ld tmpdir/ifunc-4.so" "" "" {ifunc-10.s}
-     {{objdump -d ifunc-10.dd}
-      {objdump {-s -j.data -j.got} ifunc-10.gd}
-      {readelf -r ifunc-10.rd}}
-     "ifunc-10"}
-    {"IFUNC test 11" "-T ifunc-static.ld" "" "" {ifunc-11.s}
-     {{objdump -d ifunc-11.dd}
-      {objdump {-s -j.data -j.got} ifunc-11.gd}
-      {readelf -dr ifunc-11.rd}}
-     "ifunc-11"}
-    {"IFUNC test 12" "-T ifunc-dynamic.ld -shared" "" "" {ifunc-12.s}
-     {{objdump -d ifunc-12.dd}
-      {objdump {-s -j.data -j.got} ifunc-12.gd}
-      {readelf -r ifunc-12.rd}}
-     "ifunc-12.so"}
-    {"IFUNC test 13" "-T ifunc-dynamic.ld tmpdir/ifunc-12.so" "" "" {ifunc-13.s}
-     {{objdump -d ifunc-13.dd}
-      {objdump {-s -j.data -j.got} ifunc-13.gd}
-      {readelf -r ifunc-13.rd}}
-     "ifunc-13"}
-    {"IFUNC test 14" "-T ifunc-dynamic.ld tmpdir/ifunc-12.so" "" "" {ifunc-14.s}
-     {{objdump -d ifunc-14.dd}
-      {objdump {-s -j.data -j.got} ifunc-14.gd}
-      {readelf -r ifunc-14.rd}}
-     "ifunc-14"}
-    {"IFUNC test 15" "-T ifunc-dynamic.ld tmpdir/ifunc-12.so" "" "" {ifunc-15.s}
-     {{objdump -d ifunc-15.dd}
-      {objdump {-s -j.data -j.got} ifunc-15.gd}
-      {readelf -r ifunc-15.rd}}
-     "ifunc-15"}
-    {"IFUNC test 16" "-T ifunc-dynamic.ld tmpdir/ifunc-12.so" "" "" {ifunc-16.s}
-     {{objdump -d ifunc-16.dd}
-      {objdump {-s -j.data -j.got} ifunc-16.gd}
-      {readelf -r ifunc-16.rd}}
-     "ifunc-16"}
-    {"IFUNC test 17" "-T ifunc-static.ld" "" "" {ifunc-17.s}
-     {{objdump -d ifunc-17.dd}
-      {objdump {-s -j.data -j.got} ifunc-17.gd}
-      {readelf -r ifunc-17.rd}}
-     "ifunc-17"}
-    {"Long PLT entries in executables" "--long-plt -shared --section-start=.plt=0x1000 --section-start=.got=0xf0001100" ""
-     "" {long-plt-format.s}
-     {{objdump "-d -j .plt" long-plt-format.d}}
-     "long-plt-format"}
-    {"IFUNC and TLS descriptor shared library" "-shared -T arm-lib.ld --version-script=ifunc-gdesc.ver" "" "" {ifunc-gdesc.s}
-     {{objdump "-Rw" ifunc-gdesc.r}}
-     "ifunc-gdesc.so"}
 }
 
 run_ld_link_tests $armelftests_common
@@ -573,6 +383,12 @@ set armeabitests_common {
     {"Long branch with mixed text and data" "-T arm.ld" "" "" {farcall-data.s}
      {{objdump -dr farcall-data.d farcall-data-nacl.d}}
      "farcall-data"}
+    {"callweak-2" "-static -T arm.ld" "" "" {callweak-2.s}
+     {{objdump -dr callweak-2.d}}
+     "callweak-2"}
+    {"abs call" "-T arm.ld" "" "" {abs-call-1.s}
+     {{objdump -d abs-call-1.d}}
+     "abs-call-1"}
 }
 
 set armeabitests_nonacl {
@@ -756,6 +572,190 @@ set armeabitests_nonacl {
     {"TLS thumb1" "-shared -T arm-dyn.ld --section-start .foo=0x4001000" "" "" {tls-thumb1.s}
      {{objdump -fdw tls-thumb1.d}}
      "tls-thumb1"}
+    {"Cortex-A8 erratum fix, b.w"
+     "-EL -Ttext=0x8f00 --fix-cortex-a8" "" "-EL" {cortex-a8-fix-b.s}
+     {{objdump -dr cortex-a8-fix-b.d}}
+     "cortex-a8-fix-b"}
+    {"Cortex-A8 erratum fix, bl.w"
+     "-EL -Ttext=0x8f00 --fix-cortex-a8" "" "-EL" {cortex-a8-fix-bl.s}
+     {{objdump -dr cortex-a8-fix-bl.d}}
+     "cortex-a8-fix-bl"}
+    {"Cortex-A8 erratum fix, bcc.w"
+     "-EL -Ttext=0x8f00 --fix-cortex-a8" "" "-EL" {cortex-a8-fix-bcc.s}
+     {{objdump -dr cortex-a8-fix-bcc.d}}
+     "cortex-a8-fix-bcc"}
+    {"Cortex-A8 erratum fix, blx.w"
+     "-EL -Ttext=0x8f00 --fix-cortex-a8" "" "-EL" {cortex-a8-fix-blx.s}
+     {{objdump -dr cortex-a8-fix-blx.d}}
+     "cortex-a8-fix-blx"}
+    {"Cortex-A8 erratum fix, relocate b.w to ARM"
+     "-EL -Ttext=0x8f00 --fix-cortex-a8" "" "-EL" {cortex-a8-arm-target.s cortex-a8-fix-b-rel.s}
+     {{objdump -dr cortex-a8-fix-b-rel-arm.d}}
+     "cortex-a8-fix-b-rel-arm"}
+    {"Cortex-A8 erratum fix, relocate b.w to Thumb"
+     "-EL -Ttext=0x8f00 --fix-cortex-a8" "" "-EL" {cortex-a8-thumb-target.s cortex-a8-fix-b-rel.s}
+     {{objdump -dr cortex-a8-fix-b-rel-thumb.d}}
+     "cortex-a8-fix-b-rel-thumb"}
+    {"Cortex-A8 erratum fix, relocate bl.w to ARM"
+     "-EL -Ttext=0x8f00 --fix-cortex-a8" "" "-EL" {cortex-a8-arm-target.s cortex-a8-fix-bl-rel.s}
+     {{objdump -dr cortex-a8-fix-bl-rel-arm.d}}
+     "cortex-a8-fix-bl-rel-arm"}
+    {"Cortex-A8 erratum fix, relocate bl.w to Thumb"
+     "-EL -Ttext=0x8f00 --fix-cortex-a8" "" "-EL" {cortex-a8-thumb-target.s cortex-a8-fix-bl-rel.s}
+     {{objdump -dr cortex-a8-fix-bl-rel-thumb.d}}
+     "cortex-a8-fix-bl-rel-thumb"}
+    {"Cortex-A8 erratum fix, relocate b<cond>.w to Thumb"
+     "-EL -Ttext=0x8f00 --fix-cortex-a8" "" "-EL" {cortex-a8-thumb-target.s cortex-a8-fix-bcc-rel.s}
+     {{objdump -dr cortex-a8-fix-bcc-rel-thumb.d}}
+     "cortex-a8-fix-bcc-rel-thumb"}
+    {"Cortex-A8 erratum fix, relocate blx.w to ARM"
+     "-EL -Ttext=0x8f00 --fix-cortex-a8" "" "-EL" {cortex-a8-arm-target.s cortex-a8-fix-blx-rel.s}
+     {{objdump -dr cortex-a8-fix-blx-rel-arm.d}}
+     "cortex-a8-fix-blx-rel-arm"}
+    {"Cortex-A8 erratum fix, relocate blx.w to Thumb"
+     "-EL -Ttext=0x8f00 --fix-cortex-a8" "" "-EL" {cortex-a8-thumb-target.s cortex-a8-fix-blx-rel.s}
+     {{objdump -dr cortex-a8-fix-blx-rel-thumb.d}}
+     "cortex-a8-fix-blx-rel-thumb"}
+    {"Cortex-A8 erratum fix, relocate bl.w and far call"
+     "-EL -Ttext=0x00 --fix-cortex-a8 --defsym _start=0" ""
+     "-EL -mcpu=cortex-a8" {cortex-a8-far-1.s cortex-a8-far-2.s cortex-a8-far-3.s}
+     {{objdump -dr cortex-a8-far.d}}
+     "cortex-a8-far"}
+    {"Cortex-A8 erratum fix, headers"
+     "-EL --fix-cortex-a8 -T cortex-a8-fix-hdr.t" ""
+     "-EL -mcpu=cortex-a8" {cortex-a8-fix-hdr.s}
+     {{objdump -dr cortex-a8-fix-hdr.d}}
+     "cortex-a8-fix-hdr"}
+    {"Cortex-A8 erratum fix, blx.w and b<cond>.w together"
+     "-EL -Ttext=0x8f00 --fix-cortex-a8" "" "-EL" {cortex-a8-fix-blx-bcond.s}
+     {{objdump -dr cortex-a8-fix-blx-bcond.d}}
+     "cortex-a8-fix-blx-bcond"}
+    {"Cortex-A8 erratum fix, b.w to PLT"
+     "-EL -Tcortex-a8-fix-plt.ld --fix-cortex-a8 -shared" "" "-EL"
+     {cortex-a8-fix-b-plt.s}
+     {{objdump -dr cortex-a8-fix-b-plt.d}}
+     "cortex-a8-fix-b-plt"}
+    {"Cortex-A8 erratum fix, bl.w to PLT"
+     "-EL -Tcortex-a8-fix-plt.ld --fix-cortex-a8 -shared" "" "-EL"
+     {cortex-a8-fix-bl-plt.s}
+     {{objdump -dr cortex-a8-fix-bl-plt.d}}
+     "cortex-a8-fix-bl-plt"}
+    {"Cortex-A8 erratum fix, bcc.w to PLT"
+     "-EL -Tcortex-a8-fix-plt.ld --fix-cortex-a8 -shared" "" "-EL"
+     {cortex-a8-fix-bcc-plt.s}
+     {{objdump -dr cortex-a8-fix-bcc-plt.d}}
+     "cortex-a8-fix-bcc-plt"}
+    {"Cortex-A8 erratum fix, blx.w to PLT"
+     "-EL -Tcortex-a8-fix-plt.ld --fix-cortex-a8 -shared" "" "-EL"
+     {cortex-a8-fix-blx-plt.s}
+     {{objdump -dr cortex-a8-fix-blx-plt.d}}
+     "cortex-a8-fix-blx-plt"}
+    {"Cortex-A8 erratum fix, relocate bl.w to PLT"
+     "-EL --section-start=.plt=0x8e00 -Ttext=0x8f00 --fix-cortex-a8 -shared" ""
+     "-EL" {cortex-a8-thumb-target.s cortex-a8-fix-bl-rel.s}
+     {{objdump -dr cortex-a8-fix-bl-rel-plt.d}}
+     "cortex-a8-fix-bl-rel-thumb"}
+    {"IFUNC test 1" "-T ifunc-static.ld" "" "" {ifunc-1.s}
+     {{objdump -d ifunc-1.dd}
+      {objdump {-s -j.data -j.got} ifunc-1.gd}
+      {readelf -dr ifunc-1.rd}}
+     "ifunc-1"}
+    {"IFUNC test 2" "-T ifunc-static.ld" "" "" {ifunc-2.s}
+     {{objdump -d ifunc-2.dd}
+      {objdump {-s -j.data -j.got} ifunc-2.gd}
+      {readelf -dr ifunc-2.rd}}
+     "ifunc-2"}
+    {"IFUNC test 3" "-T ifunc-dynamic.ld -shared" "" "" {ifunc-3.s}
+     {{objdump -d ifunc-3.dd}
+      {objdump {-s -j.data -j.got} ifunc-3.gd}
+      {readelf -r ifunc-3.rd}}
+     "ifunc-3.so"}
+    {"IFUNC test 4" "-T ifunc-dynamic.ld -shared" "" "" {ifunc-4.s}
+     {{objdump -d ifunc-4.dd}
+      {objdump {-s -j.data -j.got} ifunc-4.gd}
+      {readelf -r ifunc-4.rd}}
+     "ifunc-4.so"}
+    {"IFUNC test 5" "-T ifunc-static.ld" "" "" {ifunc-5.s}
+     {{objdump -d ifunc-5.dd}
+      {objdump {-s -j.data -j.got} ifunc-5.gd}
+      {readelf -dr ifunc-5.rd}}
+     "ifunc-5"}
+    {"IFUNC test 6" "-T ifunc-static.ld" "" "" {ifunc-6.s}
+     {{objdump -d ifunc-6.dd}
+      {objdump {-s -j.data -j.got} ifunc-6.gd}
+      {readelf -dr ifunc-6.rd}}
+     "ifunc-6"}
+    {"IFUNC test 7" "-T ifunc-dynamic.ld tmpdir/ifunc-3.so -shared" ""
+     "" {ifunc-7.s}
+     {{objdump -d ifunc-7.dd}
+      {objdump {-s -j.data -j.got} ifunc-7.gd}
+      {readelf -r ifunc-7.rd}}
+     "ifunc-7.so"}
+    {"IFUNC test 8" "-T ifunc-dynamic.ld tmpdir/ifunc-4.so -shared" ""
+     "" {ifunc-8.s}
+     {{objdump -d ifunc-8.dd}
+      {objdump {-s -j.data -j.got} ifunc-8.gd}
+      {readelf -r ifunc-8.rd}}
+     "ifunc-8.so"}
+    {"IFUNC test 9" "-T ifunc-dynamic.ld tmpdir/ifunc-3.so" "" "" {ifunc-9.s}
+     {{objdump -d ifunc-9.dd}
+      {objdump {-s -j.data -j.got} ifunc-9.gd}
+      {readelf -r ifunc-9.rd}}
+     "ifunc-9"}
+    {"IFUNC test 10" "-T ifunc-dynamic.ld tmpdir/ifunc-4.so" "" "" {ifunc-10.s}
+     {{objdump -d ifunc-10.dd}
+      {objdump {-s -j.data -j.got} ifunc-10.gd}
+      {readelf -r ifunc-10.rd}}
+     "ifunc-10"}
+    {"IFUNC test 11" "-T ifunc-static.ld" "" "" {ifunc-11.s}
+     {{objdump -d ifunc-11.dd}
+      {objdump {-s -j.data -j.got} ifunc-11.gd}
+      {readelf -dr ifunc-11.rd}}
+     "ifunc-11"}
+    {"IFUNC test 12" "-T ifunc-dynamic.ld -shared" "" "" {ifunc-12.s}
+     {{objdump -d ifunc-12.dd}
+      {objdump {-s -j.data -j.got} ifunc-12.gd}
+      {readelf -r ifunc-12.rd}}
+     "ifunc-12.so"}
+    {"IFUNC test 13" "-T ifunc-dynamic.ld tmpdir/ifunc-12.so" "" "" {ifunc-13.s}
+     {{objdump -d ifunc-13.dd}
+      {objdump {-s -j.data -j.got} ifunc-13.gd}
+      {readelf -r ifunc-13.rd}}
+     "ifunc-13"}
+    {"IFUNC test 14" "-T ifunc-dynamic.ld tmpdir/ifunc-12.so" "" "" {ifunc-14.s}
+     {{objdump -d ifunc-14.dd}
+      {objdump {-s -j.data -j.got} ifunc-14.gd}
+      {readelf -r ifunc-14.rd}}
+     "ifunc-14"}
+    {"IFUNC test 15" "-T ifunc-dynamic.ld tmpdir/ifunc-12.so" "" "" {ifunc-15.s}
+     {{objdump -d ifunc-15.dd}
+      {objdump {-s -j.data -j.got} ifunc-15.gd}
+      {readelf -r ifunc-15.rd}}
+     "ifunc-15"}
+    {"IFUNC test 16" "-T ifunc-dynamic.ld tmpdir/ifunc-12.so" "" "" {ifunc-16.s}
+     {{objdump -d ifunc-16.dd}
+      {objdump {-s -j.data -j.got} ifunc-16.gd}
+      {readelf -r ifunc-16.rd}}
+     "ifunc-16"}
+    {"IFUNC test 17" "-T ifunc-static.ld" "" "" {ifunc-17.s}
+     {{objdump -d ifunc-17.dd}
+      {objdump {-s -j.data -j.got} ifunc-17.gd}
+      {readelf -r ifunc-17.rd}}
+     "ifunc-17"}
+    {"Long PLT entries in executables" "--long-plt -shared --section-start=.plt=0x1000 --section-start=.got=0xf0001100" ""
+     "" {long-plt-format.s}
+     {{objdump "-d -j .plt" long-plt-format.d}}
+     "long-plt-format"}
+    {"IFUNC and TLS descriptor shared library" "-shared -T arm-lib.ld --version-script=ifunc-gdesc.ver" "" "" {ifunc-gdesc.s}
+     {{objdump "-Rw" ifunc-gdesc.r}}
+     "ifunc-gdesc.so"}
+    {"arm-pic-veneer" "-static -T arm.ld --pic-veneer" "" "" {arm-pic-veneer.s}
+     {{objdump -d arm-pic-veneer.d}}
+     "arm-pic-veneer"}
+    {"Preempt Thumb symbol" "tmpdir/mixed-lib.so -T arm-dyn.ld --use-blx" "" ""
+     {preempt-app.s}
+     {{readelf -Ds preempt-app.sym}}
+     "preempt-app"}
 }
 
 # Massage the $armeabitests_common list into run_ld_link_tests standard form.
index e04adb8..ecc2cf2 100644 (file)
@@ -1,6 +1,6 @@
 
 tmpdir/arm-lib-plt32.so:     file format elf32-(little|big)arm
-architecture: armv4t, flags 0x00000150:
+architecture: arm.*, flags 0x00000150:
 HAS_SYMS, DYNAMIC, D_PAGED
 start address 0x.*
 
index 887880f..0e2a7aa 100644 (file)
@@ -1,6 +1,6 @@
 
 tmpdir/arm-lib.so:     file format elf32-(little|big)arm.*
-architecture: armv4t, flags 0x00000150:
+architecture: arm.*, flags 0x00000150:
 HAS_SYMS, DYNAMIC, D_PAGED
 start address 0x.*
 
index c08c27f..40355c8 100644 (file)
@@ -1,6 +1,6 @@
 
 tmpdir/arm-static-app:     file format elf32-(little|big)arm.*
-architecture: armv4t, flags 0x00000112:
+architecture: arm.*, flags 0x00000112:
 EXEC_P, HAS_SYMS, D_PAGED
 start address 0x.*
 
index b63e3e6..f87829c 100644 (file)
@@ -1,6 +1,6 @@
 
 tmpdir/armthumb-lib.so:     file format elf32-(little|big)arm
-architecture: armv4t, flags 0x00000150:
+architecture: arm.*, flags 0x00000150:
 HAS_SYMS, DYNAMIC, D_PAGED
 start address 0x.*
 
index e327ac1..06bb646 100644 (file)
@@ -1,3 +1,4 @@
+#target: *-*-*eabi* *-*-nacl*
 
 .*:     file format .*
 
index cfe31a4..6fa799d 100644 (file)
@@ -1,6 +1,6 @@
 
 tmpdir/farcall-mixed-app:     file format elf32-(little|big)arm
-architecture: armv4t, flags 0x00000112:
+architecture: arm.*, flags 0x00000112:
 EXEC_P, HAS_SYMS, D_PAGED
 start address 0x.*
 
index eec8de6..54f4fab 100644 (file)
@@ -1,5 +1,5 @@
 tmpdir/farcall-mixed-lib.so:     file format elf32-(little|big)arm
-architecture: armv4t, flags 0x00000150:
+architecture: arm.*, flags 0x00000150:
 HAS_SYMS, DYNAMIC, D_PAGED
 start address 0x.*
 
index 9577af9..8524e90 100644 (file)
@@ -1,5 +1,5 @@
 tmpdir/farcall-mixed-lib.so:     file format elf32-(little|big)arm
-architecture: armv5t, flags 0x00000150:
+architecture: arm.*, flags 0x00000150:
 HAS_SYMS, DYNAMIC, D_PAGED
 start address 0x.*
 
index 92b5ebb..1091a80 100644 (file)
@@ -1,6 +1,6 @@
 
 tmpdir/mixed-app-v5:     file format elf32-(little|big)arm
-architecture: armv4t, flags 0x00000112:
+architecture: arm.*, flags 0x00000112:
 EXEC_P, HAS_SYMS, D_PAGED
 start address 0x.*
 
index 06166f0..5fdd9f4 100644 (file)
@@ -1,6 +1,6 @@
 
 tmpdir/mixed-app:     file format elf32-(little|big)arm
-architecture: armv4t, flags 0x00000112:
+architecture: arm.*, flags 0x00000112:
 EXEC_P, HAS_SYMS, D_PAGED
 start address 0x.*
 
index 6b344a5..29d29e9 100644 (file)
@@ -1,6 +1,6 @@
 
 tmpdir/mixed-lib.so:     file format elf32-(little|big)arm
-architecture: armv4t, flags 0x00000150:
+architecture: arm.*, flags 0x00000150:
 HAS_SYMS, DYNAMIC, D_PAGED
 start address 0x.*
 
index a88ca7f..de0cbab 100644 (file)
@@ -1,6 +1,6 @@
 
 .*:     file format elf32-.*arm.*
-architecture: armv4, flags 0x00000112:
+architecture: arm.*, flags 0x00000112:
 EXEC_P, HAS_SYMS, D_PAGED
 start address 0x000081c8
 
index c1c7fcd..096723d 100644 (file)
@@ -1,5 +1,5 @@
 .*:     file format elf32-.*
-architecture: armv5te, flags 0x[0-9a-f]+:
+architecture: arm.*, flags 0x[0-9a-f]+:
 EXEC_P, HAS_SYMS, D_PAGED
 start address 0x[0-9a-f]+
 
index 97cbe00..c15c6ee 100644 (file)
@@ -1,5 +1,5 @@
 .*:     file format elf32-.*
-architecture: armv5t, flags 0x[0-9a-f]+:
+architecture: arm.*, flags 0x[0-9a-f]+:
 EXEC_P, HAS_SYMS, D_PAGED
 start address 0x[0-9a-f]+
 
index d39a891..85e8150 100644 (file)
@@ -1,6 +1,6 @@
 
 tmpdir/tls-lib2inline.so:     file format elf32-.*arm
-architecture: armv5t, flags 0x[0-9a-f]+:
+architecture: arm.*, flags 0x[0-9a-f]+:
 HAS_SYMS, DYNAMIC, D_PAGED
 start address 0x[0-9a-f]+
 
index 4d7777a..8f64e41 100644 (file)
@@ -1,6 +1,6 @@
 
 .*/tls-lib2-got.so:     file format elf32-.*arm.*
-architecture: armv4, flags 0x00000150:
+architecture: arm.*, flags 0x00000150:
 HAS_SYMS, DYNAMIC, D_PAGED
 start address 0x000082.0
 
index 43ad706..84ba48f 100644 (file)
@@ -1,6 +1,6 @@
 
 tmpdir/tls-lib2.so:     file format elf32-.*arm
-architecture: armv.t, flags 0x[0-9a-f]+:
+architecture: arm.*, flags 0x[0-9a-f]+:
 HAS_SYMS, DYNAMIC, D_PAGED
 start address 0x[0-9a-f]+
 
index bb450ab..6f79c80 100644 (file)
@@ -1,6 +1,6 @@
 
 tmpdir/tls-app-rel-ie:     file format elf32-.*arm.*
-architecture: armv5t, flags 0x[0-9a-f]+:
+architecture: arm.*, flags 0x[0-9a-f]+:
 EXEC_P, HAS_SYMS, D_PAGED
 start address 0x[0-9a-f]+
 
index 5f6b9ad..565f191 100644 (file)
@@ -1,6 +1,6 @@
 
 tmpdir/tls-app-rel-ie2:     file format elf32-.*arm.*
-architecture: armv5t, flags 0x[0-9a-f]+:
+architecture: arm.*, flags 0x[0-9a-f]+:
 HAS_SYMS, DYNAMIC, D_PAGED
 start address 0x[0-9a-f]+
 
index 02bddad..da3891e 100644 (file)
@@ -1,6 +1,6 @@
 
 tmpdir/tls-app-rel-le:     file format elf32-.*arm.*
-architecture: armv5t, flags 0x[0-9a-f]+:
+architecture: arm.*, flags 0x[0-9a-f]+:
 EXEC_P, HAS_SYMS, D_PAGED
 start address 0x[0-9a-f]+
 
index 8dc4d71..27789b4 100644 (file)
@@ -1,6 +1,6 @@
 
 .*:     file format elf32-.*arm
-architecture: armv5t, flags 0x00000150:
+architecture: arm.*, flags 0x00000150:
 HAS_SYMS, DYNAMIC, D_PAGED
 start address 0x.*
 
index 440d1d3..e72267f 100644 (file)
@@ -1,6 +1,6 @@
 
 .*:     file format elf32-.*arm.*
-architecture: armv4, flags 0x00000150:
+architecture: arm.*, flags 0x00000150:
 HAS_SYMS, DYNAMIC, D_PAGED
 start address 0x.*
 
index 86c59a4..731afa9 100644 (file)
@@ -1,5 +1,5 @@
 .*:     file format elf32-.*arm
-architecture: armv4t, flags 0x00000150:
+architecture: arm.*, flags 0x00000150:
 HAS_SYMS, DYNAMIC, D_PAGED
 start address 0x.*