* elf32-sh.c (sh_elf_create_dynamic_sections): Don't create .rela
section for bss type sections, except for .rela.bss. * elf-m10300.c (_bfd_mn10300_elf_create_dynamic_sections): Likewise. * elf32-cr16.c (_bfd_cr16_elf_create_dynamic_sections): Likewise. * elf32-lm32.c (lm32_elf_create_dynamic_sections): Likewise. * elf32-m32r.c (m32r_elf_create_dynamic_sections): Likewise. * elf64-sh64.c (sh64_elf64_create_dynamic_sections): Likewise.
This commit is contained in:
parent
b9e10fe0cc
commit
66e17d7f53
|
@ -1,3 +1,13 @@
|
|||
2012-06-29 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* elf32-sh.c (sh_elf_create_dynamic_sections): Don't create .rela
|
||||
section for bss type sections, except for .rela.bss.
|
||||
* elf-m10300.c (_bfd_mn10300_elf_create_dynamic_sections): Likewise.
|
||||
* elf32-cr16.c (_bfd_cr16_elf_create_dynamic_sections): Likewise.
|
||||
* elf32-lm32.c (lm32_elf_create_dynamic_sections): Likewise.
|
||||
* elf32-m32r.c (m32r_elf_create_dynamic_sections): Likewise.
|
||||
* elf64-sh64.c (sh64_elf64_create_dynamic_sections): Likewise.
|
||||
|
||||
2012-06-28 Roland McGrath <mcgrathr@google.com>
|
||||
|
||||
* elf32-arm.c (elf32_arm_populate_plt_entry): Use int32_t for
|
||||
|
|
|
@ -4843,32 +4843,6 @@ _bfd_mn10300_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
|
|||
if (! _bfd_mn10300_elf_create_got_section (abfd, info))
|
||||
return FALSE;
|
||||
|
||||
{
|
||||
const char * secname;
|
||||
char * relname;
|
||||
flagword secflags;
|
||||
asection * sec;
|
||||
|
||||
for (sec = abfd->sections; sec; sec = sec->next)
|
||||
{
|
||||
secflags = bfd_get_section_flags (abfd, sec);
|
||||
if ((secflags & (SEC_DATA | SEC_LINKER_CREATED))
|
||||
|| ((secflags & SEC_HAS_CONTENTS) != SEC_HAS_CONTENTS))
|
||||
continue;
|
||||
|
||||
secname = bfd_get_section_name (abfd, sec);
|
||||
relname = bfd_malloc (strlen (secname) + 6);
|
||||
strcpy (relname, ".rela");
|
||||
strcat (relname, secname);
|
||||
|
||||
s = bfd_make_section_with_flags (abfd, relname,
|
||||
flags | SEC_READONLY);
|
||||
if (s == NULL
|
||||
|| ! bfd_set_section_alignment (abfd, s, ptralign))
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
if (bed->want_dynbss)
|
||||
{
|
||||
/* The .dynbss section is a place to put symbols which are defined
|
||||
|
|
|
@ -2289,32 +2289,6 @@ _bfd_cr16_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
|
|||
if (! _bfd_cr16_elf_create_got_section (abfd, info))
|
||||
return FALSE;
|
||||
|
||||
{
|
||||
const char * secname;
|
||||
char * relname;
|
||||
flagword secflags;
|
||||
asection * sec;
|
||||
|
||||
for (sec = abfd->sections; sec; sec = sec->next)
|
||||
{
|
||||
secflags = bfd_get_section_flags (abfd, sec);
|
||||
if ((secflags & (SEC_DATA | SEC_LINKER_CREATED))
|
||||
|| ((secflags & SEC_HAS_CONTENTS) != SEC_HAS_CONTENTS))
|
||||
continue;
|
||||
|
||||
secname = bfd_get_section_name (abfd, sec);
|
||||
relname = (char *) bfd_malloc (strlen (secname) + 6);
|
||||
strcpy (relname, ".rela");
|
||||
strcat (relname, secname);
|
||||
|
||||
s = bfd_make_section_with_flags (abfd, relname,
|
||||
flags | SEC_READONLY);
|
||||
if (s == NULL
|
||||
|| ! bfd_set_section_alignment (abfd, s, ptralign))
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
if (bed->want_dynbss)
|
||||
{
|
||||
/* The .dynbss section is a place to put symbols which are defined
|
||||
|
|
|
@ -2523,32 +2523,6 @@ lm32_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
|
|||
&& ! create_got_section (abfd, info))
|
||||
return FALSE;
|
||||
|
||||
{
|
||||
const char *secname;
|
||||
char *relname;
|
||||
flagword secflags;
|
||||
asection *sec;
|
||||
|
||||
for (sec = abfd->sections; sec; sec = sec->next)
|
||||
{
|
||||
secflags = bfd_get_section_flags (abfd, sec);
|
||||
if ((secflags & (SEC_DATA | SEC_LINKER_CREATED))
|
||||
|| ((secflags & SEC_HAS_CONTENTS) != SEC_HAS_CONTENTS))
|
||||
continue;
|
||||
secname = bfd_get_section_name (abfd, sec);
|
||||
relname = bfd_malloc ((bfd_size_type) strlen (secname) + 6);
|
||||
strcpy (relname, ".rela");
|
||||
strcat (relname, secname);
|
||||
if (bfd_get_section_by_name (abfd, secname))
|
||||
continue;
|
||||
s = bfd_make_section_with_flags (abfd, relname,
|
||||
flags | SEC_READONLY);
|
||||
if (s == NULL
|
||||
|| ! bfd_set_section_alignment (abfd, s, ptralign))
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
if (bed->want_dynbss)
|
||||
{
|
||||
/* The .dynbss section is a place to put symbols which are defined
|
||||
|
|
|
@ -1701,32 +1701,6 @@ m32r_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
|
|||
&& ! create_got_section (abfd, info))
|
||||
return FALSE;
|
||||
|
||||
{
|
||||
const char *secname;
|
||||
char *relname;
|
||||
flagword secflags;
|
||||
asection *sec;
|
||||
|
||||
for (sec = abfd->sections; sec; sec = sec->next)
|
||||
{
|
||||
secflags = bfd_get_section_flags (abfd, sec);
|
||||
if ((secflags & (SEC_DATA | SEC_LINKER_CREATED))
|
||||
|| ((secflags & SEC_HAS_CONTENTS) != SEC_HAS_CONTENTS))
|
||||
continue;
|
||||
secname = bfd_get_section_name (abfd, sec);
|
||||
relname = bfd_malloc ((bfd_size_type) strlen (secname) + 6);
|
||||
strcpy (relname, ".rela");
|
||||
strcat (relname, secname);
|
||||
if (bfd_get_section_by_name (abfd, secname))
|
||||
continue;
|
||||
s = bfd_make_section_with_flags (abfd, relname,
|
||||
flags | SEC_READONLY);
|
||||
if (s == NULL
|
||||
|| ! bfd_set_section_alignment (abfd, s, ptralign))
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
if (bed->want_dynbss)
|
||||
{
|
||||
/* The .dynbss section is a place to put symbols which are defined
|
||||
|
|
|
@ -2749,32 +2749,6 @@ sh_elf_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
|
|||
&& !create_got_section (abfd, info))
|
||||
return FALSE;
|
||||
|
||||
{
|
||||
const char *secname;
|
||||
char *relname;
|
||||
flagword secflags;
|
||||
asection *sec;
|
||||
|
||||
for (sec = abfd->sections; sec; sec = sec->next)
|
||||
{
|
||||
secflags = bfd_get_section_flags (abfd, sec);
|
||||
if ((secflags & (SEC_DATA | SEC_LINKER_CREATED))
|
||||
|| ((secflags & SEC_HAS_CONTENTS) != SEC_HAS_CONTENTS))
|
||||
continue;
|
||||
secname = bfd_get_section_name (abfd, sec);
|
||||
relname = (char *) bfd_malloc ((bfd_size_type) strlen (secname) + 6);
|
||||
strcpy (relname, ".rela");
|
||||
strcat (relname, secname);
|
||||
if (bfd_get_section_by_name (abfd, secname))
|
||||
continue;
|
||||
s = bfd_make_section_with_flags (abfd, relname,
|
||||
flags | SEC_READONLY);
|
||||
if (s == NULL
|
||||
|| ! bfd_set_section_alignment (abfd, s, ptralign))
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
if (bed->want_dynbss)
|
||||
{
|
||||
/* The .dynbss section is a place to put symbols which are defined
|
||||
|
|
|
@ -3196,30 +3196,6 @@ sh64_elf64_create_dynamic_sections (bfd *abfd, struct bfd_link_info *info)
|
|||
if (! _bfd_elf_create_got_section (abfd, info))
|
||||
return FALSE;
|
||||
|
||||
{
|
||||
const char *secname;
|
||||
char *relname;
|
||||
flagword secflags;
|
||||
asection *sec;
|
||||
|
||||
for (sec = abfd->sections; sec; sec = sec->next)
|
||||
{
|
||||
secflags = bfd_get_section_flags (abfd, sec);
|
||||
if ((secflags & (SEC_DATA | SEC_LINKER_CREATED))
|
||||
|| ((secflags & SEC_HAS_CONTENTS) != SEC_HAS_CONTENTS))
|
||||
continue;
|
||||
secname = bfd_get_section_name (abfd, sec);
|
||||
relname = (char *) bfd_malloc (strlen (secname) + 6);
|
||||
strcpy (relname, ".rela");
|
||||
strcat (relname, secname);
|
||||
s = bfd_make_section_with_flags (abfd, relname,
|
||||
flags | SEC_READONLY);
|
||||
if (s == NULL
|
||||
|| ! bfd_set_section_alignment (abfd, s, ptralign))
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
if (bed->want_dynbss)
|
||||
{
|
||||
/* The .dynbss section is a place to put symbols which are defined
|
||||
|
|
Loading…
Reference in New Issue