summaryrefslogtreecommitdiffstats
path: root/bfd/elf.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2002-11-04 13:20:56 +0000
committerAlan Modra <amodra@gmail.com>2002-11-04 13:20:56 +0000
commitc97e73ddb6b22ae6c144be204b91cef07525acfd (patch)
tree712ebbdee0bdbee914dc15de13e1637264474831 /bfd/elf.c
parentf1ef08cb0196f806d980f98663c3d924f43eba28 (diff)
downloadppe42-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.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/bfd/elf.c b/bfd/elf.c
index f184c9fb8e..4366c042b8 100644
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -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;
OpenPOWER on IntegriCloud