diff options
author | Daniel Jacobowitz <drow@false.org> | 2006-11-13 20:39:21 +0000 |
---|---|---|
committer | Daniel Jacobowitz <drow@false.org> | 2006-11-13 20:39:21 +0000 |
commit | d504ffc8519a0f1674715a8d55975c762c3ca1df (patch) | |
tree | 09ec00707683399ff73ef0ff348d7dc594ea0c39 /ld | |
parent | 1bc1fa8c874325a9e6085ca73abe4ae9f9a4239f (diff) | |
download | binutils-d504ffc8519a0f1674715a8d55975c762c3ca1df.tar.gz binutils-d504ffc8519a0f1674715a8d55975c762c3ca1df.tar.bz2 binutils-d504ffc8519a0f1674715a8d55975c762c3ca1df.zip |
bfd/
* bfd-in.h (bfd_elf32_arm_process_before_allocation): Update
prototype.
(bfd_elf32_arm_set_byteswap_code): New prototype.
* bfd-in2.h: Regenerate.
* elf32-arm.c (bfd_elf32_arm_process_before_allocation): Don't take
byteswap_code as an argument. Revert 2006-11-01 change.
(bfd_elf32_arm_set_byteswap_code): New.
(elf32_arm_size_dynamic_sections): Call
bfd_elf32_arm_process_before_allocation.
ld/
* emultempl/armelf.em (arm_elf_before_allocation): Only call
bfd_elf32_arm_process_before_allocation if no dynamic sections.
Diffstat (limited to 'ld')
-rw-r--r-- | ld/ChangeLog | 5 | ||||
-rw-r--r-- | ld/emultempl/armelf.em | 25 |
2 files changed, 18 insertions, 12 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index 7f838f627fb..4abbfbc7291 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,8 @@ +2006-11-13 Daniel Jacobowitz <dan@codesourcery.com> + + * emultempl/armelf.em (arm_elf_before_allocation): Only call + bfd_elf32_arm_process_before_allocation if no dynamic sections. + 2006-11-08 Alan Modra <amodra@bigpond.net.au> * emultempl/elf32.em (gld*_before_allocation): Adjust output section diff --git a/ld/emultempl/armelf.em b/ld/emultempl/armelf.em index f78b4957e9d..d52d387f9d1 100644 --- a/ld/emultempl/armelf.em +++ b/ld/emultempl/armelf.em @@ -121,21 +121,22 @@ arm_elf_before_allocation (void) if (bfd_for_interwork != NULL) bfd_elf32_arm_get_bfd_for_interworking (bfd_for_interwork, &link_info); } - /* We should be able to set the size of the interworking stub section. */ - /* Here we rummage through the found bfds to collect glue information. */ - /* FIXME: should this be based on a command line option? krk@cygnus.com */ - { - LANG_FOR_EACH_INPUT_STATEMENT (is) - { - if (!bfd_elf32_arm_process_before_allocation (is->the_bfd, & link_info, - byteswap_code)) - { + bfd_elf32_arm_set_byteswap_code (&link_info, byteswap_code); + + /* We should be able to set the size of the interworking stub section. We + can't do it until later if we have dynamic sections, though. */ + if (! elf_hash_table (&link_info)->dynamic_sections_created) + { + /* Here we rummage through the found bfds to collect glue information. */ + LANG_FOR_EACH_INPUT_STATEMENT (is) + { + if (!bfd_elf32_arm_process_before_allocation (is->the_bfd, + &link_info)) /* xgettext:c-format */ einfo (_("Errors encountered processing file %s"), is->filename); - } - } - } + } + } /* Call the standard elf routine. */ gld${EMULATION_NAME}_before_allocation (); |