diff options
author | Nick Clifton <nickc@redhat.com> | 2012-04-12 13:01:15 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2012-04-12 13:01:15 +0000 |
commit | b38cadfb70dbcbe3f1b31f53e96f0ab9a72e394b (patch) | |
tree | e2e35eabac046b7d547d736256c15076ea8d1875 /ld | |
parent | c9a1864ab2c53c0a4b7454a67db515631610fd72 (diff) | |
download | binutils-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')
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: |