2003-09-29 H.J. Lu <hongjiu.lu@intel.com>
authorH.J. Lu <hjl.tools@gmail.com>
Mon, 29 Sep 2003 23:25:08 +0000 (23:25 +0000)
committerH.J. Lu <hjl.tools@gmail.com>
Mon, 29 Sep 2003 23:25:08 +0000 (23:25 +0000)
* elfxx-ia64.c (elfNN_hpux_backend_symbol_processing): New.
Handle SHN_IA_64_ANSI_COMMON.
(elf_backend_section_from_bfd_section): Defined.

bfd/ChangeLog
bfd/elfxx-ia64.c

index dcfdd92270a5d5aa23685c9566e6ab76e7352b3e..92dbe68c60e6d3346753a1d9923c8e1fcb96628f 100644 (file)
@@ -1,3 +1,9 @@
+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.
+
 2003-09-26  H.J. Lu  <hongjiu.lu@intel.com>
 
        * elflink.c (elf_link_read_relocs_from_section): Add an argument
index c8dd9c49b95eb3df8f3f8a219de4bce20a415b83..2b7d9bd700fdb46148aaffc91fa36449374dc75c 100644 (file)
@@ -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;
+    }
+}
+
 \f
 #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