mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-28 23:39:35 +08:00
* 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.
This commit is contained in:
@ -1,3 +1,8 @@
|
|||||||
|
2006-11-10 Pedro Alves <pedro_alves@portugalmail.pt>
|
||||||
|
|
||||||
|
* config/tc-arm.c (arm_fix_adjustable) [OBJ_COFF]: Delete.
|
||||||
|
(arm_fix_adjustable) [OBJ_ELF]: Use it on coff targets too.
|
||||||
|
|
||||||
2006-11-10 Nick Clifton <nickc@redhat.com>
|
2006-11-10 Nick Clifton <nickc@redhat.com>
|
||||||
|
|
||||||
PR gas/3456:
|
PR gas/3456:
|
||||||
|
@ -18959,36 +18959,7 @@ arm_force_relocation (struct fix * fixp)
|
|||||||
return generic_force_reloc (fixp);
|
return generic_force_reloc (fixp);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef OBJ_COFF
|
#if defined (OBJ_ELF) || defined (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
|
|
||||||
/* Relocations against function names must be left unadjusted,
|
/* Relocations against function names must be left unadjusted,
|
||||||
so that the linker can use this information to generate interworking
|
so that the linker can use this information to generate interworking
|
||||||
stubs. The MIPS version of this function
|
stubs. The MIPS version of this function
|
||||||
@ -19041,6 +19012,9 @@ arm_fix_adjustable (fixS * fixP)
|
|||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
#endif /* defined (OBJ_ELF) || defined (OBJ_COFF) */
|
||||||
|
|
||||||
|
#ifdef OBJ_ELF
|
||||||
|
|
||||||
const char *
|
const char *
|
||||||
elf32_arm_target_format (void)
|
elf32_arm_target_format (void)
|
||||||
|
@ -3,6 +3,13 @@
|
|||||||
* gas/arm/undefined.d: Run test on Windows CE.
|
* gas/arm/undefined.d: Run test on Windows CE.
|
||||||
* gas/arm/undefined_coff.d: Don't run test on Windows CE.
|
* gas/arm/undefined_coff.d: Don't run test on Windows CE.
|
||||||
|
|
||||||
|
* 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.
|
||||||
|
|
||||||
2006-11-09 H.J. Lu <hongjiu.lu@intel.com>
|
2006-11-09 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
* gas/i386/sse2.s: Test movdqa with memory destination.
|
* gas/i386/sse2.s: Test movdqa with memory destination.
|
||||||
|
11
gas/testsuite/gas/arm/local_label_coff.d
Normal file
11
gas/testsuite/gas/arm/local_label_coff.d
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
#nm: -n
|
||||||
|
#name: ARM local label relocs to section symbol relocs (COFF)
|
||||||
|
# This test is only valid on COFF based targets, except Windows CE.
|
||||||
|
# There are ELF and Windows CE versions of this test.
|
||||||
|
#not-skip: *-unknown-pe *-epoc-pe *-*-*coff
|
||||||
|
|
||||||
|
# Check if relocations against local symbols are converted to
|
||||||
|
# relocations against section symbols.
|
||||||
|
0+0 b .bss
|
||||||
|
0+0 d .data
|
||||||
|
0+0 t .text
|
3
gas/testsuite/gas/arm/local_label_coff.s
Normal file
3
gas/testsuite/gas/arm/local_label_coff.s
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
.text
|
||||||
|
Lused_label:
|
||||||
|
.word Lused_label
|
9
gas/testsuite/gas/arm/local_label_elf.d
Normal file
9
gas/testsuite/gas/arm/local_label_elf.d
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
#nm: -n
|
||||||
|
#name: ARM local label relocs to section symbol relocs (ELF)
|
||||||
|
# This test is only valid on ELF targets.
|
||||||
|
# There are COFF and Windows CE versions of this test.
|
||||||
|
#skip: *-*-*coff *-*-pe *-wince-* *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
|
||||||
|
|
||||||
|
# Check if relocations against local symbols are converted to
|
||||||
|
# relocations against section symbols.
|
||||||
|
|
3
gas/testsuite/gas/arm/local_label_elf.s
Normal file
3
gas/testsuite/gas/arm/local_label_elf.s
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
.text
|
||||||
|
.Lused_label:
|
||||||
|
.word .Lused_label
|
11
gas/testsuite/gas/arm/local_label_wince.d
Normal file
11
gas/testsuite/gas/arm/local_label_wince.d
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
#nm: -n
|
||||||
|
#name: ARM local label relocs to section symbol relocs (WinCE)
|
||||||
|
# This test is only valid on Windows CE.
|
||||||
|
# There are ELF and COFF versions of this test.
|
||||||
|
#not-skip: *-*-wince *-wince-*
|
||||||
|
|
||||||
|
# Check if relocations against local symbols are converted to
|
||||||
|
# relocations against section symbols.
|
||||||
|
0+0 b .bss
|
||||||
|
0+0 d .data
|
||||||
|
0+0 t .text
|
3
gas/testsuite/gas/arm/local_label_wince.s
Normal file
3
gas/testsuite/gas/arm/local_label_wince.s
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
.text
|
||||||
|
.Lused_label:
|
||||||
|
.word .Lused_label
|
Reference in New Issue
Block a user