This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[PATCH] BFD and GAS support for arm-nacl target
- From: Roland McGrath <mcgrathr at google dot com>
- To: binutils at sourceware dot org
- Cc: David Sehr <sehr at google dot com>
- Date: Fri, 16 Mar 2012 15:42:47 -0700
- Subject: [PATCH] BFD and GAS support for arm-nacl target
This adds support for the arm-nacl target flavor to BFD and GAS. It
passes 'make -C gas check'. Full linker support still remains to be
implemented, but the BFD parts for linking are there, including PLT
generation for arm idiosyncratic ABI. I used local hacks (not in this
patch) to get a linker built and test that a PLT comes out as intended
for both elf32 and elf64 variants.
Ok for trunk?
Thanks,
Roland
bfd/
2012-03-16 Roland McGrath <mcgrathr@google.com>
* 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.
* config.bfd: Handle arm-*-nacl*, armeb-*-nacl*.
* targets.c: Support bfd_elf32_{big,little}_nacl_vec.
* configure.in: Likewise.
* configure: Regenerated.
gas/
2012-03-16 Roland McGrath <mcgrathr@google.com>
* 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/testsuite/
2012-03-16 Roland McGrath <mcgrathr@google.com>
* 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.
diff --git a/bfd/config.bfd b/bfd/config.bfd
index 2cf89ed..1ede6d8 100644
--- a/bfd/config.bfd
+++ b/bfd/config.bfd
@@ -216,6 +216,16 @@ case "${targ}" in
targ_selvecs=bfd_elf32_bigarc_vec
;;
+ arm-*-nacl*)
+ targ_defvec=bfd_elf32_littlearm_nacl_vec
+ targ_selvecs="bfd_elf32_i386_vec bfd_elf32_bigarm_nacl_vec bfd_elf32_littlearm_nacl_vec"
+ targ_archs="$targ_archs bfd_arm_arch bfd_i386_arch"
+ ;;
+ armeb-*-nacl*)
+ targ_defvec=bfd_elf32_bigarm_nacl_vec
+ targ_selvecs="bfd_elf32_i386_vec bfd_elf32_bigarm_nacl_vec bfd_elf32_littlearm_nacl_vec"
+ targ_archs="$targ_archs bfd_arm_arch bfd_i386_arch"
+ ;;
armeb-*-netbsdelf*)
targ_defvec=bfd_elf32_bigarm_vec
targ_selvecs="bfd_elf32_littlearm_vec armnetbsd_vec"
@@ -573,7 +583,8 @@ case "${targ}" in
;;
i[3-7]86-*-nacl*)
targ_defvec=bfd_elf32_i386_nacl_vec
- targ_selvecs="bfd_elf32_i386_vec"
+ targ_selvecs="bfd_elf32_i386_vec bfd_elf32_bigarm_nacl_vec bfd_elf32_littlearm_nacl_vec"
+ targ_archs="$targ_archs bfd_arm_arch bfd_i386_arch"
;;
#ifdef BFD64
x86_64-*-darwin*)
diff --git a/bfd/configure b/bfd/configure
index dc2a63c..6ced7e4 100755
--- a/bfd/configure
+++ b/bfd/configure
@@ -15185,6 +15185,7 @@ do
bfd_elf32_big_generic_vec) tb="$tb elf32-gen.lo elf32.lo $elf" ;;
bfd_elf32_bigarc_vec) tb="$tb elf32-arc.lo elf32.lo $elf" ;;
bfd_elf32_bigarm_vec) tb="$tb elf32-arm.lo elf32.lo elf-vxworks.lo $elf" ;;
+ bfd_elf32_bigarm_nacl_vec) tb="$tb elf32-arm.lo elf32.lo elf-vxworks.lo $elf" ;;
bfd_elf32_bigarm_symbian_vec)
tb="$tb elf32-arm.lo elf32.lo elf-vxworks.lo $elf" ;;
bfd_elf32_bigarm_vxworks_vec)
@@ -15230,6 +15231,7 @@ do
bfd_elf32_littlearm_vxworks_vec)
tb="$tb elf32-arm.lo elf32.lo elf-vxworks.lo $elf" ;;
bfd_elf32_littlearm_vec) tb="$tb elf32-arm.lo elf32.lo elf-vxworks.lo $elf" ;;
+ bfd_elf32_littlearm_nacl_vec) tb="$tb elf32-arm.lo elf32.lo elf-vxworks.lo $elf" ;;
bfd_elf32_littlemips_vec) tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
bfd_elf32_littlemips_vxworks_vec)
tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
diff --git a/bfd/configure.in b/bfd/configure.in
index d6f3fe3..0ebef49 100644
--- a/bfd/configure.in
+++ b/bfd/configure.in
@@ -684,6 +684,7 @@ do
bfd_elf32_big_generic_vec) tb="$tb elf32-gen.lo elf32.lo $elf" ;;
bfd_elf32_bigarc_vec) tb="$tb elf32-arc.lo elf32.lo $elf" ;;
bfd_elf32_bigarm_vec) tb="$tb elf32-arm.lo elf32.lo elf-vxworks.lo $elf" ;;
+ bfd_elf32_bigarm_nacl_vec) tb="$tb elf32-arm.lo elf32.lo elf-vxworks.lo $elf" ;;
bfd_elf32_bigarm_symbian_vec)
tb="$tb elf32-arm.lo elf32.lo elf-vxworks.lo $elf" ;;
bfd_elf32_bigarm_vxworks_vec)
@@ -729,6 +730,7 @@ do
bfd_elf32_littlearm_vxworks_vec)
tb="$tb elf32-arm.lo elf32.lo elf-vxworks.lo $elf" ;;
bfd_elf32_littlearm_vec) tb="$tb elf32-arm.lo elf32.lo elf-vxworks.lo $elf" ;;
+ bfd_elf32_littlearm_nacl_vec) tb="$tb elf32-arm.lo elf32.lo elf-vxworks.lo $elf" ;;
bfd_elf32_littlemips_vec) tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
bfd_elf32_littlemips_vxworks_vec)
tb="$tb elf32-mips.lo elfxx-mips.lo elf-vxworks.lo elf32.lo $elf ecofflink.lo" ;;
diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
index 8721f94..e39c870 100644
--- a/bfd/elf32-arm.c
+++ b/bfd/elf32-arm.c
@@ -2195,6 +2195,45 @@ static const bfd_vma elf32_arm_symbian_plt_entry [] =
0x00000000, /* dcd R_ARM_GLOB_DAT(X) */
};
+/* The first entry in a procedure linkage table looks like
+ this. It is set up so that any shared library function that is
+ called before the relocation has been set up calls the dynamic
+ linker first. */
+static const bfd_vma elf32_arm_nacl_plt0_entry [] =
+ {
+ /* First bundle: */
+ 0xe300c000, /* movw ip, #:lower16:&GOT[2]-.+8 */
+ 0xe340c000, /* movt ip, #:upper16:&GOT[2]-.+8 */
+ 0xe08cc00f, /* add ip, ip, pc */
+ 0xe52dc008, /* str ip, [sp, #-8]! */
+ /* Second bundle: */
+ 0xe7dfcf1f, /* bfc ip, #30, #2 */
+ 0xe59cc000, /* ldr ip, [ip] */
+ 0xe3ccc13f, /* bic ip, ip, #0xc000000f */
+ 0xe12fff1c, /* bx ip */
+ /* Third bundle: */
+ 0xe320f000, /* nop */
+ 0xe320f000, /* nop */
+ 0xe320f000, /* nop */
+ /* .Lplt_tail: */
+ 0xe50dc004, /* str ip, [sp, #-4] */
+ /* Fourth bundle: */
+ 0xe7dfcf1f, /* bfc ip, #30, #2 */
+ 0xe59cc000, /* ldr ip, [ip] */
+ 0xe3ccc13f, /* bic ip, ip, #0xc000000f */
+ 0xe12fff1c, /* bx ip */
+ };
+#define ARM_NACL_PLT_TAIL_OFFSET (11 * 4)
+
+/* Subsequent entries in a procedure linkage table look like this. */
+static const bfd_vma elf32_arm_nacl_plt_entry [] =
+ {
+ 0xe300c000, /* movw ip, #:lower16:&GOT[n]-.+8 */
+ 0xe340c000, /* movt ip, #:upper16:&GOT[n]-.+8 */
+ 0xe08cc00f, /* add ip, ip, pc */
+ 0xea000000, /* b .Lplt_tail */
+ };
+
#define ARM_MAX_FWD_BRANCH_OFFSET ((((1 << 23) - 1) << 2) + 8)
#define ARM_MAX_BWD_BRANCH_OFFSET ((-((1 << 23) << 2)) + 8)
#define THM_MAX_FWD_BRANCH_OFFSET ((1 << 22) -2 + 4)
@@ -2878,6 +2917,9 @@ struct elf32_arm_link_hash_table
/* True if the target system is Symbian OS. */
int symbian_p;
+ /* True if the target system is Native Client. */
+ int nacl_p;
+
/* True if the target uses REL relocations. */
int use_rel;
@@ -3408,6 +3450,7 @@ elf32_arm_link_hash_table_create (bfd *abfd)
ret->use_blx = 0;
ret->vxworks_p = 0;
ret->symbian_p = 0;
+ ret->nacl_p = 0;
ret->use_rel = 1;
ret->sym_cache.abfd = NULL;
ret->obfd = abfd;
@@ -7403,6 +7446,18 @@ elf32_arm_allocate_plt_entry (struct bfd_link_info *info,
}
}
+static bfd_vma
+arm_movw_immediate (bfd_vma value)
+{
+ return (value & 0x00000fff) | ((value & 0x0000f000) << 4);
+}
+
+static bfd_vma
+arm_movt_immediate (bfd_vma value)
+{
+ return ((value & 0x0fff0000) >> 16) | ((value & 0xf0000000) >> 12);
+}
+
/* Fill in a PLT entry and its associated GOT slot. If DYNINDX == -1,
the entry lives in .iplt and resolves to (*SYM_VALUE)().
Otherwise, DYNINDX is the index of the symbol in the dynamic
@@ -7563,6 +7618,43 @@ elf32_arm_populate_plt_entry (bfd *output_bfd, struct bfd_link_info *info,
rel.r_addend = 0;
SWAP_RELOC_OUT (htab) (output_bfd, &rel, loc);
}
+ else if (htab->nacl_p)
+ {
+ /* Calculate the displacement between the PLT slot and the
+ common tail that's part of the special initial PLT slot. */
+ bfd_vma tail_displacement
+ = ((splt->output_section->vma + splt->output_offset
+ + ARM_NACL_PLT_TAIL_OFFSET)
+ - (plt_address + htab->plt_entry_size + 4));
+ BFD_ASSERT ((tail_displacement & 3) == 0);
+ tail_displacement >>= 2;
+
+ BFD_ASSERT ((-tail_displacement & 0xff000000) == 0);
+
+ /* Calculate the displacement between the PLT slot and the entry
+ in the GOT. The offset accounts for the value produced by
+ adding to pc in the penultimate instruction of the PLT stub. */
+ got_displacement = got_address - (plt_address + htab->plt_entry_size);
+
+ /* NaCl does not support interworking at all. */
+ BFD_ASSERT (!elf32_arm_plt_needs_thumb_stub_p (info, arm_plt));
+
+ put_arm_insn (htab, output_bfd,
+ elf32_arm_nacl_plt_entry[0]
+ | arm_movw_immediate (got_displacement),
+ ptr + 0);
+ put_arm_insn (htab, output_bfd,
+ elf32_arm_nacl_plt_entry[1]
+ | arm_movt_immediate (got_displacement),
+ ptr + 4);
+ put_arm_insn (htab, output_bfd,
+ elf32_arm_nacl_plt_entry[2],
+ ptr + 8);
+ put_arm_insn (htab, output_bfd,
+ elf32_arm_nacl_plt_entry[3]
+ | (tail_displacement & 0x00ffffff),
+ ptr + 12);
+ }
else
{
/* Calculate the displacement between the PLT slot and the
@@ -14082,6 +14174,25 @@ elf32_arm_finish_dynamic_sections (bfd * output_bfd, struct bfd_link_info * info
SWAP_RELOC_OUT (htab) (output_bfd, &rel,
htab->srelplt2->contents);
}
+ else if (htab->nacl_p)
+ {
+ unsigned int i;
+
+ got_displacement = got_address + 8 - (plt_address + 16);
+
+ put_arm_insn (htab, output_bfd,
+ elf32_arm_nacl_plt0_entry[0]
+ | arm_movw_immediate (got_displacement),
+ splt->contents + 0);
+ put_arm_insn (htab, output_bfd,
+ elf32_arm_nacl_plt0_entry[1]
+ | arm_movt_immediate (got_displacement),
+ splt->contents + 4);
+ for (i = 2; i < ARRAY_SIZE (elf32_arm_nacl_plt0_entry); ++i)
+ put_arm_insn (htab, output_bfd,
+ elf32_arm_nacl_plt0_entry[i],
+ splt->contents + (i * 4));
+ }
else
{
got_displacement = got_address - (plt_address + 16);
@@ -14399,6 +14510,11 @@ elf32_arm_output_plt_map_1 (output_arch_syminfo *osi,
if (!elf32_arm_output_map_sym (osi, ARM_MAP_DATA, addr + 20))
return FALSE;
}
+ else if (htab->nacl_p)
+ {
+ if (!elf32_arm_output_map_sym (osi, ARM_MAP_ARM, addr))
+ return FALSE;
+ }
else
{
bfd_boolean thumb_stub_p;
@@ -14725,6 +14841,11 @@ elf32_arm_output_arch_local_syms (bfd *output_bfd,
return FALSE;
}
}
+ else if (htab->nacl_p)
+ {
+ if (!elf32_arm_output_map_sym (&osi, ARM_MAP_ARM, 0))
+ return FALSE;
+ }
else if (!htab->symbian_p)
{
if (!elf32_arm_output_map_sym (&osi, ARM_MAP_ARM, 0))
@@ -15494,6 +15615,57 @@ const struct elf_size_info elf32_arm_size_info =
#include "elf32-target.h"
+/* Native Client targets. */
+
+#undef TARGET_LITTLE_SYM
+#define TARGET_LITTLE_SYM bfd_elf32_littlearm_nacl_vec
+#undef TARGET_LITTLE_NAME
+#define TARGET_LITTLE_NAME "elf32-littlearm-nacl"
+#undef TARGET_BIG_SYM
+#define TARGET_BIG_SYM bfd_elf32_bigarm_nacl_vec
+#undef TARGET_BIG_NAME
+#define TARGET_BIG_NAME "elf32-bigarm-nacl"
+
+/* Like elf32_arm_link_hash_table_create -- but overrides
+ appropriately for NaCl. */
+static struct bfd_link_hash_table *
+elf32_arm_nacl_link_hash_table_create (bfd *abfd)
+{
+ struct bfd_link_hash_table *ret;
+
+ ret = elf32_arm_link_hash_table_create (abfd);
+ if (ret)
+ {
+ struct elf32_arm_link_hash_table *htab
+ = (struct elf32_arm_link_hash_table *) ret;
+
+ htab->nacl_p = 1;
+
+ /* NaCl uses armv7 or above, so use_blx is always true. */
+ htab->use_blx = 1;
+
+ htab->plt_header_size = 4 * ARRAY_SIZE (elf32_arm_nacl_plt0_entry);
+ htab->plt_entry_size = 4 * ARRAY_SIZE (elf32_arm_nacl_plt_entry);
+ }
+ return ret;
+}
+
+#undef elf32_bed
+#define elf32_bed elf32_arm_nacl_bed
+#undef bfd_elf32_bfd_link_hash_table_create
+#define bfd_elf32_bfd_link_hash_table_create \
+ elf32_arm_nacl_link_hash_table_create
+#undef elf_backend_plt_alignment
+#define elf_backend_plt_alignment 4
+
+#undef ELF_MAXPAGESIZE
+#define ELF_MAXPAGESIZE 0x10000
+
+#include "elf32-target.h"
+
+/* Reset to default. */
+#undef elf_backend_plt_alignment
+
/* VxWorks Targets. */
#undef TARGET_LITTLE_SYM
diff --git a/bfd/targets.c b/bfd/targets.c
index e5d08af..614171f 100644
--- a/bfd/targets.c
+++ b/bfd/targets.c
@@ -1,6 +1,6 @@
/* Generic target-file-type support for the BFD library.
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
+ 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
Free Software Foundation, Inc.
Written by Cygnus Support.
@@ -596,6 +596,7 @@ extern const bfd_target bfd_elf32_bfinfdpic_vec;
extern const bfd_target bfd_elf32_big_generic_vec;
extern const bfd_target bfd_elf32_bigarc_vec;
extern const bfd_target bfd_elf32_bigarm_vec;
+extern const bfd_target bfd_elf32_bigarm_nacl_vec;
extern const bfd_target bfd_elf32_bigarm_symbian_vec;
extern const bfd_target bfd_elf32_bigarm_vxworks_vec;
extern const bfd_target bfd_elf32_bigmips_vec;
@@ -634,6 +635,7 @@ extern const bfd_target bfd_elf32_lm32fdpic_vec;
extern const bfd_target bfd_elf32_little_generic_vec;
extern const bfd_target bfd_elf32_littlearc_vec;
extern const bfd_target bfd_elf32_littlearm_vec;
+extern const bfd_target bfd_elf32_littlearm_nacl_vec;
extern const bfd_target bfd_elf32_littlearm_symbian_vec;
extern const bfd_target bfd_elf32_littlearm_vxworks_vec;
extern const bfd_target bfd_elf32_littlemips_vec;
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 1238255..a771d4e 100644
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
index 8b0f6da..73b6e3d 100644
--- a/gas/config/tc-arm.c
+++ b/gas/config/tc-arm.c
@@ -22231,6 +22231,10 @@ elf32_arm_target_format (void)
return (target_big_endian
? "elf32-bigarm-vxworks"
: "elf32-littlearm-vxworks");
+#elif defined (TE_NACL)
+ return (target_big_endian
+ ? "elf32-bigarm-nacl"
+ : "elf32-littlearm-nacl");
#else
if (target_big_endian)
return "elf32-bigarm";
diff --git a/gas/config/te-nacl.h b/gas/config/te-nacl.h
index 6550756..d64a44d 100644
--- a/gas/config/te-nacl.h
+++ b/gas/config/te-nacl.h
@@ -18,6 +18,13 @@
02110-1301, USA. */
#define TE_NACL
+
+#define LOCAL_LABELS_DOLLAR 1
#define LOCAL_LABELS_FB 1
+/* These are for ARM but don't hurt other CPU targets.
+ They match the settings from te-armeabi.h; NaCl/ARM is based on EABI. */
+#define FPU_DEFAULT FPU_ARCH_VFP
+#define EABI_DEFAULT EF_ARM_EABI_VER5
+
#include "obj-format.h"
diff --git a/gas/configure.tgt b/gas/configure.tgt
index 06fb6ca..367e2b7 100644
--- a/gas/configure.tgt
+++ b/gas/configure.tgt
@@ -117,6 +117,7 @@ case ${generic_target} in
arm-*-linux-*) fmt=elf em=linux ;;
arm-*-uclinux*eabi*) fmt=elf em=armlinuxeabi ;;
arm-*-uclinux*) fmt=elf em=linux ;;
+ arm-*-nacl*) fmt=elf em=nacl ;;
arm-*-netbsdelf*) fmt=elf em=nbsd ;;
arm-*-*n*bsd*) fmt=aout em=nbsd ;;
arm-*-nto*) fmt=elf ;;
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index 7ac59cd..9f84ff6 100644
diff --git a/gas/testsuite/gas/arm/any-idiv.d b/gas/testsuite/gas/arm/any-idiv.d
index 05a89dd..853dde7 100644
--- a/gas/testsuite/gas/arm/any-idiv.d
+++ b/gas/testsuite/gas/arm/any-idiv.d
@@ -2,7 +2,7 @@
# as:
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/arch4t-eabi.d b/gas/testsuite/gas/arm/arch4t-eabi.d
index afd92f7..4289d60 100644
--- a/gas/testsuite/gas/arm/arch4t-eabi.d
+++ b/gas/testsuite/gas/arm/arch4t-eabi.d
@@ -2,7 +2,7 @@
# as: -march=armv4t
# objdump: -dr --prefix-addresses --show-raw-insn
# source: arch4t.s
-# target: *-*-*eabi *-*-symbianelf
+# target: *-*-*eabi *-*-symbianelf *-*-nacl*
.*: +file format .*arm.*
diff --git a/gas/testsuite/gas/arm/arch4t.d b/gas/testsuite/gas/arm/arch4t.d
index 6655852..1f8c320 100644
--- a/gas/testsuite/gas/arm/arch4t.d
+++ b/gas/testsuite/gas/arm/arch4t.d
@@ -2,7 +2,7 @@
# as: -march=armv4t
# objdump: -dr --prefix-addresses --show-raw-insn
# EABI targets have their own variant.
-# not-target: *-*-*eabi *-*-symbianelf
+# not-target: *-*-*eabi *-*-symbianelf *-*-nacl*
.*: +file format .*arm.*
diff --git a/gas/testsuite/gas/arm/attr-any-armv4t.d b/gas/testsuite/gas/arm/attr-any-armv4t.d
index 21e28df..ba0188e 100644
--- a/gas/testsuite/gas/arm/attr-any-armv4t.d
+++ b/gas/testsuite/gas/arm/attr-any-armv4t.d
@@ -3,7 +3,7 @@
# as:
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-any-thumbv6.d b/gas/testsuite/gas/arm/attr-any-thumbv6.d
index d2b4276..c5aad0a 100644
--- a/gas/testsuite/gas/arm/attr-any-thumbv6.d
+++ b/gas/testsuite/gas/arm/attr-any-thumbv6.d
@@ -3,7 +3,7 @@
# as:
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-cpu-directive.d b/gas/testsuite/gas/arm/attr-cpu-directive.d
index f3c1081..a961866 100644
--- a/gas/testsuite/gas/arm/attr-cpu-directive.d
+++ b/gas/testsuite/gas/arm/attr-cpu-directive.d
@@ -3,7 +3,7 @@
# as:
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-default.d b/gas/testsuite/gas/arm/attr-default.d
index 4439180..53085af 100644
--- a/gas/testsuite/gas/arm/attr-default.d
+++ b/gas/testsuite/gas/arm/attr-default.d
@@ -3,7 +3,7 @@
# as:
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-march-all.d b/gas/testsuite/gas/arm/attr-march-all.d
index e56f317..ed4d652 100644
--- a/gas/testsuite/gas/arm/attr-march-all.d
+++ b/gas/testsuite/gas/arm/attr-march-all.d
@@ -3,7 +3,7 @@
# as: -march=all
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-march-armv1.d b/gas/testsuite/gas/arm/attr-march-armv1.d
index 4867087..af97828 100644
--- a/gas/testsuite/gas/arm/attr-march-armv1.d
+++ b/gas/testsuite/gas/arm/attr-march-armv1.d
@@ -3,7 +3,7 @@
# as: -march=armv1
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-march-armv2.d b/gas/testsuite/gas/arm/attr-march-armv2.d
index 352e38f..e470058 100644
--- a/gas/testsuite/gas/arm/attr-march-armv2.d
+++ b/gas/testsuite/gas/arm/attr-march-armv2.d
@@ -3,7 +3,7 @@
# as: -march=armv2
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-march-armv2a.d b/gas/testsuite/gas/arm/attr-march-armv2a.d
index 956f6fd..80f79a7 100644
--- a/gas/testsuite/gas/arm/attr-march-armv2a.d
+++ b/gas/testsuite/gas/arm/attr-march-armv2a.d
@@ -3,7 +3,7 @@
# as: -march=armv2a
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-march-armv2s.d b/gas/testsuite/gas/arm/attr-march-armv2s.d
index 67ba746..63869a2 100644
--- a/gas/testsuite/gas/arm/attr-march-armv2s.d
+++ b/gas/testsuite/gas/arm/attr-march-armv2s.d
@@ -3,7 +3,7 @@
# as: -march=armv2s
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-march-armv3.d b/gas/testsuite/gas/arm/attr-march-armv3.d
index e3b606c..ff519a3 100644
--- a/gas/testsuite/gas/arm/attr-march-armv3.d
+++ b/gas/testsuite/gas/arm/attr-march-armv3.d
@@ -3,7 +3,7 @@
# as: -march=armv3
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-march-armv3m.d b/gas/testsuite/gas/arm/attr-march-armv3m.d
index b3878cd..2e4478e 100644
--- a/gas/testsuite/gas/arm/attr-march-armv3m.d
+++ b/gas/testsuite/gas/arm/attr-march-armv3m.d
@@ -3,7 +3,7 @@
# as: -march=armv3m
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-march-armv4.d b/gas/testsuite/gas/arm/attr-march-armv4.d
index c0c3b92..e6383ba 100644
--- a/gas/testsuite/gas/arm/attr-march-armv4.d
+++ b/gas/testsuite/gas/arm/attr-march-armv4.d
@@ -3,7 +3,7 @@
# as: -march=armv4
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-march-armv4t.d b/gas/testsuite/gas/arm/attr-march-armv4t.d
index c2a5d98..5584d09 100644
--- a/gas/testsuite/gas/arm/attr-march-armv4t.d
+++ b/gas/testsuite/gas/arm/attr-march-armv4t.d
@@ -3,7 +3,7 @@
# as: -march=armv4t
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-march-armv4txm.d b/gas/testsuite/gas/arm/attr-march-armv4txm.d
index 2b29db5..b1029fd 100644
--- a/gas/testsuite/gas/arm/attr-march-armv4txm.d
+++ b/gas/testsuite/gas/arm/attr-march-armv4txm.d
@@ -3,7 +3,7 @@
# as: -march=armv4txm
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-march-armv4xm.d b/gas/testsuite/gas/arm/attr-march-armv4xm.d
index b196601..732b03a 100644
--- a/gas/testsuite/gas/arm/attr-march-armv4xm.d
+++ b/gas/testsuite/gas/arm/attr-march-armv4xm.d
@@ -3,7 +3,7 @@
# as: -march=armv4xm
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-march-armv5.d b/gas/testsuite/gas/arm/attr-march-armv5.d
index 2ed81c9..673500e 100644
--- a/gas/testsuite/gas/arm/attr-march-armv5.d
+++ b/gas/testsuite/gas/arm/attr-march-armv5.d
@@ -3,7 +3,7 @@
# as: -march=armv5
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-march-armv5t.d b/gas/testsuite/gas/arm/attr-march-armv5t.d
index 23e1324..81afa5e 100644
--- a/gas/testsuite/gas/arm/attr-march-armv5t.d
+++ b/gas/testsuite/gas/arm/attr-march-armv5t.d
@@ -3,7 +3,7 @@
# as: -march=armv5t
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-march-armv5te.d b/gas/testsuite/gas/arm/attr-march-armv5te.d
index 2569995..cf7a965 100644
--- a/gas/testsuite/gas/arm/attr-march-armv5te.d
+++ b/gas/testsuite/gas/arm/attr-march-armv5te.d
@@ -3,7 +3,7 @@
# as: -march=armv5te
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-march-armv5tej.d b/gas/testsuite/gas/arm/attr-march-armv5tej.d
index 780a9f9..e8cbbb8 100644
--- a/gas/testsuite/gas/arm/attr-march-armv5tej.d
+++ b/gas/testsuite/gas/arm/attr-march-armv5tej.d
@@ -3,7 +3,7 @@
# as: -march=armv5tej
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-march-armv5texp.d b/gas/testsuite/gas/arm/attr-march-armv5texp.d
index 4f3a75f..d5edf24 100644
--- a/gas/testsuite/gas/arm/attr-march-armv5texp.d
+++ b/gas/testsuite/gas/arm/attr-march-armv5texp.d
@@ -3,7 +3,7 @@
# as: -march=armv5texp
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-march-armv5txm.d b/gas/testsuite/gas/arm/attr-march-armv5txm.d
index e78ca3f..a4b2dde 100644
--- a/gas/testsuite/gas/arm/attr-march-armv5txm.d
+++ b/gas/testsuite/gas/arm/attr-march-armv5txm.d
@@ -3,7 +3,7 @@
# as: -march=armv5txm
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-march-armv6-m+os.d b/gas/testsuite/gas/arm/attr-march-armv6-m+os.d
index e5d3208..ca56092 100644
--- a/gas/testsuite/gas/arm/attr-march-armv6-m+os.d
+++ b/gas/testsuite/gas/arm/attr-march-armv6-m+os.d
@@ -3,7 +3,7 @@
# as: -march=armv6-m+os
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-march-armv6-m.d b/gas/testsuite/gas/arm/attr-march-armv6-m.d
index ad79347..5ed9954 100644
--- a/gas/testsuite/gas/arm/attr-march-armv6-m.d
+++ b/gas/testsuite/gas/arm/attr-march-armv6-m.d
@@ -3,7 +3,7 @@
# as: -march=armv6-m
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-march-armv6.d b/gas/testsuite/gas/arm/attr-march-armv6.d
index f509d5f..0c9bad4 100644
--- a/gas/testsuite/gas/arm/attr-march-armv6.d
+++ b/gas/testsuite/gas/arm/attr-march-armv6.d
@@ -3,7 +3,7 @@
# as: -march=armv6
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-march-armv6j.d b/gas/testsuite/gas/arm/attr-march-armv6j.d
index d8b37ec..b5e43c9 100644
--- a/gas/testsuite/gas/arm/attr-march-armv6j.d
+++ b/gas/testsuite/gas/arm/attr-march-armv6j.d
@@ -3,7 +3,7 @@
# as: -march=armv6j
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-march-armv6k+sec.d b/gas/testsuite/gas/arm/attr-march-armv6k+sec.d
index a50e8d4..318ad1f 100644
--- a/gas/testsuite/gas/arm/attr-march-armv6k+sec.d
+++ b/gas/testsuite/gas/arm/attr-march-armv6k+sec.d
@@ -3,7 +3,7 @@
# as: -march=armv6k+sec
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-march-armv6k.d b/gas/testsuite/gas/arm/attr-march-armv6k.d
index 4ff7057..cfdf2aa 100644
--- a/gas/testsuite/gas/arm/attr-march-armv6k.d
+++ b/gas/testsuite/gas/arm/attr-march-armv6k.d
@@ -3,7 +3,7 @@
# as: -march=armv6k
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-march-armv6kt2.d b/gas/testsuite/gas/arm/attr-march-armv6kt2.d
index 43db36b..e7e4a67 100644
--- a/gas/testsuite/gas/arm/attr-march-armv6kt2.d
+++ b/gas/testsuite/gas/arm/attr-march-armv6kt2.d
@@ -3,7 +3,7 @@
# as: -march=armv6kt2
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-march-armv6s-m.d b/gas/testsuite/gas/arm/attr-march-armv6s-m.d
index ad79347..5ed9954 100644
--- a/gas/testsuite/gas/arm/attr-march-armv6s-m.d
+++ b/gas/testsuite/gas/arm/attr-march-armv6s-m.d
@@ -3,7 +3,7 @@
# as: -march=armv6-m
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-march-armv6t2.d b/gas/testsuite/gas/arm/attr-march-armv6t2.d
index d0074f1..1c82872 100644
--- a/gas/testsuite/gas/arm/attr-march-armv6t2.d
+++ b/gas/testsuite/gas/arm/attr-march-armv6t2.d
@@ -3,7 +3,7 @@
# as: -march=armv6t2
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-march-armv6z.d b/gas/testsuite/gas/arm/attr-march-armv6z.d
index 97b14df..2acb12e 100644
--- a/gas/testsuite/gas/arm/attr-march-armv6z.d
+++ b/gas/testsuite/gas/arm/attr-march-armv6z.d
@@ -3,7 +3,7 @@
# as: -march=armv6z
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-march-armv6zk.d b/gas/testsuite/gas/arm/attr-march-armv6zk.d
index 85f639b..684f685 100644
--- a/gas/testsuite/gas/arm/attr-march-armv6zk.d
+++ b/gas/testsuite/gas/arm/attr-march-armv6zk.d
@@ -3,7 +3,7 @@
# as: -march=armv6zk
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-march-armv6zkt2.d b/gas/testsuite/gas/arm/attr-march-armv6zkt2.d
index 5bc1c72..a9c84ee 100644
--- a/gas/testsuite/gas/arm/attr-march-armv6zkt2.d
+++ b/gas/testsuite/gas/arm/attr-march-armv6zkt2.d
@@ -3,7 +3,7 @@
# as: -march=armv6zkt2
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-march-armv6zt2.d b/gas/testsuite/gas/arm/attr-march-armv6zt2.d
index 14e2c12..2a7ecb1 100644
--- a/gas/testsuite/gas/arm/attr-march-armv6zt2.d
+++ b/gas/testsuite/gas/arm/attr-march-armv6zt2.d
@@ -3,7 +3,7 @@
# as: -march=armv6zt2
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-march-armv7-a+idiv.d b/gas/testsuite/gas/arm/attr-march-armv7-a+idiv.d
index 42ce50e..6749161 100644
--- a/gas/testsuite/gas/arm/attr-march-armv7-a+idiv.d
+++ b/gas/testsuite/gas/arm/attr-march-armv7-a+idiv.d
@@ -3,7 +3,7 @@
# as: -march=armv7-a+idiv
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-march-armv7-a+mp.d b/gas/testsuite/gas/arm/attr-march-armv7-a+mp.d
index 74ff80d..5254306 100644
--- a/gas/testsuite/gas/arm/attr-march-armv7-a+mp.d
+++ b/gas/testsuite/gas/arm/attr-march-armv7-a+mp.d
@@ -3,7 +3,7 @@
# as: -march=armv7-a+mp
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-march-armv7-a+sec+virt.d b/gas/testsuite/gas/arm/attr-march-armv7-a+sec+virt.d
index c51e093..3e7cbef 100644
--- a/gas/testsuite/gas/arm/attr-march-armv7-a+sec+virt.d
+++ b/gas/testsuite/gas/arm/attr-march-armv7-a+sec+virt.d
@@ -3,7 +3,7 @@
# as: -march=armv7-a+sec+virt
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-march-armv7-a+sec.d b/gas/testsuite/gas/arm/attr-march-armv7-a+sec.d
index 1d5ed4e..8bc3323 100644
--- a/gas/testsuite/gas/arm/attr-march-armv7-a+sec.d
+++ b/gas/testsuite/gas/arm/attr-march-armv7-a+sec.d
@@ -3,7 +3,7 @@
# as: -march=armv7-a+sec
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-march-armv7-a+virt.d b/gas/testsuite/gas/arm/attr-march-armv7-a+virt.d
index 9329bc1..606f163 100644
--- a/gas/testsuite/gas/arm/attr-march-armv7-a+virt.d
+++ b/gas/testsuite/gas/arm/attr-march-armv7-a+virt.d
@@ -3,7 +3,7 @@
# as: -march=armv7-a+virt
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-march-armv7-a.d b/gas/testsuite/gas/arm/attr-march-armv7-a.d
index da687a7..157c765 100644
--- a/gas/testsuite/gas/arm/attr-march-armv7-a.d
+++ b/gas/testsuite/gas/arm/attr-march-armv7-a.d
@@ -3,7 +3,7 @@
# as: -march=armv7-a
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-march-armv7-m.d b/gas/testsuite/gas/arm/attr-march-armv7-m.d
index 2fcd549..22f10fc 100644
--- a/gas/testsuite/gas/arm/attr-march-armv7-m.d
+++ b/gas/testsuite/gas/arm/attr-march-armv7-m.d
@@ -3,7 +3,7 @@
# as: -march=armv7-m
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-march-armv7-r+mp.d b/gas/testsuite/gas/arm/attr-march-armv7-r+mp.d
index a7fa3c6..02308ee 100644
--- a/gas/testsuite/gas/arm/attr-march-armv7-r+mp.d
+++ b/gas/testsuite/gas/arm/attr-march-armv7-r+mp.d
@@ -3,7 +3,7 @@
# as: -march=armv7-r+mp
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-march-armv7-r.d b/gas/testsuite/gas/arm/attr-march-armv7-r.d
index 18be42d..b6866c1 100644
--- a/gas/testsuite/gas/arm/attr-march-armv7-r.d
+++ b/gas/testsuite/gas/arm/attr-march-armv7-r.d
@@ -3,7 +3,7 @@
# as: -march=armv7-r
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-march-armv7.d b/gas/testsuite/gas/arm/attr-march-armv7.d
index 8ca9e7d..fef4aa0 100644
--- a/gas/testsuite/gas/arm/attr-march-armv7.d
+++ b/gas/testsuite/gas/arm/attr-march-armv7.d
@@ -3,7 +3,7 @@
# as: -march=armv7
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-march-armv7a.d b/gas/testsuite/gas/arm/attr-march-armv7a.d
index 055b3cf..0c2fa8e 100644
--- a/gas/testsuite/gas/arm/attr-march-armv7a.d
+++ b/gas/testsuite/gas/arm/attr-march-armv7a.d
@@ -3,7 +3,7 @@
# as: -march=armv7a
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-march-armv7em.d b/gas/testsuite/gas/arm/attr-march-armv7em.d
index 5c10c50..aaaa508 100644
--- a/gas/testsuite/gas/arm/attr-march-armv7em.d
+++ b/gas/testsuite/gas/arm/attr-march-armv7em.d
@@ -3,7 +3,7 @@
# as: -march=armv7e-m
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-march-armv7m.d b/gas/testsuite/gas/arm/attr-march-armv7m.d
index ec56126..166054a 100644
--- a/gas/testsuite/gas/arm/attr-march-armv7m.d
+++ b/gas/testsuite/gas/arm/attr-march-armv7m.d
@@ -3,7 +3,7 @@
# as: -march=armv7m
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-march-armv7r.d b/gas/testsuite/gas/arm/attr-march-armv7r.d
index 8683f90..507d037 100644
--- a/gas/testsuite/gas/arm/attr-march-armv7r.d
+++ b/gas/testsuite/gas/arm/attr-march-armv7r.d
@@ -3,7 +3,7 @@
# as: -march=armv7r
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-march-iwmmxt.d b/gas/testsuite/gas/arm/attr-march-iwmmxt.d
index ccc4961..7b72a92 100644
--- a/gas/testsuite/gas/arm/attr-march-iwmmxt.d
+++ b/gas/testsuite/gas/arm/attr-march-iwmmxt.d
@@ -3,7 +3,7 @@
# as: -march=iwmmxt
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-march-iwmmxt2.d b/gas/testsuite/gas/arm/attr-march-iwmmxt2.d
index be46d22..279b948 100644
--- a/gas/testsuite/gas/arm/attr-march-iwmmxt2.d
+++ b/gas/testsuite/gas/arm/attr-march-iwmmxt2.d
@@ -3,7 +3,7 @@
# as: -march=iwmmxt2
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-march-xscale.d b/gas/testsuite/gas/arm/attr-march-xscale.d
index 5c80a6d..38ab933 100644
--- a/gas/testsuite/gas/arm/attr-march-xscale.d
+++ b/gas/testsuite/gas/arm/attr-march-xscale.d
@@ -3,7 +3,7 @@
# as: -march=xscale
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-mcpu.d b/gas/testsuite/gas/arm/attr-mcpu.d
index 32da248..8dacc4f 100644
--- a/gas/testsuite/gas/arm/attr-mcpu.d
+++ b/gas/testsuite/gas/arm/attr-mcpu.d
@@ -3,7 +3,7 @@
# as: -mcpu=cortex-a8 -mfpu=neon
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-mfpu-arm1020e.d b/gas/testsuite/gas/arm/attr-mfpu-arm1020e.d
index 95ea725..9967a15 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-arm1020e.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-arm1020e.d
@@ -3,7 +3,7 @@
# as: -mfpu=arm1020e
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-mfpu-arm1020t.d b/gas/testsuite/gas/arm/attr-mfpu-arm1020t.d
index 19b001b..3994381 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-arm1020t.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-arm1020t.d
@@ -3,7 +3,7 @@
# as: -mfpu=arm1020t
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-mfpu-arm1136jf-s.d b/gas/testsuite/gas/arm/attr-mfpu-arm1136jf-s.d
index f25aebe..af3f81c 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-arm1136jf-s.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-arm1136jf-s.d
@@ -3,7 +3,7 @@
# as: -mfpu=arm1136jf-s
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-mfpu-arm1136jfs.d b/gas/testsuite/gas/arm/attr-mfpu-arm1136jfs.d
index 4b8fce6..aff8224 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-arm1136jfs.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-arm1136jfs.d
@@ -3,7 +3,7 @@
# as: -mfpu=arm1136jfs
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-mfpu-arm7500fe.d b/gas/testsuite/gas/arm/attr-mfpu-arm7500fe.d
index 5e14e3f..a9d967b 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-arm7500fe.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-arm7500fe.d
@@ -3,7 +3,7 @@
# as: -mfpu=arm7500fe
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-mfpu-fpa.d b/gas/testsuite/gas/arm/attr-mfpu-fpa.d
index 425e44d..8206d98 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-fpa.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-fpa.d
@@ -3,7 +3,7 @@
# as: -mfpu=fpa
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-mfpu-fpa10.d b/gas/testsuite/gas/arm/attr-mfpu-fpa10.d
index 339daf0..1552eac 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-fpa10.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-fpa10.d
@@ -3,7 +3,7 @@
# as: -mfpu=fpa10
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-mfpu-fpa11.d b/gas/testsuite/gas/arm/attr-mfpu-fpa11.d
index 5b94ac5..ba28a21 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-fpa11.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-fpa11.d
@@ -3,7 +3,7 @@
# as: -mfpu=fpa11
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-mfpu-fpe.d b/gas/testsuite/gas/arm/attr-mfpu-fpe.d
index 416bb5b..d1e2c2c 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-fpe.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-fpe.d
@@ -3,7 +3,7 @@
# as: -mfpu=fpe
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-mfpu-fpe2.d b/gas/testsuite/gas/arm/attr-mfpu-fpe2.d
index a34cc6f..74dd2e8 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-fpe2.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-fpe2.d
@@ -3,7 +3,7 @@
# as: -mfpu=fpe2
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-mfpu-fpe3.d b/gas/testsuite/gas/arm/attr-mfpu-fpe3.d
index c917454..622ad19 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-fpe3.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-fpe3.d
@@ -3,7 +3,7 @@
# as: -mfpu=fpe3
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-mfpu-maverick.d b/gas/testsuite/gas/arm/attr-mfpu-maverick.d
index afbbc6c..ad7142d 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-maverick.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-maverick.d
@@ -3,7 +3,7 @@
# as: -mfpu=maverick
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-mfpu-neon-fp16.d b/gas/testsuite/gas/arm/attr-mfpu-neon-fp16.d
index 3866572..0727e49 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-neon-fp16.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-neon-fp16.d
@@ -3,7 +3,7 @@
# as: -mfpu=neon-fp16
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-mfpu-neon.d b/gas/testsuite/gas/arm/attr-mfpu-neon.d
index 1d7d33b..933fdf5 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-neon.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-neon.d
@@ -3,7 +3,7 @@
# as: -mfpu=neon
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-mfpu-softfpa.d b/gas/testsuite/gas/arm/attr-mfpu-softfpa.d
index d46115b..46ccff6 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-softfpa.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-softfpa.d
@@ -3,7 +3,7 @@
# as: -mfpu=softfpa
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-mfpu-softvfp+vfp.d b/gas/testsuite/gas/arm/attr-mfpu-softvfp+vfp.d
index d0524c2..e6f463b 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-softvfp+vfp.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-softvfp+vfp.d
@@ -3,7 +3,7 @@
# as: -mfpu=softvfp+vfp
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-mfpu-softvfp.d b/gas/testsuite/gas/arm/attr-mfpu-softvfp.d
index bab19b6..649433a 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-softvfp.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-softvfp.d
@@ -3,7 +3,7 @@
# as: -mfpu=softvfp
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-mfpu-vfp.d b/gas/testsuite/gas/arm/attr-mfpu-vfp.d
index 331b81a..303595e 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-vfp.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-vfp.d
@@ -3,7 +3,7 @@
# as: -mfpu=vfp
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-mfpu-vfp10-r0.d b/gas/testsuite/gas/arm/attr-mfpu-vfp10-r0.d
index 6f89e6a..69bc3df 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-vfp10-r0.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-vfp10-r0.d
@@ -3,7 +3,7 @@
# as: -mfpu=vfp10-r0
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-mfpu-vfp10.d b/gas/testsuite/gas/arm/attr-mfpu-vfp10.d
index 37af075..969097e 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-vfp10.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-vfp10.d
@@ -3,7 +3,7 @@
# as: -mfpu=vfp10
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-mfpu-vfp3.d b/gas/testsuite/gas/arm/attr-mfpu-vfp3.d
index f02d2cd..4a8bf08 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-vfp3.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-vfp3.d
@@ -3,7 +3,7 @@
# as: -mfpu=vfp3
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-mfpu-vfp9.d b/gas/testsuite/gas/arm/attr-mfpu-vfp9.d
index 57f5df7..fd0b830 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-vfp9.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-vfp9.d
@@ -3,7 +3,7 @@
# as: -mfpu=vfp9
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-mfpu-vfpv2.d b/gas/testsuite/gas/arm/attr-mfpu-vfpv2.d
index 678eb9e..1e516bb 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-vfpv2.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-vfpv2.d
@@ -3,7 +3,7 @@
# as: -mfpu=vfpv2
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-mfpu-vfpv3-d16.d b/gas/testsuite/gas/arm/attr-mfpu-vfpv3-d16.d
index 36d9914..16b257c 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-vfpv3-d16.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-vfpv3-d16.d
@@ -3,7 +3,7 @@
# as: -mfpu=vfpv3-d16
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-mfpu-vfpv3.d b/gas/testsuite/gas/arm/attr-mfpu-vfpv3.d
index b6cf496..40adc2f 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-vfpv3.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-vfpv3.d
@@ -3,7 +3,7 @@
# as: -mfpu=vfpv3
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-mfpu-vfpv4-d16.d b/gas/testsuite/gas/arm/attr-mfpu-vfpv4-d16.d
index 967e912..1b0e297 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-vfpv4-d16.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-vfpv4-d16.d
@@ -3,7 +3,7 @@
# as: -mfpu=vfpv4-d16
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-mfpu-vfpv4.d b/gas/testsuite/gas/arm/attr-mfpu-vfpv4.d
index fd92773..1be3048 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-vfpv4.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-vfpv4.d
@@ -3,7 +3,7 @@
# as: -mfpu=vfpv4
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-mfpu-vfpxd.d b/gas/testsuite/gas/arm/attr-mfpu-vfpxd.d
index 6896d17..5b6061c 100644
--- a/gas/testsuite/gas/arm/attr-mfpu-vfpxd.d
+++ b/gas/testsuite/gas/arm/attr-mfpu-vfpxd.d
@@ -3,7 +3,7 @@
# as: -mfpu=vfpxd
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-names.d b/gas/testsuite/gas/arm/attr-names.d
index 1eddd93..b78e79c 100644
--- a/gas/testsuite/gas/arm/attr-names.d
+++ b/gas/testsuite/gas/arm/attr-names.d
@@ -3,7 +3,7 @@
# as:
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-order.d b/gas/testsuite/gas/arm/attr-order.d
index 83f9f68..2451ad2 100644
--- a/gas/testsuite/gas/arm/attr-order.d
+++ b/gas/testsuite/gas/arm/attr-order.d
@@ -3,7 +3,7 @@
# as:
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-override-cpu-directive.d b/gas/testsuite/gas/arm/attr-override-cpu-directive.d
index 54c5e37..fb6333b 100644
--- a/gas/testsuite/gas/arm/attr-override-cpu-directive.d
+++ b/gas/testsuite/gas/arm/attr-override-cpu-directive.d
@@ -3,7 +3,7 @@
# as:
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/attr-override-mcpu.d b/gas/testsuite/gas/arm/attr-override-mcpu.d
index cfa11b9..7af52e3 100644
--- a/gas/testsuite/gas/arm/attr-override-mcpu.d
+++ b/gas/testsuite/gas/arm/attr-override-mcpu.d
@@ -3,7 +3,7 @@
# as: -mcpu=cortex-a8
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/got_prel.d b/gas/testsuite/gas/arm/got_prel.d
index ad74dfc..74a0bb5 100644
--- a/gas/testsuite/gas/arm/got_prel.d
+++ b/gas/testsuite/gas/arm/got_prel.d
@@ -2,7 +2,7 @@
# source: got_prel.s
# as: -march=armv5te -meabi=5
# readelf: -x 4 -r
-# target: *-*-*eabi *-*-symbianelf *-*-linux-* *-*-elf
+# target: *-*-*eabi *-*-symbianelf *-*-linux-* *-*-elf *-*-nacl*
Relocation section '.rel.text.foo' at offset 0x3f0 contains 1 entries:
Offset Info Type Sym.Value Sym. Name
diff --git a/gas/testsuite/gas/arm/mapdir.d b/gas/testsuite/gas/arm/mapdir.d
index 549fe94..bb37a6b 100644
--- a/gas/testsuite/gas/arm/mapdir.d
+++ b/gas/testsuite/gas/arm/mapdir.d
@@ -2,7 +2,7 @@
#objdump: --syms --special-syms -d
#name: ARM Mapping Symbols for .arm/.thumb
# This test is only valid on EABI based ports.
-#target: *-*-*eabi *-*-symbianelf *-*-linux-* *-*-elf
+#target: *-*-*eabi *-*-symbianelf *-*-linux-* *-*-elf *-*-nacl*
#source: mapdir.s
diff --git a/gas/testsuite/gas/arm/mapmisc.d b/gas/testsuite/gas/arm/mapmisc.d
index c130b65..6196b6b 100644
--- a/gas/testsuite/gas/arm/mapmisc.d
+++ b/gas/testsuite/gas/arm/mapmisc.d
@@ -2,7 +2,7 @@
#objdump: --syms --special-syms -d
#name: ARM Mapping Symbols for miscellaneous directives
# This test is only valid on EABI based ports.
-#target: *-*-*eabi *-*-symbianelf *-*-linux-* *-*-elf
+#target: *-*-*eabi *-*-symbianelf *-*-linux-* *-*-elf *-*-nacl*
#source: mapmisc.s
diff --git a/gas/testsuite/gas/arm/mapsecs.d b/gas/testsuite/gas/arm/mapsecs.d
index 8cd0baf..b0d0421 100644
--- a/gas/testsuite/gas/arm/mapsecs.d
+++ b/gas/testsuite/gas/arm/mapsecs.d
@@ -2,7 +2,7 @@
#objdump: --syms --special-syms -d
#name: ARM Mapping Symbols with multiple sections
# This test is only valid on EABI based ports.
-#target: *-*-*eabi *-*-symbianelf *-*-linux-* *-*-elf
+#target: *-*-*eabi *-*-symbianelf *-*-linux-* *-*-elf *-*-nacl*
#source: mapsecs.s
diff --git a/gas/testsuite/gas/arm/mapshort-eabi.d b/gas/testsuite/gas/arm/mapshort-eabi.d
index 1f920d3..69a5a22 100644
--- a/gas/testsuite/gas/arm/mapshort-eabi.d
+++ b/gas/testsuite/gas/arm/mapshort-eabi.d
@@ -1,7 +1,7 @@
#objdump: --syms --special-syms -d
#name: ARM Mapping Symbols for .short (EABI version)
# This test is only valid on EABI based ports.
-#target: *-*-*eabi *-*-symbianelf *-*-linux-* *-*-elf
+#target: *-*-*eabi *-*-symbianelf *-*-linux-* *-*-elf *-*-nacl*
#source: mapshort.s
# Test the generation and use of ARM ELF Mapping Symbols
diff --git a/gas/testsuite/gas/arm/mapshort-elf.d b/gas/testsuite/gas/arm/mapshort-elf.d
index 38b290e..b0b62cf 100644
--- a/gas/testsuite/gas/arm/mapshort-elf.d
+++ b/gas/testsuite/gas/arm/mapshort-elf.d
@@ -1,7 +1,7 @@
#objdump: --syms --special-syms -d
#name: ARM Mapping Symbols for .short (ELF version)
# This test is only valid on ELF based ports.
-#not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix* *-*-*eabi *-*-syymbianelf *-*-linux-* *-*-vxworks *-*-elf
+#not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix* *-*-*eabi *-*-syymbianelf *-*-linux-* *-*-vxworks *-*-elf *-*-nacl*
#source: mapshort.s
# Test the generation and use of ARM ELF Mapping Symbols
diff --git a/gas/testsuite/gas/arm/mov-highregs-any.d b/gas/testsuite/gas/arm/mov-highregs-any.d
index 0759de0..1f874be 100644
--- a/gas/testsuite/gas/arm/mov-highregs-any.d
+++ b/gas/testsuite/gas/arm/mov-highregs-any.d
@@ -1,6 +1,6 @@
# name: MOV highregs
# readelf: -A
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
Tag_CPU_arch: v4T
diff --git a/gas/testsuite/gas/arm/mov-lowregs-any.d b/gas/testsuite/gas/arm/mov-lowregs-any.d
index a6382f1..8751335 100644
--- a/gas/testsuite/gas/arm/mov-lowregs-any.d
+++ b/gas/testsuite/gas/arm/mov-lowregs-any.d
@@ -1,8 +1,7 @@
# name: MOV lowregs
# readelf: -A
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
Tag_CPU_arch: v6
Tag_THUMB_ISA_use: Thumb-1
-
diff --git a/gas/testsuite/gas/arm/pr12198-1.d b/gas/testsuite/gas/arm/pr12198-1.d
index 5bbd828..ec5f139 100644
--- a/gas/testsuite/gas/arm/pr12198-1.d
+++ b/gas/testsuite/gas/arm/pr12198-1.d
@@ -3,7 +3,7 @@
# as:
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/pr12198-2.d b/gas/testsuite/gas/arm/pr12198-2.d
index 6935bcf..fc7cfa7 100644
--- a/gas/testsuite/gas/arm/pr12198-2.d
+++ b/gas/testsuite/gas/arm/pr12198-2.d
@@ -3,7 +3,7 @@
# as:
# readelf: -A
# This test is only valid on EABI based ports.
-# target: *-*-*eabi
+# target: *-*-*eabi *-*-nacl*
Attribute Section: aeabi
File Attributes
diff --git a/gas/testsuite/gas/arm/thumb-eabi.d b/gas/testsuite/gas/arm/thumb-eabi.d
index 9fd77d1..602dafb 100644
--- a/gas/testsuite/gas/arm/thumb-eabi.d
+++ b/gas/testsuite/gas/arm/thumb-eabi.d
@@ -2,7 +2,7 @@
# as: -mcpu=arm7t
# objdump: -dr --prefix-addresses --show-raw-insn
# source: thumb.s
-# target: *-*-*eabi *-*-symbianelf
+# target: *-*-*eabi *-*-symbianelf *-*-nacl*
.*: +file format .*arm.*
diff --git a/gas/testsuite/gas/arm/thumb.d b/gas/testsuite/gas/arm/thumb.d
index 6d88508..514152b 100644
--- a/gas/testsuite/gas/arm/thumb.d
+++ b/gas/testsuite/gas/arm/thumb.d
@@ -3,7 +3,7 @@
# objdump: -dr --prefix-addresses --show-raw-insn
# The arm-aout and arm-pe ports do not support Thumb branch relocations.
# EABI targets have their own variant.
-# not-target: *-*-*aout* *-*-pe *-*-*eabi *-*-symbianelf
+# not-target: *-*-*aout* *-*-pe *-*-*eabi *-*-symbianelf *-*-nacl*
.*: +file format .*arm.*
diff --git a/gas/testsuite/gas/arm/thumbrel.d b/gas/testsuite/gas/arm/thumbrel.d
index fff41af..a87353e 100644
--- a/gas/testsuite/gas/arm/thumbrel.d
+++ b/gas/testsuite/gas/arm/thumbrel.d
@@ -1,6 +1,6 @@
#objdump: -sr
# This test is only valid on EABI based ports.
-#target: *-*-*eabi *-*-symbianelf
+#target: *-*-*eabi *-*-symbianelf *-*-nacl*
.*: file format.*