aboutsummaryrefslogtreecommitdiff
path: root/bfd/ChangeLog
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2014-02-08 12:26:53 +1030
committerAlan Modra <amodra@gmail.com>2014-02-09 23:25:14 +1030
commit53291d1f1601d6958248dcfb755af470521c186a (patch)
tree6c7d8b35b6792238cc852ff9e3866f154c77f8e2 /bfd/ChangeLog
parentf9e7e5d3e6b8715d702cf0d530e8ca6cd243cd8b (diff)
downloadfsf-binutils-gdb-53291d1f1601d6958248dcfb755af470521c186a.zip
fsf-binutils-gdb-53291d1f1601d6958248dcfb755af470521c186a.tar.gz
fsf-binutils-gdb-53291d1f1601d6958248dcfb755af470521c186a.tar.bz2
powerpc relax_section and section contents cache
This patch provides a means for backend relax_section support to increase the size of a section without needing to reallocate section contents. This helps reduce memory usage when the added space does not need to be written in relax_section, as is the case for powerpc. Writing the stubs later means a few tweaks are needed in the powerpc relocate_section function, but also removes some code duplication since the extra ld -r relocs can be written there too. * elf-bfd.h (struct elf_backend_data): Add caches_rawsize. * elfxx-target.h (elf_backend_caches_rawsize): Define. (elfNN_bed): Init new field. * elflink.c (elf_link_input_bfd): Handle caches_rawsize. * elf32-ppc.c (shared_stub_entry): Zero addi offset. (ppc_elf_relax_section): Don't reallocate section here, write stubs, or write out relocs for ld -r here.. (ppc_elf_relocate_section): ..instead write stubs here, and use existing code to write out relocs for ld -r. Fix offset adjustment on reloc for little-endian. (elf_backend_caches_rawsize): Define.
Diffstat (limited to 'bfd/ChangeLog')
-rw-r--r--bfd/ChangeLog14
1 files changed, 14 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 37074c9..5b828a3 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,17 @@
+2014-02-09 Alan Modra <amodra@gmail.com>
+
+ * elf-bfd.h (struct elf_backend_data): Add caches_rawsize.
+ * elfxx-target.h (elf_backend_caches_rawsize): Define.
+ (elfNN_bed): Init new field.
+ * elflink.c (elf_link_input_bfd): Handle caches_rawsize.
+ * elf32-ppc.c (shared_stub_entry): Zero addi offset.
+ (ppc_elf_relax_section): Don't reallocate section here, write
+ stubs, or write out relocs for ld -r here..
+ (ppc_elf_relocate_section): ..instead write stubs here, and use
+ existing code to write out relocs for ld -r. Fix offset
+ adjustment on reloc for little-endian.
+ (elf_backend_caches_rawsize): Define.
+
2014-02-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* cache.c (bfd_cache_max_open): Cast RLIM_INFINITY to rlim_t.