Fix place_orphan crash.
This commit is contained in:
parent
967110cb4f
commit
f998903041
2 changed files with 14 additions and 2 deletions
|
@ -1,3 +1,10 @@
|
|||
2000-09-06 Alan Modra <alan@linuxcare.com.au>
|
||||
|
||||
* emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Don't
|
||||
try shuffling sections when the orphan happens to be the place
|
||||
holder. Keep count of unique section names generated so we speed
|
||||
the search for a new name.
|
||||
|
||||
2000-09-06 Alexandre Oliva <aoliva@redhat.com>
|
||||
|
||||
* configure: Rebuilt with new libtool.m4.
|
||||
|
|
|
@ -1008,6 +1008,7 @@ gld${EMULATION_NAME}_place_orphan (file, s)
|
|||
static struct orphan_save hold_bss;
|
||||
static struct orphan_save hold_rel;
|
||||
static struct orphan_save hold_interp;
|
||||
static int count = 1;
|
||||
struct orphan_save *place;
|
||||
lang_statement_list_type *old = NULL;
|
||||
lang_statement_list_type add;
|
||||
|
@ -1092,7 +1093,9 @@ gld${EMULATION_NAME}_place_orphan (file, s)
|
|||
loadable or allocateable characteristics. */
|
||||
outsecname = secname;
|
||||
if (bfd_get_section_by_name (output_bfd, outsecname) != NULL)
|
||||
outsecname = bfd_get_unique_section_name (output_bfd, outsecname, NULL);
|
||||
outsecname = bfd_get_unique_section_name (output_bfd,
|
||||
outsecname,
|
||||
&count);
|
||||
|
||||
if (place != NULL)
|
||||
{
|
||||
|
@ -1154,7 +1157,9 @@ gld${EMULATION_NAME}_place_orphan (file, s)
|
|||
stat_ptr = old;
|
||||
|
||||
snew = os->bfd_section;
|
||||
if (place->os->bfd_section != NULL || place->section != NULL)
|
||||
if (place->section != NULL
|
||||
|| (place->os->bfd_section != NULL
|
||||
&& place->os->bfd_section != snew))
|
||||
{
|
||||
/* Shuffle the section to make the output file look neater. */
|
||||
if (place->section == NULL)
|
||||
|
|
Loading…
Reference in a new issue