summaryrefslogtreecommitdiff
path: root/bfd/elfxx-ia64.c
diff options
context:
space:
mode:
authorH.J. Lu <hjl@lucon.org>2003-09-29 23:25:08 +0000
committerH.J. Lu <hjl@lucon.org>2003-09-29 23:25:08 +0000
commitb8c78db6a418fa8bb57d05e38931af4a47dc79bc (patch)
tree7d93381ae65d67560beb68583be2de7e67b977e9 /bfd/elfxx-ia64.c
parent86718691ecc0d3ee92727815c99f97f8b4d53885 (diff)
downloadgdb-b8c78db6a418fa8bb57d05e38931af4a47dc79bc.tar.gz
2003-09-29 H.J. Lu <hongjiu.lu@intel.com>
* elfxx-ia64.c (elfNN_hpux_backend_symbol_processing): New. Handle SHN_IA_64_ANSI_COMMON. (elf_backend_section_from_bfd_section): Defined.
Diffstat (limited to 'bfd/elfxx-ia64.c')
-rw-r--r--bfd/elfxx-ia64.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/bfd/elfxx-ia64.c b/bfd/elfxx-ia64.c
index c8dd9c49b95..2b7d9bd700f 100644
--- a/bfd/elfxx-ia64.c
+++ b/bfd/elfxx-ia64.c
@@ -4784,6 +4784,23 @@ elfNN_hpux_backend_section_from_bfd_section (abfd, sec, retval)
}
return FALSE;
}
+
+static void
+elfNN_hpux_backend_symbol_processing (bfd *abfd ATTRIBUTE_UNUSED,
+ asymbol *asym)
+{
+ elf_symbol_type *elfsym = (elf_symbol_type *) asym;;
+
+ switch (elfsym->internal_elf_sym.st_shndx)
+ {
+ case SHN_IA_64_ANSI_COMMON:
+ asym->section = bfd_com_section_ptr;
+ asym->value = elfsym->internal_elf_sym.st_size;
+ asym->flags &= ~BSF_GLOBAL;
+ break;
+ }
+}
+
#define TARGET_LITTLE_SYM bfd_elfNN_ia64_little_vec
#define TARGET_LITTLE_NAME "elfNN-ia64-little"
@@ -4881,6 +4898,9 @@ elfNN_hpux_backend_section_from_bfd_section (abfd, sec, retval)
#undef elf_backend_section_from_bfd_section
#define elf_backend_section_from_bfd_section elfNN_hpux_backend_section_from_bfd_section
+#undef elf_backend_symbol_processing
+#define elf_backend_symbol_processing elfNN_hpux_backend_symbol_processing
+
#undef elf_backend_want_p_paddr_set_to_zero
#define elf_backend_want_p_paddr_set_to_zero 1