diff options
author | Alan Modra <amodra@gmail.com> | 2002-10-08 09:51:09 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2002-10-08 09:51:09 +0000 |
commit | 51020317eecbada9ce6f0991f85e852c552add37 (patch) | |
tree | c8db2b9b16ccf238abde537236883c718bdb35d4 | |
parent | d8ac458a3860da75ef018cb03cbc40c0c01fee6e (diff) | |
download | gdb-51020317eecbada9ce6f0991f85e852c552add37.zip gdb-51020317eecbada9ce6f0991f85e852c552add37.tar.gz gdb-51020317eecbada9ce6f0991f85e852c552add37.tar.bz2 |
* elf64-ppc.c (edit_opd): Correct test for discarded sections.
-rw-r--r-- | bfd/ChangeLog | 43 | ||||
-rw-r--r-- | bfd/elf64-ppc.c | 19 |
2 files changed, 36 insertions, 26 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 4328d50..5746f81 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,6 +1,11 @@ +2002-10-08 Alan Modra <amodra@bigpond.net.au> + + * elf64-ppc.c (edit_opd): Correct test for discarded sections. + 2002-10-07 Mark Elbrecht <snowball3@softhome.net> - * cofflink.c (mark_relocs): Don't mark relocations in excluded sections. + * cofflink.c (mark_relocs): Don't mark relocations in excluded + sections. 2002-10-07 Alan Modra <amodra@bigpond.net.au> @@ -30,7 +35,7 @@ to correctly adjust got.refcount and plt.refcount. (sh_elf_copy_indirect_symbol): Copy gotplt_refcount across. (sh_elf_check_relocs): Increment gotplt_refcount. - + 2002-10-01 Jakub Jelinek <jakub@redhat.com> * elf32-i386.c (elf_i386_relocate_section): Fix @@ -49,10 +54,10 @@ R_X86_64_DTPOFF32 to st_value + addend in non-code sections. 2002-09-30 Gavin Romig-Koch <gavin@redhat.com> - Ken Raeburn <raeburn@cygnus.com> - Aldy Hernandez <aldyh@redhat.com> - Eric Christopher <echristo@redhat.com> - Richard Sandiford <rsandifo@redhat.com> + Ken Raeburn <raeburn@cygnus.com> + Aldy Hernandez <aldyh@redhat.com> + Eric Christopher <echristo@redhat.com> + Richard Sandiford <rsandifo@redhat.com> * archures.c (bfd_mach_mips4120, bfd_mach_mips5400): New. (bfd_mach_mips5500): New. @@ -254,7 +259,7 @@ * elfcode.h (elf_slurp_reloc_table_from_section): Check for overflow. -2002-09-17 Stan Cox <scox@redhat.com> +2002-09-17 Stan Cox <scox@redhat.com> * elf64-mips.c (mips_elf64_be_swap_reloca_out): Handle type2 and type3. (mips_elf64_final_gp): Don't make up gp value. @@ -336,7 +341,7 @@ 2002-09-10 Michael Snyder <msnyder@redhat.com> * irix-core.c (do_sections, do_sections64): New functions. - (irix_core_core_file_p): Call new functions do_sections, + (irix_core_core_file_p): Call new functions do_sections, do_sections64, depending on corefile (32-bit or 64-bit). 2002-09-09 Richard Henderson <rth@redhat.com> @@ -346,8 +351,8 @@ 2002-09-04 Kevin Buettner <kevinb@redhat.com> - * config.bfd (mips*-*-irix6*): Add new ABI vectors. Make n32 default - vector. + * config.bfd (mips*-*-irix6*): Add new ABI vectors. Make n32 default + vector. 2002-09-02 Nick Clifton <nickc@redhat.com> @@ -358,7 +363,7 @@ (v850_elf_relax_section): Replace caching of external symbols with caching of internal symbols obtained from calling bfd_elf_get_elf_syms(). - Fixup problems with freeing cached allocated memory blocks. + Fixup problems with freeing cached allocated memory blocks. 2002-09-02 Alan Modra <amodra@bigpond.net.au> @@ -527,7 +532,7 @@ * elf32-sh.c (sh_elf_finish_dynamic_sections): Set LSB of DT_INIT value if .init is an SHmedia function. Similarly for DT_FINI. * elf64-sh64.c (sh64_elf64_finish_dynamic_sections): Likewise. - + 2002-08-23 Stephen Clarke <stephen.clarke@superh.com> * elf32-sh.c (sh_elf_size_dynamic_sections): Zero initialize @@ -537,7 +542,7 @@ 2002-08-22 Kaz Kojima <kkojima@rr.iij4u.or.jp> * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Use a simple - byte read when reading the return address register column. + byte read when reading the return address register column. 2002-08-22 Nick Clifton <nickc@redhat.com> @@ -603,9 +608,9 @@ argument declaration. 2002-08-19 Elena Zannoni <ezannoni@redhat.com> - - * archures.c (bfd_mach_ppc_e500): Added. - * bfd-in2.h: Rebuilt. + + * archures.c (bfd_mach_ppc_e500): Added. + * bfd-in2.h: Rebuilt. * cpu-powerpc.c (bfd_powerpc_archs): Added e500. 2002-08-19 Alan Modra <amodra@bigpond.net.au> @@ -615,7 +620,7 @@ 2002-08-17 Andrew Cagney <ac131313@redhat.com> * elf.c (bfd_elf_get_elf_syms): Change type of `esym' to - `bfd_byte'. + `bfd_byte'. 2002-08-17 Stan Cox <scox@redhat.com> @@ -627,7 +632,7 @@ * bfd/elf32-sh.c (sh_elf_gc_mark_hook): For sh64, skip indirect symbols when looking for section referred to by a relocation. * bfd/elf64-sh.c (sh_elf64_gc_mark_hook): Likewise. - + 2002-08-15 Alan Modra <amodra@bigpond.net.au> * elf32-i370.c: Move reloc enum to include/elf/i370.h. @@ -716,7 +721,7 @@ 2002-08-09 Graeme Peterson <gp@qnx.com> - * Makefile.am: Add entries for elf32-ppcqnx.c, and add + * Makefile.am: Add entries for elf32-ppcqnx.c, and add elf32-qnx.h dependency to elfarmqnx-nabi.c and elf32-i386qnx.c. * Makefile.in: Regenerate. * config.bfd: Add support for powerpc{le}-*-nto targets. diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c index bf2a6d7..37b30e6 100644 --- a/bfd/elf64-ppc.c +++ b/bfd/elf64-ppc.c @@ -3675,12 +3675,16 @@ edit_opd (obfd, info) break; } - if (sym_sec->output_section == bfd_abs_section_ptr) - { - /* OK, we've found a function that's excluded from the - link. */ - need_edit = true; - } + /* opd entries are always for functions defined in the + current input bfd. If the symbol isn't defined in the + input bfd, then we won't be using the function in this + bfd; It must be defined in a linkonce section in another + bfd, or is weak. It's also possible that we are + discarding the function due to a linker script /DISCARD/, + which we test for via the output_section. */ + if (sym_sec->owner != ibfd + || sym_sec->output_section == bfd_abs_section_ptr) + need_edit = true; offset += 24; } @@ -3754,7 +3758,8 @@ edit_opd (obfd, info) sym->st_shndx); } - skip = sym_sec->output_section == bfd_abs_section_ptr; + skip = (sym_sec->owner != ibfd + || sym_sec->output_section == bfd_abs_section_ptr); if (skip) { if (h != NULL) |