From 7a79a000c157a9dd4560ddbc71565cb3bef3520a Mon Sep 17 00:00:00 2001 From: Thiemo Seufer Date: Fri, 27 Jun 2003 01:16:30 +0000 Subject: [PATCH] * elfxx-mips.c (_bfd_mips_elf_fake_sections): Remove non-default relocation header setup. * binutils-all/readelf.ss-tmips: Adjust symbol indices. --- bfd/ChangeLog | 5 ++++ bfd/elfxx-mips.c | 29 ++++-------------------- binutils/ChangeLog | 4 ++++ binutils/testsuite/binutils-all/readelf.ss-tmips | 12 +++++----- 4 files changed, 20 insertions(+), 30 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 47c0b40..4891435 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2003-06-27 Thiemo Seufer + + * elfxx-mips.c (_bfd_mips_elf_fake_sections): Remove non-default + relocation header setup. + 2003-06-25 Alan Modra * elf32-ppc.c (ppc_elf_howto_table): Remove unnecessary cast. diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c index 3e85fc3..96f80ec 100644 --- a/bfd/elfxx-mips.c +++ b/bfd/elfxx-mips.c @@ -4639,30 +4639,11 @@ _bfd_mips_elf_fake_sections (abfd, hdr, sec) hdr->sh_entsize = 8; } - /* The generic elf_fake_sections will set up REL_HDR using the - default kind of relocations. But, we may actually need both - kinds of relocations, so we set up the second header here. - - This is not necessary for the O32 ABI since that only uses Elf32_Rel - relocations (cf. System V ABI, MIPS RISC Processor Supplement, - 3rd Edition, p. 4-17). It breaks the IRIX 5/6 32-bit ld, since one - of the resulting empty .rela.
sections starts with - sh_offset == object size, and ld doesn't allow that. While the check - is arguably bogus for empty or SHT_NOBITS sections, it can easily be - avoided by not emitting those useless sections in the first place. */ - if (! SGI_COMPAT (abfd) && ! NEWABI_P(abfd) - && (sec->flags & SEC_RELOC) != 0) - { - struct bfd_elf_section_data *esd; - bfd_size_type amt = sizeof (Elf_Internal_Shdr); - - esd = elf_section_data (sec); - BFD_ASSERT (esd->rel_hdr2 == NULL); - esd->rel_hdr2 = (Elf_Internal_Shdr *) bfd_zalloc (abfd, amt); - if (!esd->rel_hdr2) - return FALSE; - _bfd_elf_init_reloc_shdr (abfd, esd->rel_hdr2, sec, !sec->use_rela_p); - } + /* The generic elf_fake_sections will set up REL_HDR using the default + kind of relocations. We used to set up a second header for the + non-default kind of relocations here, but only NewABI would use + these, and the IRIX ld doesn't like resulting empty RELA sections. + Thus we create those header only on demand now. */ return TRUE; } diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 5b01202..ae11596 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,7 @@ +2003-06-27 Thiemo Seufer + + * binutils-all/readelf.ss-tmips: Adjust symbol indices. + 2003-06-26 Roland McGrath * readelf.c (loadaddr): Variable removed. diff --git a/binutils/testsuite/binutils-all/readelf.ss-tmips b/binutils/testsuite/binutils-all/readelf.ss-tmips index da2a75b..4f2fba2 100644 --- a/binutils/testsuite/binutils-all/readelf.ss-tmips +++ b/binutils/testsuite/binutils-all/readelf.ss-tmips @@ -3,13 +3,13 @@ Symbol table '.symtab' contains 12 entries: Num: Value Size Type Bind Vis Ndx Name 0: 00000000 0 NOTYPE LOCAL DEFAULT UND 1: 00000000 0 SECTION LOCAL DEFAULT 1 - 2: 00000000 0 SECTION LOCAL DEFAULT 4 - 3: 00000000 0 SECTION LOCAL DEFAULT 5 + 2: 00000000 0 SECTION LOCAL DEFAULT 3 + 3: 00000000 0 SECTION LOCAL DEFAULT 4 4: 00000000 0 NOTYPE LOCAL DEFAULT 1 static_text_symbol - 5: 00000000 0 NOTYPE LOCAL DEFAULT 4 static_data_symbol - 6: 00000000 0 SECTION LOCAL DEFAULT 6 - 7: 00000000 0 SECTION LOCAL DEFAULT 7 + 5: 00000000 0 NOTYPE LOCAL DEFAULT 3 static_data_symbol + 6: 00000000 0 SECTION LOCAL DEFAULT 5 + 7: 00000000 0 SECTION LOCAL DEFAULT 6 8: 00000000 0 OBJECT GLOBAL DEFAULT 1 text_symbol 9: 00000000 0 NOTYPE GLOBAL DEFAULT UND external_symbol - 10: 00000000 0 OBJECT GLOBAL DEFAULT 4 data_symbol + 10: 00000000 0 OBJECT GLOBAL DEFAULT 3 data_symbol 11: 00000004 4 OBJECT GLOBAL DEFAULT (PRC|COM) common_symbol -- 2.7.4