aboutsummaryrefslogtreecommitdiff
path: root/bfd/elf64-sparc.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2002-07-10 04:59:42 +0000
committerAlan Modra <amodra@gmail.com>2002-07-10 04:59:42 +0000
commit0594c12d8e99dccd69fc9c771ab6c0415300b5d9 (patch)
treef7800e4d825f8db111afb923204548904614171a /bfd/elf64-sparc.c
parentb851d07bfd7deab3fd46ac64b1c5d9b56f218676 (diff)
downloadgdb-0594c12d8e99dccd69fc9c771ab6c0415300b5d9.zip
gdb-0594c12d8e99dccd69fc9c771ab6c0415300b5d9.tar.gz
gdb-0594c12d8e99dccd69fc9c771ab6c0415300b5d9.tar.bz2
* elf.c: (assign_section_numbers) Set sh_entsize for .stab only
when not already set. * elf64-sparc.c: (sparc64_elf_fake_sections): New function. (elf_backend_fake_sections): Define.
Diffstat (limited to 'bfd/elf64-sparc.c')
-rw-r--r--bfd/elf64-sparc.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/bfd/elf64-sparc.c b/bfd/elf64-sparc.c
index 0ae3813..7dd51f7 100644
--- a/bfd/elf64-sparc.c
+++ b/bfd/elf64-sparc.c
@@ -72,6 +72,9 @@ static void sparc64_elf_symbol_processing
static boolean sparc64_elf_merge_private_bfd_data
PARAMS ((bfd *, bfd *));
+static boolean sparc64_elf_fake_sections
+ PARAMS ((bfd *, Elf32_Internal_Shdr *, asection *));
+
static const char *sparc64_elf_print_symbol_all
PARAMS ((bfd *, PTR, asymbol *));
static boolean sparc64_elf_relax_section
@@ -2995,6 +2998,27 @@ sparc64_elf_merge_private_bfd_data (ibfd, obfd)
}
return true;
}
+
+/* MARCO: Set the correct entry size for the .stab section. */
+
+static boolean
+sparc64_elf_fake_sections (abfd, hdr, sec)
+ bfd *abfd ATTRIBUTE_UNUSED;
+ Elf32_Internal_Shdr *hdr ATTRIBUTE_UNUSED;
+ asection *sec;
+{
+ const char *name;
+
+ name = bfd_get_section_name (abfd, sec);
+
+ if (strcmp (name, ".stab") == 0)
+ {
+ /* Even in the 64bit case the stab entries are only 12 bytes long. */
+ elf_section_data (sec)->this_hdr.sh_entsize = 12;
+ }
+
+ return true;
+}
/* Print a STT_REGISTER symbol to file FILE. */
@@ -3132,6 +3156,8 @@ const struct elf_size_info sparc64_elf_size_info =
sparc64_elf_output_arch_syms
#define bfd_elf64_bfd_merge_private_bfd_data \
sparc64_elf_merge_private_bfd_data
+#define elf_backend_fake_sections \
+ sparc64_elf_fake_sections
#define elf_backend_size_info \
sparc64_elf_size_info