diff options
-rw-r--r-- | bfd/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/elf32-arm.h | 2 | ||||
-rw-r--r-- | ld/ChangeLog | 5 | ||||
-rw-r--r-- | ld/emulparams/armsymbian.sh | 1 | ||||
-rw-r--r-- | ld/ld.texinfo | 4 | ||||
-rw-r--r-- | ld/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | ld/testsuite/ld-arm/arm-elf.exp | 3 | ||||
-rw-r--r-- | ld/testsuite/ld-arm/arm-target2-abs.d | 5 |
8 files changed, 29 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index bb4d5e3..77510cb 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2004-09-30 Paul Brook <paul@codesourcery.com> + + * elf32-arm.h (bfd_elf32_arm_set_target_relocs): Handle "abs" + target2 relocation type. + 2004-09-30 H.J. Lu <hongjiu.lu@intel.com> PR 414 diff --git a/bfd/elf32-arm.h b/bfd/elf32-arm.h index 27e74d9..99ed731 100644 --- a/bfd/elf32-arm.h +++ b/bfd/elf32-arm.h @@ -925,6 +925,8 @@ bfd_elf32_arm_set_target_relocs (struct bfd_link_info *link_info, globals->target1_is_rel = target1_is_rel; if (strcmp (target2_type, "rel") == 0) globals->target2_reloc = R_ARM_REL32; + else if (strcmp (target2_type, "abs") == 0) + globals->target2_reloc = R_ARM_ABS32; else if (strcmp (target2_type, "got-rel") == 0) globals->target2_reloc = R_ARM_GOT_PREL; else diff --git a/ld/ChangeLog b/ld/ChangeLog index cfe0333..f9a0780 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,8 @@ +2004-09-30 Paul Brook <paul@codesourcery.com> + + * ld.texinfo: Document --target2=abs. + * emulparms/armsymbian.sh (TARGET2_TYPE): Set. + 2004-09-29 Nick Clifton <nickc@redhat.com> * scripttempl/xstormy16.sc: Only perform the assignments to the diff --git a/ld/emulparams/armsymbian.sh b/ld/emulparams/armsymbian.sh index ce3a963..6fd1d15 100644 --- a/ld/emulparams/armsymbian.sh +++ b/ld/emulparams/armsymbian.sh @@ -5,6 +5,7 @@ OUTPUT_FORMAT="elf32-littlearm-symbian" BIG_OUTPUT_FORMAT="elf32-bigarm-symbian" LITTLE_OUTPUT_FORMAT="$OUTPUT_FORMAT" TARGET1_IS_REL=1 +TARGET2_TYPE=abs # This value should match ELF_MAXPAGESIZE in BFD. Otherwise, elf.c # will not place read-write sections in a separate ELF segment from diff --git a/ld/ld.texinfo b/ld/ld.texinfo index 8acc3c4..047933a 100644 --- a/ld/ld.texinfo +++ b/ld/ld.texinfo @@ -4922,7 +4922,9 @@ The @samp{--target2=type} switch overrides the default definition of the meanings, and target defaults are as follows: @table @samp @item rel -@samp{R_ARM_REL32} (arm*-*-symbianelf, arm*-*-elf, arm*-*-eabi) +@samp{R_ARM_REL32} (arm*-*-elf, arm*-*-eabi) +@item abs +@samp{R_ARM_ABS32} (arm*-*-symbianelf) @item got-rel @samp{R_ARM_GOT_PREL} (arm*-*-linux, arm*-*-*bsd) @end table diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index ac41e87..76de52b 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2004-09-30 Paul Brook <paul@codesourcery.com> + + * ld-arm/arm-elf.exp: Add test for --target2=abs. + * ld-arm/arm-target2-abs.d: New file. + 2004-09-29 Alan Modra <amodra@bigpond.net.au> * ld-pe/secrel1.s: Pad .rdata out to 16 byte boundary. diff --git a/ld/testsuite/ld-arm/arm-elf.exp b/ld/testsuite/ld-arm/arm-elf.exp index 17fb089..1de19e7 100644 --- a/ld/testsuite/ld-arm/arm-elf.exp +++ b/ld/testsuite/ld-arm/arm-elf.exp @@ -56,6 +56,9 @@ set armelftests { {"target2-rel" "-static --target2=rel -T arm.ld" "" {arm-target2.s} {{objdump -s arm-target2-rel.d}} "arm-target2-rel"} + {"target2-abs" "-static --target2=abs -T arm.ld" "" {arm-target2.s} + {{objdump -s arm-target2-abs.d}} + "arm-target2-abs"} {"target2-got-rel" "-static --target2=got-rel -T arm.ld" "" {arm-target2.s} {{objdump -s arm-target2-got-rel.d}} "arm-target2-got-rel"} diff --git a/ld/testsuite/ld-arm/arm-target2-abs.d b/ld/testsuite/ld-arm/arm-target2-abs.d new file mode 100644 index 0000000..81cc9cc --- /dev/null +++ b/ld/testsuite/ld-arm/arm-target2-abs.d @@ -0,0 +1,5 @@ + +.*: file format.* + +Contents of section .text: + 8000 (04800000|00008004) .* |