2004-04-27 H.J. Lu <hongjiu.lu@intel.com>

* elf32-sh64.c (elf_backend_section_flags): New. Defined.
	(sh64_elf_set_mach_from_flags): Remove the kludge for .cranges
	section.
	(sh64_elf_section_flags): New. Set SEC_DEBUGGING for .cranges
	section.
This commit is contained in:
H.J. Lu 2004-04-27 16:06:07 +00:00
parent a95b5cf9a6
commit beb8df56a1
2 changed files with 20 additions and 11 deletions

View File

@ -1,3 +1,11 @@
2004-04-27 H.J. Lu <hongjiu.lu@intel.com>
* elf32-sh64.c (elf_backend_section_flags): New. Defined.
(sh64_elf_set_mach_from_flags): Remove the kludge for .cranges
section.
(sh64_elf_section_flags): New. Set SEC_DEBUGGING for .cranges
section.
2004-04-27 Alan Modra <amodra@bigpond.net.au> 2004-04-27 Alan Modra <amodra@bigpond.net.au>
* elf64-alpha.c (elf64_alpha_read_ecoff_info): Don't assign * elf64-alpha.c (elf64_alpha_read_ecoff_info): Don't assign

View File

@ -89,6 +89,7 @@ static void sh64_find_section_for_address
#define elf_backend_final_write_processing sh64_elf_final_write_processing #define elf_backend_final_write_processing sh64_elf_final_write_processing
#define elf_backend_section_from_shdr sh64_backend_section_from_shdr #define elf_backend_section_from_shdr sh64_backend_section_from_shdr
#define elf_backend_special_sections sh64_elf_special_sections #define elf_backend_special_sections sh64_elf_special_sections
#define elf_backend_section_flags sh64_elf_section_flags
#define bfd_elf32_new_section_hook sh64_elf_new_section_hook #define bfd_elf32_new_section_hook sh64_elf_new_section_hook
@ -149,7 +150,6 @@ static bfd_boolean
sh64_elf_set_mach_from_flags (bfd *abfd) sh64_elf_set_mach_from_flags (bfd *abfd)
{ {
flagword flags = elf_elfheader (abfd)->e_flags; flagword flags = elf_elfheader (abfd)->e_flags;
asection *cranges;
switch (flags & EF_SH_MACH_MASK) switch (flags & EF_SH_MACH_MASK)
{ {
@ -164,18 +164,19 @@ sh64_elf_set_mach_from_flags (bfd *abfd)
return FALSE; return FALSE;
} }
/* We also need to set SEC_DEBUGGING on an incoming .cranges section. return TRUE;
We could have used elf_backend_section_flags if it had given us the }
section name; the bfd_section member in the header argument is not
set at the point of the call. FIXME: Find out whether that is by static bfd_boolean
undocumented design or a bug. */ sh64_elf_section_flags (flagword *flags,
cranges = bfd_get_section_by_name (abfd, SH64_CRANGES_SECTION_NAME); const Elf_Internal_Shdr *hdr)
if (cranges != NULL {
&& ! bfd_set_section_flags (abfd, cranges, if (hdr->bfd_section == NULL)
bfd_get_section_flags (abfd, cranges)
| SEC_DEBUGGING))
return FALSE; return FALSE;
if (strcmp (hdr->bfd_section->name, SH64_CRANGES_SECTION_NAME) == 0)
*flags |= SEC_DEBUGGING;
return TRUE; return TRUE;
} }