* elfxx-target.h (bfd_elfNN_get_synthetic_symtab): Only define
	if not yet defined.
	* elf64-ppc.c (bfd_elf64_get_synthetic_symtab): Define.
	(synthetic_opd, synthetic_relocatable): New variables.
	(compare_symbols, compare_relocs): New helper routines.
	(ppc64_elf_get_synthetic_symtab): New function.
	* bfd.c (bfd_get_synthetic_symtab): Rename dynsyms argument
	to relsyms.
	* bfd-in2.h: Regenerated.
	* elf.c (_bfd_elf_get_synthetic_symtab): Rename dynsyms argument
	to relsyms.  Return 0 if abfd is relocatable.
binutils/
	* objdump.c (dump_bfd): For relocatable objects, pass syms instead
	of dynsyms to bfd_get_synthetic_symtab.
This commit is contained in:
Jakub Jelinek
2004-08-17 09:07:35 +00:00
parent 7c2c850509
commit 90e3cdf2a9
8 changed files with 426 additions and 8 deletions

View File

@@ -2564,9 +2564,19 @@ dump_bfd (bfd *abfd)
if (dump_dynamic_symtab || dump_dynamic_reloc_info
|| (disassemble && bfd_get_dynamic_symtab_upper_bound (abfd) > 0))
dynsyms = slurp_dynamic_symtab (abfd);
if (disassemble && dynsymcount > 0)
if (disassemble)
{
synthcount = bfd_get_synthetic_symtab (abfd, dynsyms, &synthsyms);
synthcount = 0;
if (bfd_get_file_flags (abfd) & (DYNAMIC | EXEC_P))
{
if (dynsymcount > 0)
synthcount = bfd_get_synthetic_symtab (abfd, dynsyms, &synthsyms);
}
else
{
if (symcount > 0)
synthcount = bfd_get_synthetic_symtab (abfd, syms, &synthsyms);
}
if (synthcount < 0) synthcount = 0;
}