mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-01-18 12:24:38 +08:00
bfd/
2004-05-26 H.J. Lu <hongjiu.lu@intel.com> * elf.c (_bfd_elf_make_section_from_shdr): Undo the last change. ld/ 2004-05-26 H.J. Lu <hongjiu.lu@intel.com> * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Clear SEC_EXCLUDE on non-SEC_DEBUGGING sections for relocatable link. * ldlang.c (lang_add_section): Likewise.
This commit is contained in:
parent
9bb351fd9c
commit
b309625038
@ -1,3 +1,8 @@
|
||||
2004-05-26 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* elf.c (_bfd_elf_make_section_from_shdr): Undo the last
|
||||
change.
|
||||
|
||||
2004-05-27 Alexandre Oliva <aoliva@redhat.com>
|
||||
|
||||
* elf-m10300.c (mn10300_elf_relax_section): Don't test isym within
|
||||
|
@ -677,7 +677,7 @@ _bfd_elf_make_section_from_shdr (bfd *abfd,
|
||||
if (hdr->sh_type != SHT_NOBITS)
|
||||
flags |= SEC_HAS_CONTENTS;
|
||||
if (hdr->sh_type == SHT_GROUP)
|
||||
flags |= SEC_GROUP;
|
||||
flags |= SEC_GROUP | SEC_EXCLUDE;
|
||||
if ((hdr->sh_flags & SHF_ALLOC) != 0)
|
||||
{
|
||||
flags |= SEC_ALLOC;
|
||||
|
@ -1,3 +1,9 @@
|
||||
2004-05-26 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Clear
|
||||
SEC_EXCLUDE on non-SEC_DEBUGGING sections for relocatable link.
|
||||
* ldlang.c (lang_add_section): Likewise.
|
||||
|
||||
2004-05-26 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* ldlang.c (lang_add_section): Set SEC_EXCLUDE for SEC_GROUP
|
||||
|
@ -1182,9 +1182,10 @@ gld${EMULATION_NAME}_place_orphan (lang_input_statement_type *file, asection *s)
|
||||
#define HAVE_SECTION(hold, name) \
|
||||
(hold.os != NULL || (hold.os = lang_output_section_find (name)) != NULL)
|
||||
|
||||
if (((s->flags & (SEC_EXCLUDE | SEC_GROUP)) != 0 && !link_info.relocatable)
|
||||
|| ((s->flags & (SEC_EXCLUDE | SEC_DEBUGGING))
|
||||
== (SEC_EXCLUDE | SEC_DEBUGGING)))
|
||||
if (link_info.relocatable && (s->flags & SEC_DEBUGGING) == 0)
|
||||
s->flags &= ~SEC_EXCLUDE;
|
||||
|
||||
if ((s->flags & SEC_EXCLUDE) != 0)
|
||||
{
|
||||
if (s->output_section == NULL)
|
||||
s->output_section = bfd_abs_section_ptr;
|
||||
|
29
ld/ldlang.c
29
ld/ldlang.c
@ -1094,29 +1094,20 @@ lang_add_section (lang_statement_list_type *ptr,
|
||||
|
||||
flags = bfd_get_section_flags (section->owner, section);
|
||||
|
||||
discard = FALSE;
|
||||
|
||||
if (link_info.relocatable)
|
||||
/* SEC_EXCLUDE is ignored when doing a relocatable link, except in
|
||||
the special case of debug info. (See bfd/stabs.c) */
|
||||
if (link_info.relocatable && (flags & SEC_DEBUGGING) == 0)
|
||||
{
|
||||
/* SEC_EXCLUDE is ignored when doing a relocatable link,
|
||||
except in the special case of debug info. (See bfd/stabs.c) */
|
||||
if ((flags & SEC_DEBUGGING) == 0)
|
||||
flags &= ~SEC_EXCLUDE;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* SEC_GROUP sections should be dropped on a final link. */
|
||||
if ((flags & SEC_GROUP) != 0)
|
||||
flags |= SEC_EXCLUDE;
|
||||
}
|
||||
flags &= ~SEC_EXCLUDE;
|
||||
|
||||
/* Write SEC_EXCLUDE flag back, to simplify later linker code. */
|
||||
if (section->owner != NULL)
|
||||
bfd_set_section_flags (section->owner, section, flags);
|
||||
/* Write the modified flag back, to simplify later linker
|
||||
code. */
|
||||
if (section->owner != NULL)
|
||||
bfd_set_section_flags (section->owner, section, flags);
|
||||
}
|
||||
|
||||
/* Discard sections marked with SEC_EXCLUDE. */
|
||||
if ((flags & SEC_EXCLUDE) != 0)
|
||||
discard = TRUE;
|
||||
discard = (flags & SEC_EXCLUDE) != 0;
|
||||
|
||||
/* Discard input sections which are assigned to a section named
|
||||
DISCARD_SECTION_NAME. */
|
||||
|
Loading…
Reference in New Issue
Block a user