diff options
author | Nick Clifton <nickc@redhat.com> | 2006-11-10 09:32:42 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2006-11-10 09:32:42 +0000 |
commit | 0ffdc86ce9b1f13f791d159c60c58e2c87ed0d91 (patch) | |
tree | eb80bff1dc739b86aafb8e2a5fae1e0e61a2cc4f /gas/config | |
parent | 0285182bf2cf7b76b87b96d759d8eb44baa09dba (diff) | |
download | gdb-0ffdc86ce9b1f13f791d159c60c58e2c87ed0d91.zip gdb-0ffdc86ce9b1f13f791d159c60c58e2c87ed0d91.tar.gz gdb-0ffdc86ce9b1f13f791d159c60c58e2c87ed0d91.tar.bz2 |
* config/tc-arm.c (arm_fix_adjustable) [OBJ_COFF]: Delete.
(arm_fix_adjustable) [OBJ_ELF]: Use it on coff targets too.
* gas/arm/local_label_coff.s: New test.
* gas/arm/local_label_coff.d: New test.
* gas/arm/local_label_elf.s: New test.
* gas/arm/local_label_elf.d: New test.
* gas/arm/local_label_wince.s: New test.
* gas/arm/local_label_wince.d: New test.
Diffstat (limited to 'gas/config')
-rw-r--r-- | gas/config/tc-arm.c | 34 |
1 files changed, 4 insertions, 30 deletions
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c index 9c534a6..8aa3d41 100644 --- a/gas/config/tc-arm.c +++ b/gas/config/tc-arm.c @@ -18959,36 +18959,7 @@ arm_force_relocation (struct fix * fixp) return generic_force_reloc (fixp); } -#ifdef OBJ_COFF -bfd_boolean -arm_fix_adjustable (fixS * fixP) -{ - /* This is a little hack to help the gas/arm/adrl.s test. It prevents - local labels from being added to the output symbol table when they - are used with the ADRL pseudo op. The ADRL relocation should always - be resolved before the binbary is emitted, so it is safe to say that - it is adjustable. */ - if (fixP->fx_r_type == BFD_RELOC_ARM_ADRL_IMMEDIATE) - return 1; - - /* This is a hack for the gas/all/redef2.s test. This test causes symbols - to be cloned, and without this test relocs would still be generated - against the original, pre-cloned symbol. Such symbols would not appear - in the symbol table however, and so a valid reloc could not be - generated. So check to see if the fixup is against a symbol which has - been removed from the symbol chain, and if it is, then allow it to be - adjusted into a reloc against a section symbol. */ - if (fixP->fx_addsy != NULL - && ! S_IS_LOCAL (fixP->fx_addsy) - && symbol_next (fixP->fx_addsy) == NULL - && symbol_next (fixP->fx_addsy) == symbol_previous (fixP->fx_addsy)) - return 1; - - return 0; -} -#endif - -#ifdef OBJ_ELF +#if defined (OBJ_ELF) || defined (OBJ_COFF) /* Relocations against function names must be left unadjusted, so that the linker can use this information to generate interworking stubs. The MIPS version of this function @@ -19041,6 +19012,9 @@ arm_fix_adjustable (fixS * fixP) return 1; } +#endif /* defined (OBJ_ELF) || defined (OBJ_COFF) */ + +#ifdef OBJ_ELF const char * elf32_arm_target_format (void) |