aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2012-04-12 13:01:15 +0000
committerNick Clifton <nickc@redhat.com>2012-04-12 13:01:15 +0000
commitb38cadfb70dbcbe3f1b31f53e96f0ab9a72e394b (patch)
treee2e35eabac046b7d547d736256c15076ea8d1875 /ld
parentc9a1864ab2c53c0a4b7454a67db515631610fd72 (diff)
downloadbinutils-b38cadfb70dbcbe3f1b31f53e96f0ab9a72e394b.zip
binutils-b38cadfb70dbcbe3f1b31f53e96f0ab9a72e394b.tar.gz
binutils-b38cadfb70dbcbe3f1b31f53e96f0ab9a72e394b.tar.bz2
* elf32-arm.c (elf32_arm_nacl_plt0_entry, elf32_arm_nacl_plt_entry):
New variables. (struct elf32_arm_link_hash_table): New member `nacl_p'. (elf32_arm_link_hash_table_create): Initialize it. (elf32_arm_nacl_link_hash_table_create): New function. (arm_movw_immediate, arm_movt_immediate): New functions. (elf32_arm_populate_plt_entry): Test HTAB->nacl_p. (elf32_arm_finish_dynamic_sections): Likewise. (elf32_arm_output_plt_map_1): Likewise. (bfd_elf32_littlearm_nacl_vec, bfd_elf32_bigarm_nacl_vec): New backend vector stanza. (elf32_arm_nacl_modify_segment_map): New function. * config.bfd: Handle arm-*-nacl*, armeb-*-nacl*. * targets.c: Support bfd_elf32_{big,little}_nacl_vec. * configure.in: Likewise. (bfd_elf32_bigarm_nacl_vec): Add elf-nacl.lo here. (bfd_elf32_littlearm_nacl_vec): Likewise. (bfd_elf32_bigarm_vec, bfd_elf32_littlearm_vec): Likewise. (bfd_elf32_bigarm_symbian_vec): Likewise. (bfd_elf32_littlearm_symbian_vec): Likewise. (bfd_elf32_bigarm_vxworks_vec): Likewise. (bfd_elf32_littlearm_vxworks_vec): Likewise. * configure: Regenerated. * configure.tgt (arm-*-nacl*): Match it. * config/te-nacl.h (FPU_DEFAULT, EABI_DEFAULT): Define. (LOCAL_LABELS_DOLLAR): Define. * config/tc-arm.c (elf32_arm_target_format) [TE_NACL]: Use nacl format variants. * gas/elf/elf.exp (run_elf_list_test): Treat arm-*-nacl* targets as -armeabi. * gas/arm/any-idiv.d: Match *-*-nacl* targets too. * gas/arm/arch4t.d: Likewise. * gas/arm/arch4t-eabi.d: Likewise. * gas/arm/attr-any-armv4t.d: Likewise. * gas/arm/attr-any-thumbv6.d: Likewise. * gas/arm/attr-cpu-directive.d: Likewise. * gas/arm/attr-default.d: Likewise. * gas/arm/attr-march-all.d: Likewise. * gas/arm/attr-march-armv1.d: Likewise. * gas/arm/attr-march-armv2a.d: Likewise. * gas/arm/attr-march-armv2.d: Likewise. * gas/arm/attr-march-armv2s.d: Likewise. * gas/arm/attr-march-armv3.d: Likewise. * gas/arm/attr-march-armv3m.d: Likewise. * gas/arm/attr-march-armv4.d: Likewise. * gas/arm/attr-march-armv4t.d: Likewise. * gas/arm/attr-march-armv4txm.d: Likewise. * gas/arm/attr-march-armv4xm.d: Likewise. * gas/arm/attr-march-armv5.d: Likewise. * gas/arm/attr-march-armv5t.d: Likewise. * gas/arm/attr-march-armv5te.d: Likewise. * gas/arm/attr-march-armv5tej.d: Likewise. * gas/arm/attr-march-armv5texp.d: Likewise. * gas/arm/attr-march-armv5txm.d: Likewise. * gas/arm/attr-march-armv6.d: Likewise. * gas/arm/attr-march-armv6j.d: Likewise. * gas/arm/attr-march-armv6k.d: Likewise. * gas/arm/attr-march-armv6k+sec.d: Likewise. * gas/arm/attr-march-armv6kt2.d: Likewise. * gas/arm/attr-march-armv6-m.d: Likewise. * gas/arm/attr-march-armv6-m+os.d: Likewise. * gas/arm/attr-march-armv6s-m.d: Likewise. * gas/arm/attr-march-armv6t2.d: Likewise. * gas/arm/attr-march-armv6z.d: Likewise. * gas/arm/attr-march-armv6zk.d: Likewise. * gas/arm/attr-march-armv6zkt2.d: Likewise. * gas/arm/attr-march-armv6zt2.d: Likewise. * gas/arm/attr-march-armv7-a.d: Likewise. * gas/arm/attr-march-armv7a.d: Likewise. * gas/arm/attr-march-armv7-a+idiv.d: Likewise. * gas/arm/attr-march-armv7-a+mp.d: Likewise. * gas/arm/attr-march-armv7-a+sec.d: Likewise. * gas/arm/attr-march-armv7-a+sec+virt.d: Likewise. * gas/arm/attr-march-armv7-a+virt.d: Likewise. * gas/arm/attr-march-armv7.d: Likewise. * gas/arm/attr-march-armv7em.d: Likewise. * gas/arm/attr-march-armv7-m.d: Likewise. * gas/arm/attr-march-armv7m.d: Likewise. * gas/arm/attr-march-armv7-r.d: Likewise. * gas/arm/attr-march-armv7r.d: Likewise. * gas/arm/attr-march-armv7-r+mp.d: Likewise. * gas/arm/attr-march-iwmmxt2.d: Likewise. * gas/arm/attr-march-iwmmxt.d: Likewise. * gas/arm/attr-march-xscale.d: Likewise. * gas/arm/attr-mcpu.d: Likewise. * gas/arm/attr-mfpu-arm1020e.d: Likewise. * gas/arm/attr-mfpu-arm1020t.d: Likewise. * gas/arm/attr-mfpu-arm1136jf-s.d: Likewise. * gas/arm/attr-mfpu-arm1136jfs.d: Likewise. * gas/arm/attr-mfpu-arm7500fe.d: Likewise. * gas/arm/attr-mfpu-fpa10.d: Likewise. * gas/arm/attr-mfpu-fpa11.d: Likewise. * gas/arm/attr-mfpu-fpa.d: Likewise. * gas/arm/attr-mfpu-fpe2.d: Likewise. * gas/arm/attr-mfpu-fpe3.d: Likewise. * gas/arm/attr-mfpu-fpe.d: Likewise. * gas/arm/attr-mfpu-maverick.d: Likewise. * gas/arm/attr-mfpu-neon.d: Likewise. * gas/arm/attr-mfpu-neon-fp16.d: Likewise. * gas/arm/attr-mfpu-softfpa.d: Likewise. * gas/arm/attr-mfpu-softvfp.d: Likewise. * gas/arm/attr-mfpu-softvfp+vfp.d: Likewise. * gas/arm/attr-mfpu-vfp10.d: Likewise. * gas/arm/attr-mfpu-vfp10-r0.d: Likewise. * gas/arm/attr-mfpu-vfp3.d: Likewise. * gas/arm/attr-mfpu-vfp9.d: Likewise. * gas/arm/attr-mfpu-vfp.d: Likewise. * gas/arm/attr-mfpu-vfpv2.d: Likewise. * gas/arm/attr-mfpu-vfpv3-d16.d: Likewise. * gas/arm/attr-mfpu-vfpv3.d: Likewise. * gas/arm/attr-mfpu-vfpv4-d16.d: Likewise. * gas/arm/attr-mfpu-vfpv4.d: Likewise. * gas/arm/attr-mfpu-vfpxd.d: Likewise. * gas/arm/attr-names.d: Likewise. * gas/arm/attr-order.d: Likewise. * gas/arm/attr-override-cpu-directive.d: Likewise. * gas/arm/attr-override-mcpu.d: Likewise. * gas/arm/got_prel.d: Likewise. * gas/arm/mapdir.d: Likewise. * gas/arm/mapmisc.d: Likewise. * gas/arm/mapsecs.d: Likewise. * gas/arm/mapshort-eabi.d: Likewise. * gas/arm/mapshort-elf.d: Likewise. * gas/arm/mov-highregs-any.d: Likewise. * gas/arm/mov-lowregs-any.d: Likewise. * gas/arm/pr12198-1.d: Likewise. * gas/arm/pr12198-2.d: Likewise. * gas/arm/thumb.d: Likewise. * gas/arm/thumb-eabi.d: Likewise. * gas/arm/thumbrel.d: Likewise. * configure.tgt (arm*-*-nacl*, arm*b-*-nacl*): Handle them. * emulparams/armelf_nacl.sh: New file. * emulparams/armelfb_nacl.sh: New file. * Makefile.am (ALL_EMULATION_SOURCES): Add earmelf_nacl.c and earmelfb_nacl.c here. (earmelf_nacl.c, earmelfb_nacl.c): New targets. * Makefile.in: Regenerated. * ld-arm/arm-elf.exp (armelftests): Split out into ... (armelftests_common, armelftests_nonacl): ... these two. (armeabitests): Split out into ... (armeabitests_common, armeabitests_nonacl): ... these two. Omit _nonacl sets for arm*-*-nacl* targets. * ld-arm/farcall-mix.d: Don't match exact addresses, only symbolic ones. * ld-arm/farcall-mix2.d: Likewise. * ld-arm/farcall-group.d: Likewise. * ld-arm/tls-gdesc-got.d: Match variant file formats too. Accept some variation in exact addresses. * ld-arm/thumb2-b-interwork.d: Match variant file formats too. Fix regexps not to care about exact addresses where not relevant. * ld-arm/thumb2-bl-undefweak.d: Match any hex strings, not any strings of particular exact lengths. * ld-arm/thumb2-bl-undefweak1.d: Likewise. * ld-arm/arm-app.r: Match variant file formats too. * ld-arm/arm-app-abs32.r: Likewise. * ld-arm/arm-lib.d: Likewise. * ld-arm/arm-lib.r: Likewise. * ld-arm/arm-static-app.r: Likewise. * ld-arm/armv4-bx.d: Likewise. * ld-arm/data-only-map.d: Likewise. * ld-arm/group-relocs.d: Likewise. * ld-arm/jump19.d: Likewise. * ld-arm/reloc-boundaries.d: Likewise. * ld-arm/thumb1-bl.d: Likewise. * ld-arm/thumb2-bl.d: Likewise. * ld-arm/tls-app.d: Likewise. * ld-arm/tls-app.r: Likewise. * ld-arm/tls-gdierelax.d: Likewise. * ld-arm/tls-gdierelax2.d: Likewise. * ld-arm/tls-gdlerelax.d: Likewise. * ld-arm/tls-lib.d: Likewise. * ld-arm/tls-lib.r: Likewise. * ld-arm/tls-mixed.r: Likewise. * ld-arm/vfp11-fix-none.d: Likewise. * ld-arm/vfp11-fix-scalar.d: Likewise. * ld-arm/vfp11-fix-vector.d: Likewise. * ld-arm/arm-static-app.d: Likewise. Fix regexps not to care about exact number of leading spaces. * ld-arm/arm-app-abs32.d: Likewise. * ld-arm/fix-arm1176-off.d: Likewise. * ld-arm/fix-arm1176-on.d: Likewise. * ld-arm/arm-elf.exp: Treat nacl targets like eabi targets.
Diffstat (limited to 'ld')
-rw-r--r--ld/ChangeLog10
-rw-r--r--ld/Makefile.am15
-rw-r--r--ld/Makefile.in17
-rw-r--r--ld/configure.tgt20
-rw-r--r--ld/emulparams/armelf_nacl.sh5
-rw-r--r--ld/emulparams/armelfb_nacl.sh2
-rw-r--r--ld/testsuite/ChangeLog53
-rw-r--r--ld/testsuite/ld-arm/arm-app-abs32.d32
-rw-r--r--ld/testsuite/ld-arm/arm-app-abs32.r2
-rw-r--r--ld/testsuite/ld-arm/arm-app.r2
-rw-r--r--ld/testsuite/ld-arm/arm-elf.exp282
-rw-r--r--ld/testsuite/ld-arm/arm-lib.d2
-rw-r--r--ld/testsuite/ld-arm/arm-lib.r2
-rw-r--r--ld/testsuite/ld-arm/arm-static-app.d24
-rw-r--r--ld/testsuite/ld-arm/arm-static-app.r2
-rw-r--r--ld/testsuite/ld-arm/armv4-bx.d2
-rw-r--r--ld/testsuite/ld-arm/data-only-map.d2
-rw-r--r--ld/testsuite/ld-arm/farcall-group.d84
-rw-r--r--ld/testsuite/ld-arm/farcall-mix.d74
-rw-r--r--ld/testsuite/ld-arm/farcall-mix2.d82
-rw-r--r--ld/testsuite/ld-arm/fix-arm1176-off.d10
-rw-r--r--ld/testsuite/ld-arm/fix-arm1176-on.d16
-rw-r--r--ld/testsuite/ld-arm/group-relocs.d2
-rw-r--r--ld/testsuite/ld-arm/jump19.d2
-rw-r--r--ld/testsuite/ld-arm/reloc-boundaries.d4
-rw-r--r--ld/testsuite/ld-arm/thumb1-bl.d2
-rw-r--r--ld/testsuite/ld-arm/thumb2-b-interwork.d18
-rw-r--r--ld/testsuite/ld-arm/thumb2-bl-undefweak.d2
-rw-r--r--ld/testsuite/ld-arm/thumb2-bl-undefweak1.d2
-rw-r--r--ld/testsuite/ld-arm/thumb2-bl.d2
-rw-r--r--ld/testsuite/ld-arm/tls-app.d2
-rw-r--r--ld/testsuite/ld-arm/tls-app.r2
-rw-r--r--ld/testsuite/ld-arm/tls-gdesc-got.d42
-rw-r--r--ld/testsuite/ld-arm/tls-gdierelax.d2
-rw-r--r--ld/testsuite/ld-arm/tls-gdierelax2.d2
-rw-r--r--ld/testsuite/ld-arm/tls-gdlerelax.d2
-rw-r--r--ld/testsuite/ld-arm/tls-lib.d2
-rw-r--r--ld/testsuite/ld-arm/tls-lib.r2
-rw-r--r--ld/testsuite/ld-arm/tls-mixed.r2
-rw-r--r--ld/testsuite/ld-arm/vfp11-fix-none.d2
-rw-r--r--ld/testsuite/ld-arm/vfp11-fix-scalar.d2
-rw-r--r--ld/testsuite/ld-arm/vfp11-fix-vector.d2
42 files changed, 484 insertions, 354 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index b97aa86..1a1b729 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,13 @@
+2012-04-12 Roland McGrath <mcgrathr@google.com>
+
+ * configure.tgt (arm*-*-nacl*, arm*b-*-nacl*): Handle them.
+ * emulparams/armelf_nacl.sh: New file.
+ * emulparams/armelfb_nacl.sh: New file.
+ * Makefile.am (ALL_EMULATION_SOURCES): Add earmelf_nacl.c
+ and earmelfb_nacl.c here.
+ (earmelf_nacl.c, earmelfb_nacl.c): New targets.
+ * Makefile.in: Regenerated.
+
2012-04-11 Tristan Gingold <gingold@adacore.com>
* scripttempl/ia64vms.sc: New file.
diff --git a/ld/Makefile.am b/ld/Makefile.am
index df7ab98..abb16aa 100644
--- a/ld/Makefile.am
+++ b/ld/Makefile.am
@@ -143,11 +143,13 @@ ALL_EMULATION_SOURCES = \
earmelf_fbsd.c \
earmelf_linux.c \
earmelf_linux_eabi.c \
+ earmelf_nacl.c \
earmelf_nbsd.c \
earmelf_vxworks.c \
earmelfb.c \
earmelfb_linux.c \
earmelfb_linux_eabi.c \
+ earmelfb_nacl.c \
earmelfb_nbsd.c \
earmnbsd.c \
earmnto.c \
@@ -712,6 +714,12 @@ earmelf_linux_eabi.c: $(srcdir)/emulparams/armelf_linux_eabi.sh \
$(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
$(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} armelf_linux_eabi "$(tdir_armelf_linux_abi)"
+earmelf_nacl.c: $(srcdir)/emulparams/armelf_nacl.sh \
+ $(srcdir)/emulparams/armelf_linux_eabi.sh \
+ $(srcdir)/emulparams/armelf_linux.sh \
+ $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
+ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+ ${GENSCRIPTS} armelf_nacl "$(tdir_armelf_nacl)"
earmelf_nbsd.c: $(srcdir)/emulparams/armelf_nbsd.sh \
$(srcdir)/emulparams/armelf.sh \
$(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
@@ -738,6 +746,13 @@ earmelfb_linux_eabi.c: $(srcdir)/emulparams/armelfb_linux_eabi.sh \
$(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
$(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} armelfb_linux_eabi "$(tdir_armelfb_linux_abi)"
+earmelfb_nacl.c: $(srcdir)/emulparams/armelfb_nacl.sh \
+ $(srcdir)/emulparams/armelf_nacl.sh \
+ $(srcdir)/emulparams/armelf_linux_eabi.sh \
+ $(srcdir)/emulparams/armelf_linux.sh \
+ $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
+ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+ ${GENSCRIPTS} armelfb_nacl "$(tdir_armelfb_nacl)"
earmelfb_nbsd.c: $(srcdir)/emulparams/armelfb_nbsd.sh \
$(srcdir)/emulparams/armelf_nbsd.sh \
$(srcdir)/emulparams/armelf.sh \
diff --git a/ld/Makefile.in b/ld/Makefile.in
index af27d3f..2c001c7 100644
--- a/ld/Makefile.in
+++ b/ld/Makefile.in
@@ -450,11 +450,13 @@ ALL_EMULATION_SOURCES = \
earmelf_fbsd.c \
earmelf_linux.c \
earmelf_linux_eabi.c \
+ earmelf_nacl.c \
earmelf_nbsd.c \
earmelf_vxworks.c \
earmelfb.c \
earmelfb_linux.c \
earmelfb_linux_eabi.c \
+ earmelfb_nacl.c \
earmelfb_nbsd.c \
earmnbsd.c \
earmnto.c \
@@ -1065,11 +1067,13 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_fbsd.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_linux.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_linux_eabi.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_nacl.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_nbsd.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_vxworks.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelfb.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelfb_linux.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelfb_linux_eabi.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelfb_nacl.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelfb_nbsd.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmnbsd.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmnto.Po@am__quote@
@@ -2175,6 +2179,12 @@ earmelf_linux_eabi.c: $(srcdir)/emulparams/armelf_linux_eabi.sh \
$(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
$(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} armelf_linux_eabi "$(tdir_armelf_linux_abi)"
+earmelf_nacl.c: $(srcdir)/emulparams/armelf_nacl.sh \
+ $(srcdir)/emulparams/armelf_linux_eabi.sh \
+ $(srcdir)/emulparams/armelf_linux.sh \
+ $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
+ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+ ${GENSCRIPTS} armelf_nacl "$(tdir_armelf_nacl)"
earmelf_nbsd.c: $(srcdir)/emulparams/armelf_nbsd.sh \
$(srcdir)/emulparams/armelf.sh \
$(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
@@ -2201,6 +2211,13 @@ earmelfb_linux_eabi.c: $(srcdir)/emulparams/armelfb_linux_eabi.sh \
$(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
$(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} armelfb_linux_eabi "$(tdir_armelfb_linux_abi)"
+earmelfb_nacl.c: $(srcdir)/emulparams/armelfb_nacl.sh \
+ $(srcdir)/emulparams/armelf_nacl.sh \
+ $(srcdir)/emulparams/armelf_linux_eabi.sh \
+ $(srcdir)/emulparams/armelf_linux.sh \
+ $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \
+ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+ ${GENSCRIPTS} armelfb_nacl "$(tdir_armelfb_nacl)"
earmelfb_nbsd.c: $(srcdir)/emulparams/armelfb_nbsd.sh \
$(srcdir)/emulparams/armelf_nbsd.sh \
$(srcdir)/emulparams/armelf.sh \
diff --git a/ld/configure.tgt b/ld/configure.tgt
index abb4706..c36ec51 100644
--- a/ld/configure.tgt
+++ b/ld/configure.tgt
@@ -87,6 +87,18 @@ arm*-*-linux-*) targ_emul=armelf_linux
targ_extra_emuls="armelf armelfb armelfb_linux"
targ_extra_libpath="armelfb_linux"
;;
+arm*b-*-nacl*) targ_emul=armelfb_nacl
+ targ_extra_emuls="armelf_nacl elf_i386_nacl"
+ targ_extra_libpath=$targ_extra_emuls
+ targ64_extra_emuls="elf32_x86_64_nacl elf_x86_64_nacl"
+ targ64_extra_libpath=$targ64_extra_emuls
+ ;;
+arm*-*-nacl*) targ_emul=armelf_nacl
+ targ_extra_emuls="armelfb_nacl elf_i386_nacl"
+ targ_extra_libpath=$targ_extra_emuls
+ targ64_extra_emuls="elf32_x86_64_nacl elf_x86_64_nacl"
+ targ64_extra_libpath=$targ64_extra_emuls
+ ;;
arm*-*-uclinux*eabi*) targ_emul=armelf_linux_eabi
targ_extra_emuls=armelfb_linux_eabi
targ_extra_libpath=$targ_extra_emuls
@@ -282,12 +294,14 @@ i[3-7]86-*-vxworks*) targ_emul=elf_i386_vxworks ;;
i[3-7]86-*-chaos) targ_emul=elf_i386_chaos
;;
i[3-7]86-*-nacl*) targ_emul=elf_i386_nacl
+ targ_extra_emuls="armelf_nacl armelfb_nacl"
+ targ_extra_libpath=$targ_extra_emuls
targ64_extra_emuls="elf32_x86_64_nacl elf_x86_64_nacl"
- targ64_extra_libpath="elf32_x86_64_nacl elf_x86_64_nacl"
+ targ64_extra_libpath=$targ64_extra_emuls
;;
x86_64-*-nacl*) targ_emul=elf32_x86_64_nacl
- targ_extra_emuls="elf_i386_nacl elf_x86_64_nacl"
- targ_extra_libpath="elf_i386_nacl elf_x86_64_nacl"
+ targ_extra_emuls="elf_i386_nacl elf_x86_64_nacl armelf_nacl armelfb_nacl"
+ targ_extra_libpath=$targ_extra_emuls
tdir_elf_i386_nacl=`echo ${targ_alias} | sed -e 's/x86_64/i386/'`
;;
i860-*-coff) targ_emul=coff_i860 ;;
diff --git a/ld/emulparams/armelf_nacl.sh b/ld/emulparams/armelf_nacl.sh
new file mode 100644
index 0000000..9319577
--- /dev/null
+++ b/ld/emulparams/armelf_nacl.sh
@@ -0,0 +1,5 @@
+. ${srcdir}/emulparams/armelf_linux_eabi.sh
+. ${srcdir}/emulparams/elf_nacl.sh
+BIG_OUTPUT_FORMAT="elf32-bigarm-nacl"
+LITTLE_OUTPUT_FORMAT="elf32-littlearm-nacl"
+OUTPUT_FORMAT="$LITTLE_OUTPUT_FORMAT"
diff --git a/ld/emulparams/armelfb_nacl.sh b/ld/emulparams/armelfb_nacl.sh
new file mode 100644
index 0000000..df4089a
--- /dev/null
+++ b/ld/emulparams/armelfb_nacl.sh
@@ -0,0 +1,2 @@
+. ${srcdir}/emulparams/armelf_nacl.sh
+OUTPUT_FORMAT="$BIG_OUTPUT_FORMAT"
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog
index 122924c..dfdda87 100644
--- a/ld/testsuite/ChangeLog
+++ b/ld/testsuite/ChangeLog
@@ -1,3 +1,56 @@
+2012-04-12 Roland McGrath <mcgrathr@google.com>
+
+ * ld-arm/arm-elf.exp (armelftests): Split out into ...
+ (armelftests_common, armelftests_nonacl): ... these two.
+ (armeabitests): Split out into ...
+ (armeabitests_common, armeabitests_nonacl): ... these two.
+ Omit _nonacl sets for arm*-*-nacl* targets.
+
+ * ld-arm/farcall-mix.d: Don't match exact addresses, only symbolic ones.
+ * ld-arm/farcall-mix2.d: Likewise.
+ * ld-arm/farcall-group.d: Likewise.
+
+ * ld-arm/tls-gdesc-got.d: Match variant file formats too.
+ Accept some variation in exact addresses.
+
+ * ld-arm/thumb2-b-interwork.d: Match variant file formats too.
+ Fix regexps not to care about exact addresses where not relevant.
+
+ * ld-arm/thumb2-bl-undefweak.d: Match any hex strings, not any
+ strings of particular exact lengths.
+ * ld-arm/thumb2-bl-undefweak1.d: Likewise.
+
+ * ld-arm/arm-app.r: Match variant file formats too.
+ * ld-arm/arm-app-abs32.r: Likewise.
+ * ld-arm/arm-lib.d: Likewise.
+ * ld-arm/arm-lib.r: Likewise.
+ * ld-arm/arm-static-app.r: Likewise.
+ * ld-arm/armv4-bx.d: Likewise.
+ * ld-arm/data-only-map.d: Likewise.
+ * ld-arm/group-relocs.d: Likewise.
+ * ld-arm/jump19.d: Likewise.
+ * ld-arm/reloc-boundaries.d: Likewise.
+ * ld-arm/thumb1-bl.d: Likewise.
+ * ld-arm/thumb2-bl.d: Likewise.
+ * ld-arm/tls-app.d: Likewise.
+ * ld-arm/tls-app.r: Likewise.
+ * ld-arm/tls-gdierelax.d: Likewise.
+ * ld-arm/tls-gdierelax2.d: Likewise.
+ * ld-arm/tls-gdlerelax.d: Likewise.
+ * ld-arm/tls-lib.d: Likewise.
+ * ld-arm/tls-lib.r: Likewise.
+ * ld-arm/tls-mixed.r: Likewise.
+ * ld-arm/vfp11-fix-none.d: Likewise.
+ * ld-arm/vfp11-fix-scalar.d: Likewise.
+ * ld-arm/vfp11-fix-vector.d: Likewise.
+ * ld-arm/arm-static-app.d: Likewise.
+ Fix regexps not to care about exact number of leading spaces.
+ * ld-arm/arm-app-abs32.d: Likewise.
+ * ld-arm/fix-arm1176-off.d: Likewise.
+ * ld-arm/fix-arm1176-on.d: Likewise.
+
+ * ld-arm/arm-elf.exp: Treat nacl targets like eabi targets.
+
2012-04-09 Roland McGrath <mcgrathr@google.com>
* ld-elf/eh1.d: Add explicit --64 to as options, and explicit
diff --git a/ld/testsuite/ld-arm/arm-app-abs32.d b/ld/testsuite/ld-arm/arm-app-abs32.d
index dbee189..dbfc7ed 100644
--- a/ld/testsuite/ld-arm/arm-app-abs32.d
+++ b/ld/testsuite/ld-arm/arm-app-abs32.d
@@ -1,5 +1,5 @@
-tmpdir/arm-app-abs32: file format elf32-(little|big)arm
+tmpdir/arm-app-abs32: file format elf32-(little|big)arm.*
architecture: arm, flags 0x00000112:
EXEC_P, HAS_SYMS, D_PAGED
start address .*
@@ -7,23 +7,23 @@ start address .*
Disassembly of section .plt:
.* <.plt>:
- .*: e52de004 push {lr} ; \(str lr, \[sp, #-4\]!\)
- .*: e59fe004 ldr lr, \[pc, #4\] ; .* <_start-0x10>
- .*: e08fe00e add lr, pc, lr
- .*: e5bef008 ldr pc, \[lr, #8\]!
- .*: .* .*
- .*: e28fc6.* add ip, pc, #.*
- .*: e28cca.* add ip, ip, #.* ; .*
- .*: e5bcf.* ldr pc, \[ip, #.*\]!.*
+ +.*: e52de004 push {lr} ; \(str lr, \[sp, #-4\]!\)
+ +.*: e59fe004 ldr lr, \[pc, #4\] ; .* <_start-0x10>
+ +.*: e08fe00e add lr, pc, lr
+ +.*: e5bef008 ldr pc, \[lr, #8\]!
+ +.*: .* .*
+ +.*: e28fc6.* add ip, pc, #.*
+ +.*: e28cca.* add ip, ip, #.* ; .*
+ +.*: e5bcf.* ldr pc, \[ip, #.*\]!.*
Disassembly of section .text:
.* <_start>:
- .*: e1a0c00d mov ip, sp
- .*: e92dd800 push {fp, ip, lr, pc}
- .*: e59f0004 ldr r0, \[pc, #4\] ; .* <_start\+0x14>
- .*: e89d6800 ldm sp, {fp, sp, lr}
- .*: e12fff1e bx lr
- .*: .* .*
+ +.*: e1a0c00d mov ip, sp
+ +.*: e92dd800 push {fp, ip, lr, pc}
+ +.*: e59f0004 ldr r0, \[pc, #4\] ; .* <_start\+0x14>
+ +.*: e89d6800 ldm sp, {fp, sp, lr}
+ +.*: e12fff1e bx lr
+ +.*: .* .*
.* <app_func2>:
- .*: e12fff1e bx lr
+ +.*: e12fff1e bx lr
diff --git a/ld/testsuite/ld-arm/arm-app-abs32.r b/ld/testsuite/ld-arm/arm-app-abs32.r
index 08d668c..fd68a0c 100644
--- a/ld/testsuite/ld-arm/arm-app-abs32.r
+++ b/ld/testsuite/ld-arm/arm-app-abs32.r
@@ -1,5 +1,5 @@
-tmpdir/arm-app-abs32: file format elf32-(little|big)arm
+tmpdir/arm-app-abs32: file format elf32-(little|big)arm.*
DYNAMIC RELOCATION RECORDS
OFFSET TYPE VALUE
diff --git a/ld/testsuite/ld-arm/arm-app.r b/ld/testsuite/ld-arm/arm-app.r
index 4b25e70..1b5cef2 100644
--- a/ld/testsuite/ld-arm/arm-app.r
+++ b/ld/testsuite/ld-arm/arm-app.r
@@ -1,5 +1,5 @@
-tmpdir/arm-app.*: file format elf32-(little|big)arm
+tmpdir/arm-app.*: file format elf32-(little|big)arm.*
DYNAMIC RELOCATION RECORDS
OFFSET TYPE VALUE
diff --git a/ld/testsuite/ld-arm/arm-elf.exp b/ld/testsuite/ld-arm/arm-elf.exp
index 789c742..1ffe344 100644
--- a/ld/testsuite/ld-arm/arm-elf.exp
+++ b/ld/testsuite/ld-arm/arm-elf.exp
@@ -1,5 +1,5 @@
# Expect script for various ARM ELF tests.
-# Copyright 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+# Copyright 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2012
# Free Software Foundation, Inc.
#
# This file is part of the GNU Binutils.
@@ -67,19 +67,13 @@ if { ![is_elf_format] || ![istarget "arm*-*-*"] } {
# nm: Apply nm options on result. Compare with regex (last arg).
# readelf: Apply readelf options on result. Compare with regex (last arg).
-set armelftests {
+set armelftests_common {
{"Group relocations" "-Ttext 0x8000 --section-start zero=0x0 --section-start alpha=0xeef0 --section-start beta=0xffeef0" "" {group-relocs.s}
{{objdump -dr group-relocs.d}}
"group-relocs"}
{"Thumb-1 BL" "-Ttext 0x1000 --section-start .foo=0x401000" "" {thumb1-bl.s}
{{objdump -dr thumb1-bl.d}}
"thumb1-bl"}
- {"Simple non-PIC shared library" "-shared" "" {arm-lib.s}
- {{objdump -fdw arm-lib.d} {objdump -Rw arm-lib.r}}
- "arm-lib.so"}
- {"Simple PIC shared library" "-shared" "" {arm-lib-plt32.s}
- {{objdump -fdw arm-lib-plt32.d} {objdump -Rw arm-lib-plt32.r}}
- "arm-lib-plt32.so"}
{"Indirect cross-library function reference (set-up)"
"-shared" "" {arm-lib-plt-2a.s}
{}
@@ -88,34 +82,9 @@ set armelftests {
"-shared tmpdir/arm-lib-plt-2a.so" "" {arm-lib-plt-2b.s}
{{objdump -dr arm-lib-plt-2.dd} {readelf --relocs arm-lib-plt-2.rd}}
"arm-lib-plt-2b.so"}
- {"Simple dynamic application" "tmpdir/arm-lib.so" "" {arm-app.s}
- {{objdump -fdw arm-app.d} {objdump -Rw arm-app.r}}
- "arm-app"}
{"Simple static application" "" "" {arm-static-app.s}
{{objdump -fdw arm-static-app.d} {objdump -rw arm-static-app.r}}
"arm-static-app"}
- {"Non-pcrel function reference" "tmpdir/arm-lib.so" "" {arm-app-abs32.s}
- {{objdump -fdw arm-app-abs32.d} {objdump -Rw arm-app-abs32.r}}
- "arm-app-abs32"}
- {"Thumb shared library with ARM entry points" "-shared -T arm-lib.ld" "-mthumb-interwork"
- {mixed-lib.s}
- {{objdump -fdw armthumb-lib.d} {readelf -Ds armthumb-lib.sym}}
- "armthumb-lib.so"}
- {"Mixed ARM/Thumb shared library" "-shared -T arm-lib.ld -use-blx" ""
- {mixed-lib.s}
- {{objdump -fdw mixed-lib.d} {objdump -Rw mixed-lib.r}
- {readelf -Ds mixed-lib.sym}}
- "mixed-lib.so"}
- {"Mixed ARM/Thumb dynamic application" "tmpdir/mixed-lib.so -T arm-dyn.ld" ""
- {mixed-app.s}
- {{objdump -fdw mixed-app.d} {objdump -Rw mixed-app.r}
- {readelf -Ds mixed-app.sym}}
- "mixed-app"}
- {"Mixed ARM/Thumb arch5 dynamic application" "tmpdir/mixed-lib.so -T arm-dyn.ld --use-blx" ""
- {mixed-app.s}
- {{objdump -fdw mixed-app-v5.d} {objdump -Rw mixed-app.r}
- {readelf -Ds mixed-app.sym}}
- "mixed-app-v5"}
{"target1-abs" "-static --target1-abs -T arm.ld" "" {arm-target1.s}
{{objdump -s arm-target1-abs.d}}
"arm-target1-abs"}
@@ -149,12 +118,6 @@ set armelftests {
{"TLS gnu shared library got" "-shared -T arm-dyn.ld" "" {tls-gdesc-got.s}
{{objdump "-fDR -j .got" tls-gdesc-got.d}}
"tls-lib2-got.so"}
- {"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"}
{"TLS gnu GD to IE relaxation" "-static -T arm-dyn.ld" "" {tls-gdierelax.s}
{{objdump -fdw tls-gdierelax.d}}
"tls-app-rel-ie"}
@@ -210,38 +173,18 @@ set armelftests {
"-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, 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"
"-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, 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"
"-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, 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"
"-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, 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 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}}
@@ -258,11 +201,6 @@ set armelftests {
"-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 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"}
{"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}}
@@ -334,6 +272,74 @@ set armelftests {
"" {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"}
+}
+
+set armelftests_nonacl {
+ {"Simple non-PIC shared library" "-shared" "" {arm-lib.s}
+ {{objdump -fdw arm-lib.d} {objdump -Rw arm-lib.r}}
+ "arm-lib.so"}
+ {"Simple PIC shared library" "-shared" "" {arm-lib-plt32.s}
+ {{objdump -fdw arm-lib-plt32.d} {objdump -Rw arm-lib-plt32.r}}
+ "arm-lib-plt32.so"}
+ {"Simple dynamic application" "tmpdir/arm-lib.so" "" {arm-app.s}
+ {{objdump -fdw arm-app.d} {objdump -Rw arm-app.r}}
+ "arm-app"}
+ {"Non-pcrel function reference" "tmpdir/arm-lib.so" "" {arm-app-abs32.s}
+ {{objdump -fdw arm-app-abs32.d} {objdump -Rw arm-app-abs32.r}}
+ "arm-app-abs32"}
+ {"Thumb shared library with ARM entry points" "-shared -T arm-lib.ld" "-mthumb-interwork"
+ {mixed-lib.s}
+ {{objdump -fdw armthumb-lib.d} {readelf -Ds armthumb-lib.sym}}
+ "armthumb-lib.so"}
+ {"Mixed ARM/Thumb shared library" "-shared -T arm-lib.ld -use-blx" ""
+ {mixed-lib.s}
+ {{objdump -fdw mixed-lib.d} {objdump -Rw mixed-lib.r}
+ {readelf -Ds mixed-lib.sym}}
+ "mixed-lib.so"}
+ {"Mixed ARM/Thumb dynamic application" "tmpdir/mixed-lib.so -T arm-dyn.ld" ""
+ {mixed-app.s}
+ {{objdump -fdw mixed-app.d} {objdump -Rw mixed-app.r}
+ {readelf -Ds mixed-app.sym}}
+ "mixed-app"}
+ {"Mixed ARM/Thumb arch5 dynamic application" "tmpdir/mixed-lib.so -T arm-dyn.ld --use-blx" ""
+ {mixed-app.s}
+ {{objdump -fdw mixed-app-v5.d} {objdump -Rw mixed-app.r}
+ {readelf -Ds mixed-app.sym}}
+ "mixed-app-v5"}
+ {"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 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}
@@ -416,12 +422,13 @@ set armelftests {
{objdump {-s -j.data -j.got} ifunc-16.gd}
{readelf -r ifunc-16.rd}}
"ifunc-16"}
- {"abs call" "-T arm.ld" "" {abs-call-1.s}
- {{objdump -d abs-call-1.d}}
- "abs-call-1"}
}
-run_ld_link_tests $armelftests
+run_ld_link_tests $armelftests_common
+if { ![istarget "arm*-*-nacl*"] } {
+ run_ld_link_tests $armelftests_nonacl
+}
+
run_dump_test "group-relocs-alu-bad"
run_dump_test "group-relocs-ldr-bad"
run_dump_test "group-relocs-ldrs-bad"
@@ -436,7 +443,7 @@ run_dump_test "movw-shared-4"
# Exclude non-ARM-EABI targets.
-if { ![istarget "arm*-*-*eabi"] } {
+if { ![istarget "arm*-*-*eabi"] && ![istarget "arm*-*-nacl*"] } {
# Special variants of these tests, as a different farcall stub is
# generated for a non-ARM-EABI target: indeed in such a case,
# there are no attributes to indicate that blx can be used.
@@ -455,7 +462,7 @@ if { ![istarget "arm*-*-*eabi"] } {
}
# Farcalls stubs are fully supported for ARM-EABI only
-set armeabitests {
+set armeabitests_common {
{"EABI attribute merging" "-r" "" {attr-merge.s attr-merge.s}
{{readelf -A attr-merge.attr}}
"attr-merge"}
@@ -530,6 +537,73 @@ set armeabitests {
{{objdump -d farcall-arm-arm.d}}
"farcall-arm-arm-be"}
+ {"Multiple farcalls" "-Ttext 0x1000 --section-start .foo=0x2002020" "" {farcall-mix.s}
+ {{objdump -d farcall-mix.d}}
+ "farcall-mix"}
+ {"Multiple farcalls from several sections" "-Ttext 0x1000 --section-start .mytext=0x2000 --section-start .foo=0x2003020" "" {farcall-mix2.s}
+ {{objdump -d farcall-mix2.d}}
+ "farcall-mix2"}
+
+ {"Default group size" "-Ttext 0x1000 --section-start .foo=0x2003020" "" {farcall-group.s farcall-group2.s}
+ {{objdump -d farcall-group.d}}
+ "farcall-group-default"}
+ {"Group size=2" "-Ttext 0x1000 --section-start .foo=0x2003020 --stub-group-size=2" "" {farcall-group.s farcall-group2.s}
+ {{objdump -d farcall-group-size2.d}}
+ "farcall-group-size2"}
+ {"Group size limit" "-Ttext 0x1000 --section-start .far=0x2003020" "" {farcall-group3.s farcall-group4.s}
+ {{objdump -d farcall-group-limit.d}}
+ "farcall-group-limit"}
+
+ {"Long branch with mixed text and data" "-T arm.ld" "" {farcall-data.s}
+ {{objdump -dr farcall-data.d}}
+ "farcall-data"}
+
+ {"R_ARM_THM_JUMP24 Relocation veneers: Short 1"
+ "--no-fix-arm1176 --section-start destsect=0x00009000 --section-start .text=0x8000"
+ "-march=armv7-a -mthumb"
+ {jump-reloc-veneers.s}
+ {{objdump -d jump-reloc-veneers-short1.d}}
+ "jump-reloc-veneers-short1"}
+ {"R_ARM_THM_JUMP24 Relocation veneers: Short 2"
+ "--no-fix-arm1176 --section-start destsect=0x00900000 --section-start .text=0x8000"
+ "-march=armv7-a -mthumb"
+ {jump-reloc-veneers.s}
+ {{objdump -d jump-reloc-veneers-short2.d}}
+ "jump-reloc-veneers-short2"}
+ {"R_ARM_THM_JUMP24 Relocation veneers: Long"
+ "--no-fix-arm1176 --section-start destsect=0x09000000 --section-start .text=0x8000"
+ "-march=armv7-a -mthumb"
+ {jump-reloc-veneers.s}
+ {{objdump -d jump-reloc-veneers-long.d}}
+ "jump-reloc-veneers-long"}
+
+ {"erratum 760522 fix (default for v6z)" "--section-start=.foo=0x2001014"
+ "-march=armv6z" {fix-arm1176.s}
+ {{objdump -d fix-arm1176-on.d}}
+ "fix-arm1176-1"}
+ {"erratum 760522 fix (explicitly on at v6z)" "--section-start=.foo=0x2001014 --fix-arm1176"
+ "-march=armv6z" {fix-arm1176.s}
+ {{objdump -d fix-arm1176-on.d}}
+ "fix-arm1176-2"}
+ {"erratum 760522 fix (explicitly off at v6z)" "--section-start=.foo=0x2001014 --no-fix-arm1176"
+ "-march=armv6z" {fix-arm1176.s}
+ {{objdump -d fix-arm1176-off.d}}
+ "fix-arm1176-3"}
+ {"erratum 760522 fix (default for v5)" "--section-start=.foo=0x2001014 "
+ "-march=armv5te" {fix-arm1176.s}
+ {{objdump -d fix-arm1176-on.d}}
+ "fix-arm1176-4"}
+ {"erratum 760522 fix (default for v7-a)" "--section-start=.foo=0x2001014 "
+ "-march=armv7-a" {fix-arm1176.s}
+ {{objdump -d fix-arm1176-off.d}}
+ "fix-arm1176-5"}
+ {"erratum 760522 fix (default for ARM1156)" "--section-start=.foo=0x2001014 "
+ "-mcpu=arm1156t2f-s" {fix-arm1176.s}
+ {{objdump -d fix-arm1176-off.d}}
+ "fix-arm1176-6"}
+}
+
+set armeabitests_nonacl {
{"ARM-Thumb farcall" "-Ttext 0x1000 --section-start .foo=0x2001014" "" {farcall-arm-thumb.s}
{{objdump -d farcall-arm-thumb.d}}
"farcall-arm-thumb"}
@@ -587,23 +661,6 @@ set armeabitests {
{{objdump -d farcall-thumb-arm-pic-veneer.d}}
"farcall-thumb-arm-pic-veneer"}
- {"Multiple farcalls" "-Ttext 0x1000 --section-start .foo=0x2002020" "" {farcall-mix.s}
- {{objdump -d farcall-mix.d}}
- "farcall-mix"}
- {"Multiple farcalls from several sections" "-Ttext 0x1000 --section-start .mytext=0x2000 --section-start .foo=0x2003020" "" {farcall-mix2.s}
- {{objdump -d farcall-mix2.d}}
- "farcall-mix2"}
-
- {"Default group size" "-Ttext 0x1000 --section-start .foo=0x2003020" "" {farcall-group.s farcall-group2.s}
- {{objdump -d farcall-group.d}}
- "farcall-group-default"}
- {"Group size=2" "-Ttext 0x1000 --section-start .foo=0x2003020 --stub-group-size=2" "" {farcall-group.s farcall-group2.s}
- {{objdump -d farcall-group-size2.d}}
- "farcall-group-size2"}
- {"Group size limit" "-Ttext 0x1000 --section-start .far=0x2003020" "" {farcall-group3.s farcall-group4.s}
- {{objdump -d farcall-group-limit.d}}
- "farcall-group-limit"}
-
{"Mixed ARM/Thumb dynamic application with farcalls" "tmpdir/mixed-lib.so -T arm-dyn.ld --section-start .far_arm=0x2100000 --section-start .far_thumb=0x2200000" ""
{farcall-mixed-app.s}
{{objdump -fdw farcall-mixed-app.d} {objdump -Rw farcall-mixed-app.r}
@@ -625,28 +682,6 @@ set armeabitests {
{{objdump -fdw farcall-mixed-lib.d}}
"farcall-mixed-lib.so"}
- {"Long branch with mixed text and data" "-T arm.ld" "" {farcall-data.s}
- {{objdump -dr farcall-data.d}}
- "farcall-data"}
-
- {"R_ARM_THM_JUMP24 Relocation veneers: Short 1"
- "--no-fix-arm1176 --section-start destsect=0x00009000 --section-start .text=0x8000"
- "-march=armv7-a -mthumb"
- {jump-reloc-veneers.s}
- {{objdump -d jump-reloc-veneers-short1.d}}
- "jump-reloc-veneers-short1"}
- {"R_ARM_THM_JUMP24 Relocation veneers: Short 2"
- "--no-fix-arm1176 --section-start destsect=0x00900000 --section-start .text=0x8000"
- "-march=armv7-a -mthumb"
- {jump-reloc-veneers.s}
- {{objdump -d jump-reloc-veneers-short2.d}}
- "jump-reloc-veneers-short2"}
- {"R_ARM_THM_JUMP24 Relocation veneers: Long"
- "--no-fix-arm1176 --section-start destsect=0x09000000 --section-start .text=0x8000"
- "-march=armv7-a -mthumb"
- {jump-reloc-veneers.s}
- {{objdump -d jump-reloc-veneers-long.d}}
- "jump-reloc-veneers-long"}
{"TLS gnu shared library" "--no-fix-arm1176 -shared -T arm-dyn.ld" "" {tls-gdesc.s}
{{objdump -fdw tls-gdesc.d} {objdump -Rw tls-gdesc.r}}
"tls-lib2.so"}
@@ -662,34 +697,13 @@ set armeabitests {
{"TLS thumb1" "-shared -T arm-dyn.ld --section-start .foo=0x4001000" "" {tls-thumb1.s}
{{objdump -fdw tls-thumb1.d}}
"tls-thumb1"}
+}
- {"erratum 760522 fix (default for v6z)" "--section-start=.foo=0x2001014"
- "-march=armv6z" {fix-arm1176.s}
- {{objdump -d fix-arm1176-on.d}}
- "fix-arm1176-1"}
- {"erratum 760522 fix (explicitly on at v6z)" "--section-start=.foo=0x2001014 --fix-arm1176"
- "-march=armv6z" {fix-arm1176.s}
- {{objdump -d fix-arm1176-on.d}}
- "fix-arm1176-2"}
- {"erratum 760522 fix (explicitly off at v6z)" "--section-start=.foo=0x2001014 --no-fix-arm1176"
- "-march=armv6z" {fix-arm1176.s}
- {{objdump -d fix-arm1176-off.d}}
- "fix-arm1176-3"}
- {"erratum 760522 fix (default for v5)" "--section-start=.foo=0x2001014 "
- "-march=armv5te" {fix-arm1176.s}
- {{objdump -d fix-arm1176-on.d}}
- "fix-arm1176-4"}
- {"erratum 760522 fix (default for v7-a)" "--section-start=.foo=0x2001014 "
- "-march=armv7-a" {fix-arm1176.s}
- {{objdump -d fix-arm1176-off.d}}
- "fix-arm1176-5"}
- {"erratum 760522 fix (default for ARM1156)" "--section-start=.foo=0x2001014 "
- "-mcpu=arm1156t2f-s" {fix-arm1176.s}
- {{objdump -d fix-arm1176-off.d}}
- "fix-arm1176-6"}
+run_ld_link_tests $armeabitests_common
+if { ![istarget "arm*-*-nacl*"] } {
+ run_ld_link_tests $armeabitests_nonacl
}
-run_ld_link_tests $armeabitests
run_dump_test "attr-merge-div-00"
run_dump_test "attr-merge-div-01"
run_dump_test "attr-merge-div-10"
diff --git a/ld/testsuite/ld-arm/arm-lib.d b/ld/testsuite/ld-arm/arm-lib.d
index 3a1c777..75845fb 100644
--- a/ld/testsuite/ld-arm/arm-lib.d
+++ b/ld/testsuite/ld-arm/arm-lib.d
@@ -1,5 +1,5 @@
-tmpdir/arm-lib.so: file format elf32-(little|big)arm
+tmpdir/arm-lib.so: file format elf32-(little|big)arm.*
architecture: arm, flags 0x00000150:
HAS_SYMS, DYNAMIC, D_PAGED
start address 0x.*
diff --git a/ld/testsuite/ld-arm/arm-lib.r b/ld/testsuite/ld-arm/arm-lib.r
index a7dde47..48749d4 100644
--- a/ld/testsuite/ld-arm/arm-lib.r
+++ b/ld/testsuite/ld-arm/arm-lib.r
@@ -1,5 +1,5 @@
-tmpdir/arm-lib.so: file format elf32-(little|big)arm
+tmpdir/arm-lib.so: file format elf32-(little|big)arm.*
DYNAMIC RELOCATION RECORDS
OFFSET TYPE VALUE
diff --git a/ld/testsuite/ld-arm/arm-static-app.d b/ld/testsuite/ld-arm/arm-static-app.d
index f18f3c6..de2f7d6 100644
--- a/ld/testsuite/ld-arm/arm-static-app.d
+++ b/ld/testsuite/ld-arm/arm-static-app.d
@@ -1,5 +1,5 @@
-tmpdir/arm-static-app: file format elf32-(little|big)arm
+tmpdir/arm-static-app: file format elf32-(little|big)arm.*
architecture: arm, flags 0x00000112:
EXEC_P, HAS_SYMS, D_PAGED
start address 0x.*
@@ -7,18 +7,18 @@ start address 0x.*
Disassembly of section .text:
.* <_start>:
- .*: e1a0c00d mov ip, sp
- .*: e92dd800 push {fp, ip, lr, pc}
- .*: eb000001 bl .* <app_func>
- .*: e89d6800 ldm sp, {fp, sp, lr}
- .*: e12fff1e bx lr
+ +.*: e1a0c00d mov ip, sp
+ +.*: e92dd800 push {fp, ip, lr, pc}
+ +.*: eb000001 bl .* <app_func>
+ +.*: e89d6800 ldm sp, {fp, sp, lr}
+ +.*: e12fff1e bx lr
.* <app_func>:
- .*: e1a0c00d mov ip, sp
- .*: e92dd800 push {fp, ip, lr, pc}
- .*: eb000001 bl .* <app_func2>
- .*: e89d6800 ldm sp, {fp, sp, lr}
- .*: e12fff1e bx lr
+ +.*: e1a0c00d mov ip, sp
+ +.*: e92dd800 push {fp, ip, lr, pc}
+ +.*: eb000001 bl .* <app_func2>
+ +.*: e89d6800 ldm sp, {fp, sp, lr}
+ +.*: e12fff1e bx lr
.* <app_func2>:
- .*: e12fff1e bx lr
+ +.*: e12fff1e bx lr
diff --git a/ld/testsuite/ld-arm/arm-static-app.r b/ld/testsuite/ld-arm/arm-static-app.r
index 6034b7f..92df70e 100644
--- a/ld/testsuite/ld-arm/arm-static-app.r
+++ b/ld/testsuite/ld-arm/arm-static-app.r
@@ -1,3 +1,3 @@
-tmpdir/arm-static-app: file format elf32-(little|big)arm
+tmpdir/arm-static-app: file format elf32-(little|big)arm.*
diff --git a/ld/testsuite/ld-arm/armv4-bx.d b/ld/testsuite/ld-arm/armv4-bx.d
index b30af8c..be2a4da 100644
--- a/ld/testsuite/ld-arm/armv4-bx.d
+++ b/ld/testsuite/ld-arm/armv4-bx.d
@@ -1,5 +1,5 @@
-.*: .*file format elf32-(big|little)arm
+.*: .*file format elf32-(big|little)arm.*
Disassembly of section \.text:
diff --git a/ld/testsuite/ld-arm/data-only-map.d b/ld/testsuite/ld-arm/data-only-map.d
index 39eed87..706e709 100644
--- a/ld/testsuite/ld-arm/data-only-map.d
+++ b/ld/testsuite/ld-arm/data-only-map.d
@@ -1,5 +1,5 @@
-[^:]*: file format elf32-littlearm
+[^:]*: file format elf32-littlearm.*
Disassembly of section \.text:
diff --git a/ld/testsuite/ld-arm/farcall-group.d b/ld/testsuite/ld-arm/farcall-group.d
index 75514f4..da811e7 100644
--- a/ld/testsuite/ld-arm/farcall-group.d
+++ b/ld/testsuite/ld-arm/farcall-group.d
@@ -3,54 +3,54 @@
Disassembly of section .text:
-00001000 <_start>:
- 1000: eb00000c bl 1038 <__bar_from_arm>
- 1004: eb00000e bl 1044 <__bar2_veneer>
-
-00001008 <myfunc>:
- 1008: eb000008 bl 1030 <__bar3_veneer>
- 100c: eb000004 bl 1024 <__bar4_from_arm>
- 1010: eb000000 bl 1018 <__bar5_from_arm>
- 1014: 00000000 andeq r0, r0, r0
-
-00001018 <__bar5_from_arm>:
- 1018: e59fc000 ldr ip, \[pc\] ; 1020 <__bar5_from_arm\+0x8>
- 101c: e12fff1c bx ip
- 1020: 0200302f .word 0x0200302f
-
-00001024 <__bar4_from_arm>:
- 1024: e59fc000 ldr ip, \[pc\] ; 102c <__bar4_from_arm\+0x8>
- 1028: e12fff1c bx ip
- 102c: 0200302d .word 0x0200302d
-
-00001030 <__bar3_veneer>:
- 1030: e51ff004 ldr pc, \[pc, #-4\] ; 1034 <__bar3_veneer\+0x4>
- 1034: 02003028 .word 0x02003028
-
-00001038 <__bar_from_arm>:
- 1038: e59fc000 ldr ip, \[pc\] ; 1040 <__bar_from_arm\+0x8>
- 103c: e12fff1c bx ip
- 1040: 02003021 .word 0x02003021
-
-00001044 <__bar2_veneer>:
- 1044: e51ff004 ldr pc, \[pc, #-4\] ; 1048 <__bar2_veneer\+0x4>
- 1048: 02003024 .word 0x02003024
+[0-9a-f]+ <_start>:
+ +[0-9a-f]+: [0-9a-f]{8} bl [0-9a-f]+ <__bar_from_arm>
+ +[0-9a-f]+: [0-9a-f]{8} bl [0-9a-f]+ <__bar2_veneer>
+
+[0-9a-f]+ <myfunc>:
+ +[0-9a-f]+: [0-9a-f]{8} bl [0-9a-f]+ <__bar3_veneer>
+ +[0-9a-f]+: [0-9a-f]{8} bl [0-9a-f]+ <__bar4_from_arm>
+ +[0-9a-f]+: [0-9a-f]{8} bl [0-9a-f]+ <__bar5_from_arm>
+ +[0-9a-f]+: 00000000 andeq r0, r0, r0
+
+[0-9a-f]+ <__bar5_from_arm>:
+ +[0-9a-f]+: e59fc000 ldr ip, \[pc\] ; [0-9a-f]+ <__bar5_from_arm\+0x8>
+ +[0-9a-f]+: e12fff1c bx ip
+ +[0-9a-f]+: 0200302f .word 0x0200302f
+
+[0-9a-f]+ <__bar4_from_arm>:
+ +[0-9a-f]+: e59fc000 ldr ip, \[pc\] ; [0-9a-f]+ <__bar4_from_arm\+0x8>
+ +[0-9a-f]+: e12fff1c bx ip
+ +[0-9a-f]+: 0200302d .word 0x0200302d
+
+[0-9a-f]+ <__bar3_veneer>:
+ +[0-9a-f]+: e51ff004 ldr pc, \[pc, #-4\] ; [0-9a-f]+ <__bar3_veneer\+0x4>
+ +[0-9a-f]+: 02003028 .word 0x02003028
+
+[0-9a-f]+ <__bar_from_arm>:
+ +[0-9a-f]+: e59fc000 ldr ip, \[pc\] ; [0-9a-f]+ <__bar_from_arm\+0x8>
+ +[0-9a-f]+: e12fff1c bx ip
+ +[0-9a-f]+: 02003021 .word 0x02003021
+
+[0-9a-f]+ <__bar2_veneer>:
+ +[0-9a-f]+: e51ff004 ldr pc, \[pc, #-4\] ; [0-9a-f]+ <__bar2_veneer\+0x4>
+ +[0-9a-f]+: 02003024 .word 0x02003024
...
Disassembly of section .foo:
-02003020 <bar>:
- 2003020: 4770 bx lr
+[0-9a-f]+ <bar>:
+ +[0-9a-f]+: 4770 bx lr
...
-02003024 <bar2>:
- 2003024: e12fff1e bx lr
+[0-9a-f]+ <bar2>:
+ +[0-9a-f]+: e12fff1e bx lr
-02003028 <bar3>:
- 2003028: e12fff1e bx lr
+[0-9a-f]+ <bar3>:
+ +[0-9a-f]+: e12fff1e bx lr
-0200302c <bar4>:
- 200302c: 4770 bx lr
+[0-9a-f]+ <bar4>:
+ +[0-9a-f]+: 4770 bx lr
-0200302e <bar5>:
- 200302e: 4770 bx lr
+[0-9a-f]+ <bar5>:
+ +[0-9a-f]+: 4770 bx lr
diff --git a/ld/testsuite/ld-arm/farcall-mix.d b/ld/testsuite/ld-arm/farcall-mix.d
index 227cd83..ffeffb9 100644
--- a/ld/testsuite/ld-arm/farcall-mix.d
+++ b/ld/testsuite/ld-arm/farcall-mix.d
@@ -3,49 +3,49 @@
Disassembly of section .text:
-00001000 <_start>:
- 1000: eb000004 bl 1018 <__bar_from_arm>
- 1004: eb00000e bl 1044 <__bar2_veneer>
- 1008: eb000005 bl 1024 <__bar3_veneer>
- 100c: eb000009 bl 1038 <__bar4_from_arm>
- 1010: eb000005 bl 102c <__bar5_from_arm>
- 1014: 00000000 andeq r0, r0, r0
-
-00001018 <__bar_from_arm>:
- 1018: e59fc000 ldr ip, \[pc\] ; 1020 <__bar_from_arm\+0x8>
- 101c: e12fff1c bx ip
- 1020: 02002021 .word 0x02002021
-00001024 <__bar3_veneer>:
- 1024: e51ff004 ldr pc, \[pc, #-4\] ; 1028 <__bar3_veneer\+0x4>
- 1028: 02002028 .word 0x02002028
-0000102c <__bar5_from_arm>:
- 102c: e59fc000 ldr ip, \[pc\] ; 1034 <__bar5_from_arm\+0x8>
- 1030: e12fff1c bx ip
- 1034: 0200202f .word 0x0200202f
-00001038 <__bar4_from_arm>:
- 1038: e59fc000 ldr ip, \[pc\] ; 1040 <__bar4_from_arm\+0x8>
- 103c: e12fff1c bx ip
- 1040: 0200202d .word 0x0200202d
-
-00001044 <__bar2_veneer>:
- 1044: e51ff004 ldr pc, \[pc, #-4\] ; 1048 <__bar2_veneer\+0x4>
- 1048: 02002024 .word 0x02002024
+[0-9a-f]+ <_start>:
+ +[0-9a-f]+: [0-9a-f]{8} bl [0-9a-f]+ <__bar_from_arm>
+ +[0-9a-f]+: [0-9a-f]{8} bl [0-9a-f]+ <__bar2_veneer>
+ +[0-9a-f]+: [0-9a-f]{8} bl [0-9a-f]+ <__bar3_veneer>
+ +[0-9a-f]+: [0-9a-f]{8} bl [0-9a-f]+ <__bar4_from_arm>
+ +[0-9a-f]+: [0-9a-f]{8} bl [0-9a-f]+ <__bar5_from_arm>
+ +[0-9a-f]+: 00000000 andeq r0, r0, r0
+
+[0-9a-f]+ <__bar_from_arm>:
+ +[0-9a-f]+: e59fc000 ldr ip, \[pc\] ; [0-9a-f]+ <__bar_from_arm\+0x8>
+ +[0-9a-f]+: e12fff1c bx ip
+ +[0-9a-f]+: 02002021 .word 0x02002021
+[0-9a-f]+ <__bar3_veneer>:
+ +[0-9a-f]+: e51ff004 ldr pc, \[pc, #-4\] ; [0-9a-f]+ <__bar3_veneer\+0x4>
+ +[0-9a-f]+: 02002028 .word 0x02002028
+[0-9a-f]+ <__bar5_from_arm>:
+ +[0-9a-f]+: e59fc000 ldr ip, \[pc\] ; [0-9a-f]+ <__bar5_from_arm\+0x8>
+ +[0-9a-f]+: e12fff1c bx ip
+ +[0-9a-f]+: 0200202f .word 0x0200202f
+[0-9a-f]+ <__bar4_from_arm>:
+ +[0-9a-f]+: e59fc000 ldr ip, \[pc\] ; [0-9a-f]+ <__bar4_from_arm\+0x8>
+ +[0-9a-f]+: e12fff1c bx ip
+ +[0-9a-f]+: 0200202d .word 0x0200202d
+
+[0-9a-f]+ <__bar2_veneer>:
+ +[0-9a-f]+: e51ff004 ldr pc, \[pc, #-4\] ; [0-9a-f]+ <__bar2_veneer\+0x4>
+ +[0-9a-f]+: 02002024 .word 0x02002024
...
Disassembly of section .foo:
-02002020 <bar>:
- 2002020: 4770 bx lr
+[0-9a-f]+ <bar>:
+ +[0-9a-f]+: 4770 bx lr
...
-02002024 <bar2>:
- 2002024: e12fff1e bx lr
+[0-9a-f]+ <bar2>:
+ +[0-9a-f]+: e12fff1e bx lr
-02002028 <bar3>:
- 2002028: e12fff1e bx lr
+[0-9a-f]+ <bar3>:
+ +[0-9a-f]+: e12fff1e bx lr
-0200202c <bar4>:
- 200202c: 4770 bx lr
+[0-9a-f]+ <bar4>:
+ +[0-9a-f]+: 4770 bx lr
-0200202e <bar5>:
- 200202e: 4770 bx lr
+[0-9a-f]+ <bar5>:
+ +[0-9a-f]+: 4770 bx lr
diff --git a/ld/testsuite/ld-arm/farcall-mix2.d b/ld/testsuite/ld-arm/farcall-mix2.d
index f9b66a3..192a2a0 100644
--- a/ld/testsuite/ld-arm/farcall-mix2.d
+++ b/ld/testsuite/ld-arm/farcall-mix2.d
@@ -3,54 +3,54 @@
Disassembly of section .text:
-00001000 <_start>:
- 1000: eb000000 bl 1008 <__bar_from_arm>
- 1004: eb000002 bl 1014 <__bar2_veneer>
-
-00001008 <__bar_from_arm>:
- 1008: e59fc000 ldr ip, \[pc\] ; 1010 <__bar_from_arm\+0x8>
- 100c: e12fff1c bx ip
- 1010: 02003021 .word 0x02003021
-00001014 <__bar2_veneer>:
- 1014: e51ff004 ldr pc, \[pc, #-4\] ; 1018 <__bar2_veneer\+0x4>
- 1018: 02003024 .word 0x02003024
- 101c: 00000000 .word 0x00000000
+[0-9a-f]+ <_start>:
+ +[0-9a-f]+: eb000000 bl [0-9a-f]+ <__bar_from_arm>
+ +[0-9a-f]+: eb000002 bl [0-9a-f]+ <__bar2_veneer>
+
+[0-9a-f]+ <__bar_from_arm>:
+ +[0-9a-f]+: e59fc000 ldr ip, \[pc\] ; [0-9a-f]+ <__bar_from_arm\+0x8>
+ +[0-9a-f]+: e12fff1c bx ip
+ +[0-9a-f]+: 02003021 .word 0x02003021
+[0-9a-f]+ <__bar2_veneer>:
+ +[0-9a-f]+: e51ff004 ldr pc, \[pc, #-4\] ; [0-9a-f]+ <__bar2_veneer\+0x4>
+ +[0-9a-f]+: 02003024 .word 0x02003024
+ +[0-9a-f]+: 00000000 .word 0x00000000
Disassembly of section .mytext:
-00002000 <__bar3_veneer-0x10>:
- 2000: eb000002 bl 2010 <__bar3_veneer>
- 2004: eb000003 bl 2018 <__bar4_from_arm>
- 2008: eb000005 bl 2024 <__bar5_from_arm>
- 200c: 00000000 andeq r0, r0, r0
-
-00002010 <__bar3_veneer>:
- 2010: e51ff004 ldr pc, \[pc, #-4\] ; 2014 <__bar3_veneer\+0x4>
- 2014: 02003028 .word 0x02003028
-
-00002018 <__bar4_from_arm>:
- 2018: e59fc000 ldr ip, \[pc\] ; 2020 <__bar4_from_arm\+0x8>
- 201c: e12fff1c bx ip
- 2020: 0200302d .word 0x0200302d
-
-00002024 <__bar5_from_arm>:
- 2024: e59fc000 ldr ip, \[pc\] ; 202c <__bar5_from_arm\+0x8>
- 2028: e12fff1c bx ip
- 202c: 0200302f .word 0x0200302f
+[0-9a-f]+ <__bar3_veneer-0x10>:
+ +[0-9a-f]+: eb000002 bl [0-9a-f]+ <__bar3_veneer>
+ +[0-9a-f]+: eb000003 bl [0-9a-f]+ <__bar4_from_arm>
+ +[0-9a-f]+: eb000005 bl [0-9a-f]+ <__bar5_from_arm>
+ +[0-9a-f]+: 00000000 andeq r0, r0, r0
+
+[0-9a-f]+ <__bar3_veneer>:
+ +[0-9a-f]+: e51ff004 ldr pc, \[pc, #-4\] ; [0-9a-f]+ <__bar3_veneer\+0x4>
+ +[0-9a-f]+: 02003028 .word 0x02003028
+
+[0-9a-f]+ <__bar4_from_arm>:
+ +[0-9a-f]+: e59fc000 ldr ip, \[pc\] ; [0-9a-f]+ <__bar4_from_arm\+0x8>
+ +[0-9a-f]+: e12fff1c bx ip
+ +[0-9a-f]+: 0200302d .word 0x0200302d
+
+[0-9a-f]+ <__bar5_from_arm>:
+ +[0-9a-f]+: e59fc000 ldr ip, \[pc\] ; [0-9a-f]+ <__bar5_from_arm\+0x8>
+ +[0-9a-f]+: e12fff1c bx ip
+ +[0-9a-f]+: 0200302f .word 0x0200302f
...
Disassembly of section .foo:
-02003020 <bar>:
- 2003020: 4770 bx lr
+[0-9a-f]+ <bar>:
+ +[0-9a-f]+: 4770 bx lr
...
-02003024 <bar2>:
- 2003024: e12fff1e bx lr
+[0-9a-f]+ <bar2>:
+ +[0-9a-f]+: e12fff1e bx lr
-02003028 <bar3>:
- 2003028: e12fff1e bx lr
+[0-9a-f]+ <bar3>:
+ +[0-9a-f]+: e12fff1e bx lr
-0200302c <bar4>:
- 200302c: 4770 bx lr
+[0-9a-f]+ <bar4>:
+ +[0-9a-f]+: 4770 bx lr
-0200302e <bar5>:
- 200302e: 4770 bx lr
+[0-9a-f]+ <bar5>:
+ +[0-9a-f]+: 4770 bx lr
diff --git a/ld/testsuite/ld-arm/fix-arm1176-off.d b/ld/testsuite/ld-arm/fix-arm1176-off.d
index c19feed..89f01e2 100644
--- a/ld/testsuite/ld-arm/fix-arm1176-off.d
+++ b/ld/testsuite/ld-arm/fix-arm1176-off.d
@@ -1,17 +1,17 @@
-.*: file format elf32-littlearm
+.*: file format elf32-littlearm.*
Disassembly of section .foo:
[0-9a-f]+ <_start>:
- [0-9a-f]+: f000 e800 blx 2001018 <__func_to_branch_to_veneer>
+ +[0-9a-f]+: f000 e800 blx 2001018 <__func_to_branch_to_veneer>
[0-9a-f]+ <__func_to_branch_to_veneer>:
- [0-9a-f]+: e51ff004 ldr pc, \[pc, #-4\] ; 200101c <__func_to_branch_to_veneer\+0x4>
- [0-9a-f]+: ........ .word 0x........
+ +[0-9a-f]+: e51ff004 ldr pc, \[pc, #-4\] ; 200101c <__func_to_branch_to_veneer\+0x4>
+ +[0-9a-f]+: ........ .word 0x........
Disassembly of section .text:
[0-9a-f]+ <func_to_branch_to>:
- [0-9a-f]+: e12fff1e bx lr
+ +[0-9a-f]+: e12fff1e bx lr
diff --git a/ld/testsuite/ld-arm/fix-arm1176-on.d b/ld/testsuite/ld-arm/fix-arm1176-on.d
index 2df197d..6417a33 100644
--- a/ld/testsuite/ld-arm/fix-arm1176-on.d
+++ b/ld/testsuite/ld-arm/fix-arm1176-on.d
@@ -1,20 +1,20 @@
-.+: file format elf32-littlearm
+.+: file format elf32-littlearm.*
Disassembly of section .foo:
[0-9a-f]+ <_start>:
- [0-9a-f]+: f000 f800 bl 2001018 <__func_to_branch_to_veneer>
+ +[0-9a-f]+: f000 f800 bl 2001018 <__func_to_branch_to_veneer>
[0-9a-f]+ <__func_to_branch_to_veneer>:
- [0-9a-f]+: 4778 bx pc
- [0-9a-f]+: 46c0 nop ; \(mov r8, r8\)
- [0-9a-f]+: e51ff004 ldr pc, \[pc, #-4\] ; 2001020 <__func_to_branch_to_veneer\+0x8>
- [0-9a-f]+: ........ .word 0x........
- [0-9a-f]+: 00000000 .word 0x00000000
+ +[0-9a-f]+: 4778 bx pc
+ +[0-9a-f]+: 46c0 nop ; \(mov r8, r8\)
+ +[0-9a-f]+: e51ff004 ldr pc, \[pc, #-4\] ; 2001020 <__func_to_branch_to_veneer\+0x8>
+ +[0-9a-f]+: ........ .word 0x........
+ +[0-9a-f]+: 00000000 .word 0x00000000
Disassembly of section .text:
[0-9a-f]+ <func_to_branch_to>:
- [0-9a-f]+: e12fff1e bx lr
+ +[0-9a-f]+: e12fff1e bx lr
diff --git a/ld/testsuite/ld-arm/group-relocs.d b/ld/testsuite/ld-arm/group-relocs.d
index e81739d..7d6f102 100644
--- a/ld/testsuite/ld-arm/group-relocs.d
+++ b/ld/testsuite/ld-arm/group-relocs.d
@@ -1,5 +1,5 @@
-tmpdir/group-relocs: file format elf32-(little|big)arm
+tmpdir/group-relocs: file format elf32-(little|big)arm.*
Disassembly of section .text:
diff --git a/ld/testsuite/ld-arm/jump19.d b/ld/testsuite/ld-arm/jump19.d
index 303477f..a631de2 100644
--- a/ld/testsuite/ld-arm/jump19.d
+++ b/ld/testsuite/ld-arm/jump19.d
@@ -1,5 +1,5 @@
-.*jump19: file format elf32-(big|little)arm
+.*jump19: file format elf32-(big|little)arm.*
Disassembly of section .text:
diff --git a/ld/testsuite/ld-arm/reloc-boundaries.d b/ld/testsuite/ld-arm/reloc-boundaries.d
index bcc13d0..4bfaf0a 100644
--- a/ld/testsuite/ld-arm/reloc-boundaries.d
+++ b/ld/testsuite/ld-arm/reloc-boundaries.d
@@ -1,6 +1,6 @@
-[^:]*: file format elf32-(little|big)arm
+[^:]*: file format elf32-(little|big)arm.*
Contents of section .text:
- 80.. 80ff0080 ffff ......
+ [0-9a-f]+ 80ff0080 ffff ......
#...
diff --git a/ld/testsuite/ld-arm/thumb1-bl.d b/ld/testsuite/ld-arm/thumb1-bl.d
index 09d7095..a10db01 100644
--- a/ld/testsuite/ld-arm/thumb1-bl.d
+++ b/ld/testsuite/ld-arm/thumb1-bl.d
@@ -1,5 +1,5 @@
-.*thumb1-bl: file format elf32-.*arm
+.*thumb1-bl: file format elf32-.*arm.*
Disassembly of section .text:
diff --git a/ld/testsuite/ld-arm/thumb2-b-interwork.d b/ld/testsuite/ld-arm/thumb2-b-interwork.d
index 431989c..67cb863 100644
--- a/ld/testsuite/ld-arm/thumb2-b-interwork.d
+++ b/ld/testsuite/ld-arm/thumb2-b-interwork.d
@@ -1,16 +1,16 @@
-.*thumb2-b-interwork: file format elf32-.*arm
+.*thumb2-b-interwork: file format elf32-.*arm.*
Disassembly of section .text:
-00008000 <_start>:
- 8000: f000 b802 b.w 8008 <__bar_from_thumb>
+[0-9a-f]+ <_start>:
+ +[0-9a-f]+: f000 b802 b.w [0-9a-f]+ <__bar_from_thumb>
-00008004 <bar>:
- 8004: e12fff1e bx lr
+[0-9a-f]+ <bar>:
+ +[0-9a-f]+: e12fff1e bx lr
-00008008 <__bar_from_thumb>:
- 8008: 4778 bx pc
- 800a: 46c0 nop ; \(mov r8, r8\)
- 800c: eafffffc b 8004 <bar>
+[0-9a-f]+ <__bar_from_thumb>:
+ +[0-9a-f]+: 4778 bx pc
+ +[0-9a-f]+: 46c0 nop ; \(mov r8, r8\)
+ +[0-9a-f]+: eafffffc b [0-9a-f]+ <bar>
diff --git a/ld/testsuite/ld-arm/thumb2-bl-undefweak.d b/ld/testsuite/ld-arm/thumb2-bl-undefweak.d
index 32f7cc1..5c286bee9 100644
--- a/ld/testsuite/ld-arm/thumb2-bl-undefweak.d
+++ b/ld/testsuite/ld-arm/thumb2-bl-undefweak.d
@@ -6,4 +6,4 @@
Disassembly of section .text:
.* <foo>:
- .*: .... .... bl. ... <foo-0x.*>
+ +[0-9a-f]+: .... .... bl. [0-9a-f]+ <foo-0x[0-9a-f]+>
diff --git a/ld/testsuite/ld-arm/thumb2-bl-undefweak1.d b/ld/testsuite/ld-arm/thumb2-bl-undefweak1.d
index 929d180..a6907f5 100644
--- a/ld/testsuite/ld-arm/thumb2-bl-undefweak1.d
+++ b/ld/testsuite/ld-arm/thumb2-bl-undefweak1.d
@@ -6,4 +6,4 @@
Disassembly of section .text:
.* <foo>:
- .*: ........ bl ... <foo-0x.*>
+ +[0-9a-f]+: ........ bl [0-9a-f]+ <foo-0x[0-9a-f]+>
diff --git a/ld/testsuite/ld-arm/thumb2-bl.d b/ld/testsuite/ld-arm/thumb2-bl.d
index bdfb9b7..298a044 100644
--- a/ld/testsuite/ld-arm/thumb2-bl.d
+++ b/ld/testsuite/ld-arm/thumb2-bl.d
@@ -1,5 +1,5 @@
-.*thumb2-bl: file format elf32-.*arm
+.*thumb2-bl: file format elf32-.*arm.*
Disassembly of section .text:
diff --git a/ld/testsuite/ld-arm/tls-app.d b/ld/testsuite/ld-arm/tls-app.d
index 7d2a709..f85d443 100644
--- a/ld/testsuite/ld-arm/tls-app.d
+++ b/ld/testsuite/ld-arm/tls-app.d
@@ -1,5 +1,5 @@
-.*: file format elf32-.*arm
+.*: file format elf32-.*arm.*
architecture: arm, flags 0x00000112:
EXEC_P, HAS_SYMS, D_PAGED
start address 0x000081c8
diff --git a/ld/testsuite/ld-arm/tls-app.r b/ld/testsuite/ld-arm/tls-app.r
index af6c2d7..b156d52 100644
--- a/ld/testsuite/ld-arm/tls-app.r
+++ b/ld/testsuite/ld-arm/tls-app.r
@@ -1,5 +1,5 @@
-.*: file format elf32-.*arm
+.*: file format elf32-.*arm.*
DYNAMIC RELOCATION RECORDS
OFFSET TYPE VALUE
diff --git a/ld/testsuite/ld-arm/tls-gdesc-got.d b/ld/testsuite/ld-arm/tls-gdesc-got.d
index 3b4a83b..ab65936 100644
--- a/ld/testsuite/ld-arm/tls-gdesc-got.d
+++ b/ld/testsuite/ld-arm/tls-gdesc-got.d
@@ -1,30 +1,30 @@
-.*/tls-lib2-got.so: file format elf32-.*arm
+.*/tls-lib2-got.so: file format elf32-.*arm.*
architecture: arm, flags 0x00000150:
HAS_SYMS, DYNAMIC, D_PAGED
-start address 0x00008210
+start address 0x000082.0
Disassembly of section .got:
-00010310 <.*>:
- 10310: 00010288 .*
+000103.0 <.*>:
+ 103.0: 000102.8 .*
...
- 1031c: 00000008 .*
- 1031c: R_ARM_TLS_DESC \*ABS\*
- 10320: 00000000 .*
- 10324: 0000000c .*
- 10324: R_ARM_TLS_DESC \*ABS\*
- 10328: 00000000 .*
- 1032c: 80000004 .*
- 1032c: R_ARM_TLS_DESC glob1
- 10330: 00000000 .*
- 10334: 80000006 .*
- 10334: R_ARM_TLS_DESC ext2
- 10338: 00000000 .*
- 1033c: 80000007 .*
- 1033c: R_ARM_TLS_DESC ext1
- 10340: 00000000 .*
- 10344: 80000009 .*
- 10344: R_ARM_TLS_DESC glob2
+ 103.c: 00000008 .*
+ 103.c: R_ARM_TLS_DESC \*ABS\*
+ 103.0: 00000000 .*
+ 103.4: 0000000c .*
+ 103.4: R_ARM_TLS_DESC \*ABS\*
+ 103.8: 00000000 .*
+ 103.c: 80000004 .*
+ 103.c: R_ARM_TLS_DESC glob1
+ 103.0: 00000000 .*
+ 103.4: 80000006 .*
+ 103.4: R_ARM_TLS_DESC ext2
+ 103.8: 00000000 .*
+ 103.c: 80000007 .*
+ 103.c: R_ARM_TLS_DESC ext1
+ 103.0: 00000000 .*
+ 103.4: 80000009 .*
+ 103.4: R_ARM_TLS_DESC glob2
...
diff --git a/ld/testsuite/ld-arm/tls-gdierelax.d b/ld/testsuite/ld-arm/tls-gdierelax.d
index 8d965fc..36d22f7 100644
--- a/ld/testsuite/ld-arm/tls-gdierelax.d
+++ b/ld/testsuite/ld-arm/tls-gdierelax.d
@@ -1,5 +1,5 @@
-tmpdir/tls-app-rel-ie: file format elf32-.*arm
+tmpdir/tls-app-rel-ie: file format elf32-.*arm.*
architecture: arm, flags 0x[0-9a-f]+:
EXEC_P, HAS_SYMS, D_PAGED
start address 0x[0-9a-f]+
diff --git a/ld/testsuite/ld-arm/tls-gdierelax2.d b/ld/testsuite/ld-arm/tls-gdierelax2.d
index 055aad8..e9a91dc 100644
--- a/ld/testsuite/ld-arm/tls-gdierelax2.d
+++ b/ld/testsuite/ld-arm/tls-gdierelax2.d
@@ -1,5 +1,5 @@
-tmpdir/tls-app-rel-ie2: file format elf32-.*arm
+tmpdir/tls-app-rel-ie2: file format elf32-.*arm.*
architecture: arm, flags 0x[0-9a-f]+:
HAS_SYMS, DYNAMIC, D_PAGED
start address 0x[0-9a-f]+
diff --git a/ld/testsuite/ld-arm/tls-gdlerelax.d b/ld/testsuite/ld-arm/tls-gdlerelax.d
index 896aed7..3499f69 100644
--- a/ld/testsuite/ld-arm/tls-gdlerelax.d
+++ b/ld/testsuite/ld-arm/tls-gdlerelax.d
@@ -1,5 +1,5 @@
-tmpdir/tls-app-rel-le: file format elf32-.*arm
+tmpdir/tls-app-rel-le: file format elf32-.*arm.*
architecture: arm, flags 0x[0-9a-f]+:
EXEC_P, HAS_SYMS, D_PAGED
start address 0x[0-9a-f]+
diff --git a/ld/testsuite/ld-arm/tls-lib.d b/ld/testsuite/ld-arm/tls-lib.d
index 4580ead..8e99e9c 100644
--- a/ld/testsuite/ld-arm/tls-lib.d
+++ b/ld/testsuite/ld-arm/tls-lib.d
@@ -1,5 +1,5 @@
-.*: file format elf32-.*arm
+.*: file format elf32-.*arm.*
architecture: arm, flags 0x00000150:
HAS_SYMS, DYNAMIC, D_PAGED
start address 0x.*
diff --git a/ld/testsuite/ld-arm/tls-lib.r b/ld/testsuite/ld-arm/tls-lib.r
index 279b805..3847f77 100644
--- a/ld/testsuite/ld-arm/tls-lib.r
+++ b/ld/testsuite/ld-arm/tls-lib.r
@@ -1,5 +1,5 @@
-.*: file format elf32-.*arm
+.*: file format elf32-.*arm.*
DYNAMIC RELOCATION RECORDS
OFFSET TYPE VALUE
diff --git a/ld/testsuite/ld-arm/tls-mixed.r b/ld/testsuite/ld-arm/tls-mixed.r
index 79ccdeb..02f9b02 100644
--- a/ld/testsuite/ld-arm/tls-mixed.r
+++ b/ld/testsuite/ld-arm/tls-mixed.r
@@ -1,5 +1,5 @@
-.*: file format elf32-.*arm
+.*: file format elf32-.*arm.*
DYNAMIC RELOCATION RECORDS
OFFSET TYPE VALUE
diff --git a/ld/testsuite/ld-arm/vfp11-fix-none.d b/ld/testsuite/ld-arm/vfp11-fix-none.d
index 64a67ae..e1be0e0 100644
--- a/ld/testsuite/ld-arm/vfp11-fix-none.d
+++ b/ld/testsuite/ld-arm/vfp11-fix-none.d
@@ -1,5 +1,5 @@
-.*: .*file format elf32-(big|little)arm
+.*: .*file format elf32-(big|little)arm.*
Disassembly of section \.text:
diff --git a/ld/testsuite/ld-arm/vfp11-fix-scalar.d b/ld/testsuite/ld-arm/vfp11-fix-scalar.d
index 5095137..a817af8 100644
--- a/ld/testsuite/ld-arm/vfp11-fix-scalar.d
+++ b/ld/testsuite/ld-arm/vfp11-fix-scalar.d
@@ -1,5 +1,5 @@
-.*: .*file format elf32-(big|little)arm
+.*: .*file format elf32-(big|little)arm.*
Disassembly of section \.text:
diff --git a/ld/testsuite/ld-arm/vfp11-fix-vector.d b/ld/testsuite/ld-arm/vfp11-fix-vector.d
index 15c080a..b19645e 100644
--- a/ld/testsuite/ld-arm/vfp11-fix-vector.d
+++ b/ld/testsuite/ld-arm/vfp11-fix-vector.d
@@ -1,5 +1,5 @@
-.*: .*file format elf32-(big|little)arm
+.*: .*file format elf32-(big|little)arm.*
Disassembly of section \.text: