aboutsummaryrefslogtreecommitdiff
path: root/bfd/coff-rs6000.c
diff options
context:
space:
mode:
authorCl?ment Chigot <clement.chigot@atos.net>2022-04-20 15:07:50 +0100
committerNick Clifton <nickc@redhat.com>2022-04-20 15:07:50 +0100
commit1876a542175ef438d6aaafeccb479024994b938d (patch)
tree1a60756413f36963d9fded458ae99cb84135373a /bfd/coff-rs6000.c
parent3b70bcb00f443259b444b3fc543899047ac7f44e (diff)
downloadfsf-binutils-gdb-1876a542175ef438d6aaafeccb479024994b938d.zip
fsf-binutils-gdb-1876a542175ef438d6aaafeccb479024994b938d.tar.gz
fsf-binutils-gdb-1876a542175ef438d6aaafeccb479024994b938d.tar.bz2
Stubs (added in a later patch) will generate new .loader symbols, once the allocations have been done. Thus, the .loader section cannot be layout before that.
bfd/ChangeLog: * coff-rs6000.c (_bfd_xcoff_put_ldsymbol_name): Write len in ldinfo->strings instead of directly in the output_bfd. * coff64-rs6000.c (_bfd_xcoff64_put_ldsymbol_name): Likewise. * xcofflink.c (struct xcoff_link_hash_table): Remove ldrel_count field. Add ldinfo field. (xcoff_mark_symbol): Adjust to new ldinfo field. (xcoff_mark): Likewise. (bfd_xcoff_link_count_reloc): Likewise. (xcoff_build_loader_section): Split into two functions: one that build the loader section (this function) and one that only size it... (xcoff_size_loader_section): ... (this function). (bfd_xcoff_size_dynamic_sections): Adapt to new ldinfo field. Move the part where the dynamic sections are build to ... (bfd_xcoff_build_dynamic_sections): ... this function. * xcofflink.h: Add bfd_xcoff_build_dynamic_sections prototype. include/ChangeLog: * coff/xcoff.h (struct xcoff_loader_info): Add ldrel_count and libpath fields. ld/ChangeLog: * emultempl/aix.em (_after_allocation): New function.
Diffstat (limited to 'bfd/coff-rs6000.c')
-rw-r--r--bfd/coff-rs6000.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/bfd/coff-rs6000.c b/bfd/coff-rs6000.c
index 97e84a4..8656dfd 100644
--- a/bfd/coff-rs6000.c
+++ b/bfd/coff-rs6000.c
@@ -3881,8 +3881,8 @@ _bfd_xcoff_put_ldsymbol_name (bfd *abfd ATTRIBUTE_UNUSED,
ldinfo->strings = newstrings;
}
- bfd_put_16 (ldinfo->output_bfd, (bfd_vma) (len + 1),
- ldinfo->strings + ldinfo->string_size);
+ ldinfo->strings[ldinfo->string_size] = ((len + 1) >> 8) & 0xff;
+ ldinfo->strings[ldinfo->string_size + 1] = ((len + 1)) & 0xff;
strcpy (ldinfo->strings + ldinfo->string_size + 2, name);
ldsym->_l._l_l._l_zeroes = 0;
ldsym->_l._l_l._l_offset = ldinfo->string_size + 2;