mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-23 03:22:56 +08:00
(_place_orphan): Use an already existing section name if that section does not
have any flags set.
This commit is contained in:
@ -1,3 +1,8 @@
|
|||||||
|
2004-07-23 Nick Clifton <nickc@redhat.com>
|
||||||
|
|
||||||
|
* emultempl/elf32.em (_place_orphan): Use an already existing
|
||||||
|
section name if that section does not have any flags set.
|
||||||
|
|
||||||
2004-07-21 H.J. Lu <hongjiu.lu@intel.com>
|
2004-07-21 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
* ldlang.c (already_linked_hash_entry): Removed.
|
* ldlang.c (already_linked_hash_entry): Removed.
|
||||||
|
@ -1175,8 +1175,10 @@ gld${EMULATION_NAME}_place_orphan (lang_input_statement_type *file, asection *s)
|
|||||||
lang_statement_union_type **os_tail;
|
lang_statement_union_type **os_tail;
|
||||||
etree_type *load_base;
|
etree_type *load_base;
|
||||||
int isdyn = 0;
|
int isdyn = 0;
|
||||||
|
asection *sec;
|
||||||
|
|
||||||
secname = bfd_get_section_name (s->owner, s);
|
secname = bfd_get_section_name (s->owner, s);
|
||||||
|
|
||||||
if (! link_info.relocatable
|
if (! link_info.relocatable
|
||||||
&& link_info.combreloc
|
&& link_info.combreloc
|
||||||
&& (s->flags & SEC_ALLOC)
|
&& (s->flags & SEC_ALLOC)
|
||||||
@ -1260,8 +1262,12 @@ gld${EMULATION_NAME}_place_orphan (lang_input_statement_type *file, asection *s)
|
|||||||
|
|
||||||
/* Choose a unique name for the section. This will be needed if the
|
/* Choose a unique name for the section. This will be needed if the
|
||||||
same section name appears in the input file with different
|
same section name appears in the input file with different
|
||||||
loadable or allocatable characteristics. */
|
loadable or allocatable characteristics. But if the section
|
||||||
if (bfd_get_section_by_name (output_bfd, secname) != NULL)
|
already exists but does not have any flags set, then it has been
|
||||||
|
been created by the linker, probably as a result of a --section-start
|
||||||
|
command line switch. */
|
||||||
|
if ((sec = bfd_get_section_by_name (output_bfd, secname)) != NULL
|
||||||
|
&& bfd_get_section_flags (output_bfd, sec) != 0)
|
||||||
{
|
{
|
||||||
secname = bfd_get_unique_section_name (output_bfd, secname, &count);
|
secname = bfd_get_unique_section_name (output_bfd, secname, &count);
|
||||||
if (secname == NULL)
|
if (secname == NULL)
|
||||||
|
@ -612,6 +612,7 @@ lang_output_section_find_1 (const char *const name, int constraint)
|
|||||||
for (u = lang_output_section_statement.head; u != NULL; u = lookup->next)
|
for (u = lang_output_section_statement.head; u != NULL; u = lookup->next)
|
||||||
{
|
{
|
||||||
lookup = &u->output_section_statement;
|
lookup = &u->output_section_statement;
|
||||||
|
|
||||||
if (strcmp (name, lookup->name) == 0
|
if (strcmp (name, lookup->name) == 0
|
||||||
&& lookup->constraint != -1
|
&& lookup->constraint != -1
|
||||||
&& (constraint == 0 || constraint == lookup->constraint))
|
&& (constraint == 0 || constraint == lookup->constraint))
|
||||||
|
Reference in New Issue
Block a user