* elf.c (elf_fake_sections): Fix up .tbss sh_size and sh_type.
* ldlang.c (lang_add_section): Don't turn .tbss into normal sections for relocatable link. (lang_size_sections_1): Don't make .tbss zero size for relocatable link.
This commit is contained in:
parent
5f8a318830
commit
704afa601f
|
@ -1,3 +1,7 @@
|
||||||
|
2002-07-30 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
* elf.c (elf_fake_sections): Fix up .tbss sh_size and sh_type.
|
||||||
|
|
||||||
2002-07-30 Alan Modra <amodra@bigpond.net.au>
|
2002-07-30 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
* aoutx.h (some_aout_object_p): Clean up tdata properly on error.
|
* aoutx.h (some_aout_object_p): Clean up tdata properly on error.
|
||||||
|
|
15
bfd/elf.c
15
bfd/elf.c
|
@ -2443,7 +2443,20 @@ elf_fake_sections (abfd, asect, failedptrarg)
|
||||||
if ((asect->flags & SEC_GROUP) == 0 && elf_group_name (asect) != NULL)
|
if ((asect->flags & SEC_GROUP) == 0 && elf_group_name (asect) != NULL)
|
||||||
this_hdr->sh_flags |= SHF_GROUP;
|
this_hdr->sh_flags |= SHF_GROUP;
|
||||||
if ((asect->flags & SEC_THREAD_LOCAL) != 0)
|
if ((asect->flags & SEC_THREAD_LOCAL) != 0)
|
||||||
this_hdr->sh_flags |= SHF_TLS;
|
{
|
||||||
|
this_hdr->sh_flags |= SHF_TLS;
|
||||||
|
if (asect->_raw_size == 0 && (asect->flags & SEC_HAS_CONTENTS) == 0)
|
||||||
|
{
|
||||||
|
struct bfd_link_order *o;
|
||||||
|
|
||||||
|
this_hdr->sh_size = 0;
|
||||||
|
for (o = asect->link_order_head; o != NULL; o = o->next)
|
||||||
|
if (this_hdr->sh_size < o->offset + o->size)
|
||||||
|
this_hdr->sh_size = o->offset + o->size;
|
||||||
|
if (this_hdr->sh_size)
|
||||||
|
this_hdr->sh_type = SHT_NOBITS;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Check for processor-specific section types. */
|
/* Check for processor-specific section types. */
|
||||||
if (bed->elf_backend_fake_sections
|
if (bed->elf_backend_fake_sections
|
||||||
|
|
|
@ -1,3 +1,10 @@
|
||||||
|
2002-07-30 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
* ldlang.c (lang_add_section): Don't turn .tbss into normal sections
|
||||||
|
for relocatable link.
|
||||||
|
(lang_size_sections_1): Don't make .tbss zero size for relocatable
|
||||||
|
link.
|
||||||
|
|
||||||
2002-07-26 Bernd Schmidt <bernds@redhat.com>
|
2002-07-26 Bernd Schmidt <bernds@redhat.com>
|
||||||
|
|
||||||
* emulparams/elf32frv.sh (OTHER_RELOCATING_SECTIONS): Delete.
|
* emulparams/elf32frv.sh (OTHER_RELOCATING_SECTIONS): Delete.
|
||||||
|
|
|
@ -1218,7 +1218,7 @@ lang_add_section (ptr, section, output, file)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* For now make .tbss normal section. */
|
/* For now make .tbss normal section. */
|
||||||
if (flags & SEC_THREAD_LOCAL)
|
if ((flags & SEC_THREAD_LOCAL) && ! link_info.relocateable)
|
||||||
flags |= SEC_LOAD;
|
flags |= SEC_LOAD;
|
||||||
|
|
||||||
section->output_section->flags |= flags;
|
section->output_section->flags |= flags;
|
||||||
|
@ -3055,7 +3055,8 @@ lang_size_sections_1 (s, output_section_statement, prev, fill, dot, relax)
|
||||||
if (bfd_is_abs_section (os->bfd_section))
|
if (bfd_is_abs_section (os->bfd_section))
|
||||||
ASSERT (after == os->bfd_section->vma);
|
ASSERT (after == os->bfd_section->vma);
|
||||||
else if ((os->bfd_section->flags & SEC_HAS_CONTENTS) == 0
|
else if ((os->bfd_section->flags & SEC_HAS_CONTENTS) == 0
|
||||||
&& (os->bfd_section->flags & SEC_THREAD_LOCAL))
|
&& (os->bfd_section->flags & SEC_THREAD_LOCAL)
|
||||||
|
&& ! link_info.relocateable)
|
||||||
os->bfd_section->_raw_size = 0;
|
os->bfd_section->_raw_size = 0;
|
||||||
else
|
else
|
||||||
os->bfd_section->_raw_size =
|
os->bfd_section->_raw_size =
|
||||||
|
|
Loading…
Reference in New Issue