diff options
author | Alan Modra <amodra@gmail.com> | 2002-11-04 13:20:56 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2002-11-04 13:20:56 +0000 |
commit | c97e73ddb6b22ae6c144be204b91cef07525acfd (patch) | |
tree | 712ebbdee0bdbee914dc15de13e1637264474831 /bfd/elf.c | |
parent | f1ef08cb0196f806d980f98663c3d924f43eba28 (diff) | |
download | ppe42-binutils-c97e73ddb6b22ae6c144be204b91cef07525acfd.tar.gz ppe42-binutils-c97e73ddb6b22ae6c144be204b91cef07525acfd.zip |
* elflink.h (struct elf_final_link_info): Add shndxbuf_size.
(elf_bfd_final_link): Don't bother zeroing symtab_hdr fields.
Set up a larger symshndxbuf, and write it out. Free it on
exit rather than freeing symbuf twice. Correct section index
on output section symbol loop.
(elf_link_output_sym): Accumulate symbol extension section
indices, reallocating symshndxbuf rather than writing it out.
(elf_link_flush_output_syms): Don't flush symshndxbuf.
* elf.c (assign_section_numbers): Init i_shdrp to all zero.
Use bfd_zalloc to clear i_shdrp[0] too.
Diffstat (limited to 'bfd/elf.c')
-rw-r--r-- | bfd/elf.c | 5 |
1 files changed, 2 insertions, 3 deletions
@@ -2671,18 +2671,17 @@ assign_section_numbers (abfd) /* Set up the list of section header pointers, in agreement with the indices. */ amt = section_number * sizeof (Elf_Internal_Shdr *); - i_shdrp = (Elf_Internal_Shdr **) bfd_alloc (abfd, amt); + i_shdrp = (Elf_Internal_Shdr **) bfd_zalloc (abfd, amt); if (i_shdrp == NULL) return false; amt = sizeof (Elf_Internal_Shdr); - i_shdrp[0] = (Elf_Internal_Shdr *) bfd_alloc (abfd, amt); + i_shdrp[0] = (Elf_Internal_Shdr *) bfd_zalloc (abfd, amt); if (i_shdrp[0] == NULL) { bfd_release (abfd, i_shdrp); return false; } - memset (i_shdrp[0], 0, sizeof (Elf_Internal_Shdr)); elf_elfsections (abfd) = i_shdrp; |