* config/tc-arm.c (md_apply_fix <BFD_RELOC_ARM_TARGET2>): Write
	the offset for REL targets here.

	gas/testsuite/
	* gas/arm/target-reloc-1.s: New.
	* gas/arm/target-reloc-1.d: New.

	ld/testsuite/
	* ld-arm/arm-target2.s: Add addend cases.
	* ld-arm/arm-target2-rel.d: Adjust.
	* ld-arm/arm-target2-abs.d: Adjust.
	* ld-arm/arm-target2-got-rel.d: Adjust.
This commit is contained in:
Nathan Sidwell 2009-07-16 13:18:52 +00:00
parent 3726e6c57f
commit 9a6f4e976d
10 changed files with 50 additions and 5 deletions

View File

@ -1,3 +1,8 @@
2009-07-16 Nathan Sidwell <nathan@codesourcery.com>
* config/tc-arm.c (md_apply_fix <BFD_RELOC_ARM_TARGET2>): Write
the offset for REL targets here.
2009-07-15 Kai Tietz <kai.tietz@onevision.com>
* listing.c (print_source): Initialize cache by NULL.

View File

@ -20014,10 +20014,17 @@ md_apply_fix (fixS * fixP,
case BFD_RELOC_ARM_GOT32:
case BFD_RELOC_ARM_GOTOFF:
case BFD_RELOC_ARM_TARGET2:
if (fixP->fx_done || !seg->use_rela_p)
md_number_to_chars (buf, 0, 4);
break;
case BFD_RELOC_ARM_TARGET2:
/* TARGET2 is not partial-inplace, so we need to write the
addend here for REL targets, because it won't be written out
during reloc processing later. */
if (fixP->fx_done || !seg->use_rela_p)
md_number_to_chars (buf, fixP->fx_offset, 4);
break;
#endif
case BFD_RELOC_RVA:

View File

@ -1,3 +1,8 @@
2009-07-16 Nathan Sidwell <nathan@codesourcery.com>
* gas/arm/target-reloc-1.s: New.
* gas/arm/target-reloc-1.d: New.
2009-07-14 Daniel Gutson <dgutson@codesourcery.com>
* gas/arm/align64.s: New test case.

View File

@ -0,0 +1,15 @@
#objdump: -dr --show-raw-insn
#skip: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix* *-*-vxworks
#name: TARGET reloc
.*: file format .*arm.*
Disassembly of section .text:
00000000 <foo>:
0: 00001234 .*
0: R_ARM_TARGET2 foo
4: cdef0000 .*
4: R_ARM_TARGET2 foo
8: 76543210 .*
8: R_ARM_TARGET2 foo

View File

@ -0,0 +1,3 @@
foo: .word foo(TARGET2) + 0x1234
.word foo + 0xcdef0000(TARGET2)
.word (foo + 0x76543210)(TARGET2)

View File

@ -1,3 +1,10 @@
2009-07-16 Nathan Sidwell <nathan@codesourcery.com>
* ld-arm/arm-target2.s: Add addend cases.
* ld-arm/arm-target2-rel.d: Adjust.
* ld-arm/arm-target2-abs.d: Adjust.
* ld-arm/arm-target2-got-rel.d: Adjust.
2009-07-13 H.J. Lu <hongjiu.lu@intel.com>
* ld-ifunc/ifunc.exp: Don't use -shared/-static to build object

View File

@ -2,6 +2,6 @@
.*: file format.*
Contents of section .text:
8000 (04800000|00008004) .*
8000 (10800000|00008010) (44920000|00009244) (1080efcd|cdef8010) (20b25476|7654b220) .*
# Ignore .ARM.attributes section
#...

View File

@ -2,8 +2,8 @@
.*: file format.*
Contents of section .text:
8000 (00100000|00001000) .*
8000 (00100000|00001000) (30220000|00002230) (f80fefcd|cdef0ff8) (04425476|76544204) .*
Contents of section .got:
9000 (04800000|00008004) .*
9000 (10800000|00008010) .*
# Ignore .ARM.attributes section
#...

View File

@ -2,6 +2,6 @@
.*: file format.*
Contents of section .text:
8000 (04000000|00000004) .*
8000 (10000000|00000010) (40120000|00001240) (0800efcd|cdef0008) (14325476|76543214) .*
# Ignore .ARM.attributes section
#...

View File

@ -3,4 +3,7 @@
.global _start
_start:
.word foo(target2)
.word foo+0x1234(target2)
.word foo+0xcdef0000(target2)
.word foo+0x76543210(target2)
foo: