This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
A patch for ELF section symbols
- To: binutils at sourceware dot cygnus dot com
- Subject: A patch for ELF section symbols
- From: "H . J . Lu" <hjl at lucon dot org>
- Date: Wed, 6 Jun 2001 14:20:05 -0700
- Cc: linux-mips at oss dot sgi dot com
On mips, both _gp_disp and _DYNAMIC_LINKING/_DYNAMIC_LINK are
explicitly marked as glocal section symbols. We should keep them
during objcopy.
H.J.
----
2001-06-06 H.J. Lu <hjl@gnu.org>
* elf.c (swap_out_syms): Keep names for global section symbols.
--- binutils/bfd/elf.c.mips Tue May 15 20:03:57 2001
+++ binutils/bfd/elf.c Tue May 15 21:20:49 2001
@@ -4395,9 +4395,9 @@ swap_out_syms (abfd, sttp, relocatable_p
flagword flags = syms[idx]->flags;
int type;
- if ((flags & BSF_SECTION_SYM) != 0)
+ if ((flags & (BSF_SECTION_SYM | BSF_GLOBAL)) == BSF_SECTION_SYM)
{
- /* Section symbols have no name. */
+ /* Local section symbols have no name. */
sym.st_name = 0;
}
else
@@ -4506,7 +4506,12 @@ swap_out_syms (abfd, sttp, relocatable_p
type = (*bed->elf_backend_get_symbol_type) (&type_ptr->internal_elf_sym, type);
if (flags & BSF_SECTION_SYM)
- sym.st_info = ELF_ST_INFO (STB_LOCAL, STT_SECTION);
+ {
+ if (flags & BSF_GLOBAL)
+ sym.st_info = ELF_ST_INFO (STB_GLOBAL, STT_SECTION);
+ else
+ sym.st_info = ELF_ST_INFO (STB_LOCAL, STT_SECTION);
+ }
else if (bfd_is_com_section (syms[idx]->section))
sym.st_info = ELF_ST_INFO (STB_GLOBAL, type);
else if (bfd_is_und_section (syms[idx]->section))