diff options
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/config/tc-arm.c | 35 |
2 files changed, 30 insertions, 10 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index a015f03..e4b5532 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2004-03-30 Nick Clifton <nickc@redhat.com> + + * config/tc-arm.c (meabi_flags): Make its use conditional upon + OBJ_ELF being defined. + 2004-03-27 Alan Modra <amodra@bigpond.net.au> * config/obj-aout.c (obj_aout_type): Remove #ifdef BFD_ASSEMBLER code. diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c index bcf5769..a7ebc51 100644 --- a/gas/config/tc-arm.c +++ b/gas/config/tc-arm.c @@ -191,7 +191,9 @@ static int march_cpu_opt = -1; static int march_fpu_opt = -1; static int mfpu_opt = -1; static int mfloat_abi_opt = -1; +#ifdef OBJ_ELF static int meabi_flags = EF_ARM_EABI_UNKNOWN; +#endif /* This array holds the chars that always start a comment. If the pre-processor is disabled, these aren't very useful. */ @@ -2552,7 +2554,9 @@ static int arm_parse_cpu PARAMS ((char *)); static int arm_parse_arch PARAMS ((char *)); static int arm_parse_fpu PARAMS ((char *)); static int arm_parse_float_abi PARAMS ((char *)); +#ifdef OBJ_ELF static int arm_parse_eabi PARAMS ((char *)); +#endif #if 0 /* Suppressed - for now. */ #if defined OBJ_COFF || defined OBJ_ELF static void arm_add_note PARAMS ((const char *, const char *, unsigned int)); @@ -11687,13 +11691,17 @@ md_begin () cpu_variant = mcpu_cpu_opt | mfpu_opt; -#if defined OBJ_COFF || defined OBJ_ELF { - unsigned int flags = meabi_flags; + unsigned int flags = 0; + +#if defined OBJ_ELF + flags = meabi_flags; switch (meabi_flags) { case EF_ARM_EABI_UNKNOWN: +#endif +#if defined OBJ_COFF || defined OBJ_ELF /* Set the flags in the private structure. */ if (uses_apcs_26) flags |= F_APCS26; if (support_interwork) flags |= F_INTERWORK; @@ -11701,9 +11709,8 @@ md_begin () if (pic_code) flags |= F_PIC; if ((cpu_variant & FPU_ANY) == FPU_NONE || (cpu_variant & FPU_ANY) == FPU_ARCH_VFP) /* VFP layout only. */ - { - flags |= F_SOFT_FLOAT; - } + flags |= F_SOFT_FLOAT; + switch (mfloat_abi_opt) { case ARM_FLOAT_ABI_SOFT: @@ -11716,13 +11723,14 @@ md_begin () as_bad (_("hard-float conflicts with specified fpu")); break; } - /* Using VFP conventions (even if soft-float). */ - if (cpu_variant & FPU_VFP_EXT_NONE) flags |= F_VFP_FLOAT; + /* Using VFP conventions (even if soft-float). */ + if (cpu_variant & FPU_VFP_EXT_NONE) + flags |= F_VFP_FLOAT; +#endif #if defined OBJ_ELF if (cpu_variant & FPU_ARCH_MAVERICK) flags |= EF_ARM_MAVERICK_FLOAT; -#endif break; case EF_ARM_EABI_VER3: @@ -11732,7 +11740,8 @@ md_begin () default: abort (); } - +#endif +#if defined OBJ_COFF || defined OBJ_ELF bfd_set_private_flags (stdoutput, flags); /* We have run out flags in the COFF header to encode the @@ -11752,8 +11761,8 @@ md_begin () bfd_set_section_contents (stdoutput, sec, NULL, 0, 0); } } - } #endif + } /* Record the CPU type as well. */ switch (cpu_variant & ARM_CPU_MASK) @@ -13470,6 +13479,7 @@ struct arm_eabi_option_table unsigned int value; }; +#ifdef OBJ_ELF /* We only know hot to output GNU and ver 3 (AAELF) formats. */ static struct arm_eabi_option_table arm_eabis[] = { @@ -13477,6 +13487,7 @@ static struct arm_eabi_option_table arm_eabis[] = {"3", EF_ARM_EABI_VER3}, {NULL, 0} }; +#endif struct arm_long_option_table { @@ -13641,6 +13652,7 @@ arm_parse_float_abi (str) return 0; } +#ifdef OBJ_ELF static int arm_parse_eabi (str) char * str; @@ -13656,6 +13668,7 @@ arm_parse_eabi (str) as_bad (_("unknown EABI `%s'\n"), str); return 0; } +#endif struct arm_long_option_table arm_long_opts[] = { @@ -13667,8 +13680,10 @@ struct arm_long_option_table arm_long_opts[] = arm_parse_fpu, NULL}, {"mfloat-abi=", N_("<abi>\t assemble for floating point ABI <abi>"), arm_parse_float_abi, NULL}, +#ifdef OBJ_ELF {"meabi=", N_("<ver>\t assemble for eabi version <ver>"), arm_parse_eabi, NULL}, +#endif {NULL, NULL, 0, NULL} }; |