* elf64-alpha.c (elf64_alpha_section_flags): New.

(elf64_alpha_fake_sections): Map SEC_SMALL_DATA to SHF_ALPHA_GPREL.
This commit is contained in:
Richard Henderson 2001-09-11 18:26:27 +00:00
parent d61a78a7af
commit 204692d7e6
2 changed files with 24 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2001-09-11 Richard Henderson <rth@redhat.com>
* elf64-alpha.c (elf64_alpha_section_flags): New.
(elf64_alpha_fake_sections): Map SEC_SMALL_DATA to SHF_ALPHA_GPREL.
2001-09-11 Richard Henderson <rth@redhat.com>
* elf64-alpha.c (elf64_alpha_relocate_section): Do not

View File

@ -74,6 +74,8 @@ static boolean elf64_alpha_object_p
PARAMS((bfd *));
static boolean elf64_alpha_section_from_shdr
PARAMS((bfd *, Elf64_Internal_Shdr *, char *));
static boolean elf64_alpha_section_flags
PARAMS((flagword *, Elf64_Internal_Shdr *));
static boolean elf64_alpha_fake_sections
PARAMS((bfd *, Elf64_Internal_Shdr *, asection *));
static boolean elf64_alpha_create_got_section
@ -1641,6 +1643,19 @@ elf64_alpha_section_from_shdr (abfd, hdr, name)
return true;
}
/* Convert Alpha specific section flags to bfd internal section flags. */
static boolean
elf64_alpha_section_flags (flags, hdr)
flagword *flags;
Elf64_Internal_Shdr *hdr;
{
if (hdr->sh_flags & SHF_ALPHA_GPREL)
*flags |= SEC_SMALL_DATA;
return true;
}
/* Set the correct type for an Alpha ELF section. We do this by the
section name, which is a hack, but ought to work. */
@ -1664,7 +1679,8 @@ elf64_alpha_fake_sections (abfd, hdr, sec)
else
hdr->sh_entsize = 1;
}
else if (strcmp (name, ".sdata") == 0
else if ((sec->flags & SEC_SMALL_DATA)
|| strcmp (name, ".sdata") == 0
|| strcmp (name, ".sbss") == 0
|| strcmp (name, ".lit4") == 0
|| strcmp (name, ".lit8") == 0)
@ -4220,6 +4236,8 @@ const struct elf_size_info alpha_elf_size_info =
#define elf_backend_section_from_shdr \
elf64_alpha_section_from_shdr
#define elf_backend_section_flags \
elf64_alpha_section_flags
#define elf_backend_fake_sections \
elf64_alpha_fake_sections