Revert 2000-10-07 link-once section symbol changes.

This commit is contained in:
Alan Modra
2000-10-11 07:05:02 +00:00
parent e47d05ade6
commit d01e2a23a3
4 changed files with 12 additions and 21 deletions

View File

@ -1,5 +1,7 @@
2000-10-11 Alan Modra <alan@linuxcare.com.au>
* elf.c (swap_out_syms): Revert 2000-10-07 changes.
* ieee.c (ieee_make_empty_symbol): Oops, bfd_zalloc needs another arg.
2000-10-10 Alan Modra <alan@linuxcare.com.au>

View File

@ -4352,10 +4352,11 @@ swap_out_syms (abfd, sttp, relocatable_p)
flagword flags = syms[idx]->flags;
int type;
/* Section symbols usually have no name. The exception is
link-once section symbols, which we make global. */
if ((flags & (BSF_SECTION_SYM | BSF_GLOBAL)) == BSF_SECTION_SYM)
sym.st_name = 0;
if ((flags & BSF_SECTION_SYM) != 0)
{
/* Section symbols have no name. */
sym.st_name = 0;
}
else
{
sym.st_name = (unsigned long) _bfd_stringtab_add (stt,
@ -4462,8 +4463,7 @@ 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 ((flags & BSF_GLOBAL
? STB_GLOBAL : STB_LOCAL), STT_SECTION);
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))

View File

@ -1,3 +1,7 @@
2000-10-11 Alan Modra <alan@linuxcare.com.au>
* config/obj-elf.c (elf_frob_symbol): Revert 2000-10-07 change.
2000-10-07 Alan Modra <alan@linuxcare.com.au>
* config/tc-hppa.c (md_apply_fix): Remove plainly wrong assert.

View File

@ -1742,21 +1742,6 @@ elf_frob_symbol (symp, puntp)
&& S_IS_DEFINED (symp))
symbol_get_bfdsym (symp)->flags |= BSF_OBJECT;
#endif
if (symbol_section_p (symp))
{
asection *symsec = S_GET_SEGMENT (symp);
if ((bfd_get_section_flags (stdoutput, symsec) & SEC_LINK_ONCE) != 0
|| strncmp (segment_name (symsec), ".gnu.linkonce",
sizeof ".gnu.linkonce" - 1) == 0)
{
/* Make section syms global on ELF linkonce sections.
This way, any reference to the section symbol will
resolve to the section that actually stays in. */
S_SET_EXTERNAL (symp);
}
}
}
void