From 07583a1c1eea09715cc20bb56dd602cacba927a5 Mon Sep 17 00:00:00 2001 From: drow Date: Thu, 17 Jun 2004 02:27:09 +0000 Subject: [PATCH] * elf32-ppc.c (ppc_elf_create_linker_section): Create symbols in the pre-existing section. --- bfd/ChangeLog | 5 +++++ bfd/elf32-ppc.c | 8 +++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index a70d480b74..0d57d0d055 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2004-06-16 Daniel Jacobowitz + + * elf32-ppc.c (ppc_elf_create_linker_section): Create symbols in + the pre-existing section. + 2004-06-15 Alan Modra * section.c (struct sec): Remove usused flags. Reorganize a little. diff --git a/bfd/elf32-ppc.c b/bfd/elf32-ppc.c index 980dcb9996..be052701dd 100644 --- a/bfd/elf32-ppc.c +++ b/bfd/elf32-ppc.c @@ -2593,7 +2593,7 @@ ppc_elf_create_linker_section (bfd *abfd, { elf_linker_section_t *lsect; struct ppc_elf_link_hash_table *htab = ppc_elf_hash_table (info); - asection *s; + asection *s, *sym_sec; bfd_size_type amt; flagword flags; const char *name; @@ -2642,13 +2642,15 @@ ppc_elf_create_linker_section (bfd *abfd, lsect->sym_offset = sym_offset; /* See if the sections already exist. */ - s = bfd_get_section_by_name (htab->elf.dynobj, name); + sym_sec = s = bfd_get_section_by_name (htab->elf.dynobj, name); if (s == NULL || (s->flags & flags) != flags) { s = bfd_make_section_anyway (htab->elf.dynobj, name); if (s == NULL || !bfd_set_section_flags (htab->elf.dynobj, s, flags)) return NULL; + if (sym_sec == NULL) + sym_sec = s; } lsect->section = s; @@ -2676,7 +2678,7 @@ ppc_elf_create_linker_section (bfd *abfd, if ((bh == NULL || bh->type == bfd_link_hash_undefined) && !(_bfd_generic_link_add_one_symbol - (info, abfd, sym_name, BSF_GLOBAL, s, sym_offset, NULL, + (info, abfd, sym_name, BSF_GLOBAL, sym_sec, sym_offset, NULL, FALSE, get_elf_backend_data (abfd)->collect, &bh))) return NULL; h = (struct elf_link_hash_entry *) bh; -- 2.11.0