Linux MIPS Architecture development
 help / color / mirror / Atom feed
* A patch for ELF section symbols
@ 2001-06-06 21:20 H . J . Lu
  0 siblings, 0 replies; only message in thread
From: H . J . Lu @ 2001-06-06 21:20 UTC (permalink / raw)
  To: binutils; +Cc: linux-mips

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))

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2001-06-06 21:20 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-06-06 21:20 A patch for ELF section symbols H . J . Lu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox