2003-07-25  H.J. Lu  <hongjiu.lu@intel.com>

	* elf.c (_bfd_elf_new_section_hook): Set the default section
	type to SHT_NULL.
	(elf_fake_sections): Set the section type based on asect->flags
	if it is SHT_NULL. Don't abort on processor specific section
	types.

gas/

2003-07-25  H.J. Lu  <hongjiu.lu@intel.com>

	* config/obj-elf.c (obj_elf_change_section): Update
	elf_section_type and elf_section_flags only when they are
	specified.
This commit is contained in:
H.J. Lu 2003-07-26 01:06:27 +00:00
parent a5de4c570e
commit 3cddba1e54
4 changed files with 31 additions and 13 deletions

View File

@ -1,3 +1,11 @@
2003-07-25 H.J. Lu <hongjiu.lu@intel.com>
* elf.c (_bfd_elf_new_section_hook): Set the default section
type to SHT_NULL.
(elf_fake_sections): Set the section type based on asect->flags
if it is SHT_NULL. Don't abort on processor specific section
types.
2003-07-25 H.J. Lu <hongjiu.lu@intel.com>
* bfd-in2.h: Regenerated.

View File

@ -2293,12 +2293,7 @@ _bfd_elf_new_section_hook (abfd, sec)
sec->used_by_bfd = (PTR) sdata;
}
if ((sec->flags & SEC_ALLOC) != 0
&& (((sec->flags & (SEC_LOAD | SEC_HAS_CONTENTS)) == 0)
|| (sec->flags & SEC_NEVER_LOAD) != 0))
elf_section_type (sec) = SHT_NOBITS;
else
elf_section_type (sec) = SHT_PROGBITS;
elf_section_type (sec) = SHT_NULL;
if (sec->name && _bfd_elf_get_sec_type_attr (abfd, sec->name,
&type, &attr))
{
@ -2544,14 +2539,21 @@ elf_fake_sections (abfd, asect, failedptrarg)
this_hdr->bfd_section = asect;
this_hdr->contents = NULL;
/* If the section type is unspecified, we set it based on
asect->flags. */
if (this_hdr->sh_type == SHT_NULL)
{
if ((asect->flags & SEC_ALLOC) != 0
&& (((asect->flags & (SEC_LOAD | SEC_HAS_CONTENTS)) == 0)
|| (asect->flags & SEC_NEVER_LOAD) != 0))
this_hdr->sh_type = SHT_NOBITS;
else
this_hdr->sh_type = SHT_PROGBITS;
}
switch (this_hdr->sh_type)
{
default:
(*_bfd_error_handler)
(_("%s: Section `%s' has unknown type 0x%0x"),
bfd_get_filename (asect->owner), asect->name,
this_hdr->sh_type);
abort ();
break;
case SHT_STRTAB:

View File

@ -1,3 +1,9 @@
2003-07-25 H.J. Lu <hongjiu.lu@intel.com>
* config/obj-elf.c (obj_elf_change_section): Update
elf_section_type and elf_section_flags only when they are
specified.
2003-07-25 H.J. Lu <hongjiu.lu@intel.com>
* config/obj-elf.c (obj_elf_change_section): Always set section

View File

@ -683,8 +683,10 @@ obj_elf_change_section (name, type, attr, entsize, group_name, linkonce, push)
attr |= def_attr;
}
elf_section_type (sec) = type;
elf_section_flags (sec) = attr;
if (type != SHT_NULL)
elf_section_type (sec) = type;
if (attr != 0)
elf_section_flags (sec) = attr;
/* Convert ELF type and flags to BFD flags. */
flags = (SEC_RELOC