This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[PATCH] SPARC/BFD: Don't crash on discarded GOT
- From: "Maciej W. Rozycki" <macro at linux-mips dot org>
- To: binutils at sourceware dot org
- Cc: nick clifton <nickc at redhat dot com>, "David S. Miller" <davem at davemloft dot net>
- Date: Sat, 27 Jul 2013 23:50:41 +0100 (BST)
- Subject: [PATCH] SPARC/BFD: Don't crash on discarded GOT
- References: <alpine dot LFD dot 2 dot 03 dot 1305200339380 dot 10753 at linux-mips dot org> <51B207B2 dot 30702 at redhat dot com> <alpine dot LFD dot 2 dot 03 dot 1307272329140 dot 3015 at linux-mips dot org>
Hi,
This change fixes a linker crash where GOT is produced but not copied to
output, e.g. because of the .got.plt input section being discarded through
the /DISCARD/ linker script keyword -- not a particularly useful use case,
but the linker shouldn't crash regardless.
OK to apply?
2013-07-27 Maciej W. Rozycki <macro@linux-mips.org>
bfd/
* elf32-sparc.c (_bfd_sparc_elf_finish_dynamic_sections): Don't
set GOT's entry size if there is no ELF section data.
Maciej
binutils-2.23.52-20130506-sparc-finish-dynamic.patch
Index: binutils/bfd/elfxx-sparc.c
===================================================================
--- binutils.orig/bfd/elfxx-sparc.c
+++ binutils/bfd/elfxx-sparc.c
@@ -4793,9 +4793,10 @@ _bfd_sparc_elf_finish_dynamic_sections (
}
}
- elf_section_data (splt->output_section)->this_hdr.sh_entsize
- = (htab->is_vxworks || !ABI_64_P (output_bfd))
- ? 0 : htab->plt_entry_size;
+ if (elf_section_data (splt->output_section) != NULL)
+ elf_section_data (splt->output_section)->this_hdr.sh_entsize
+ = ((htab->is_vxworks || !ABI_64_P (output_bfd))
+ ? 0 : htab->plt_entry_size);
}
/* Set the first entry in the global offset table to the address of