mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-19 17:18:24 +08:00
Revert 2000-10-07 link-once section symbol changes.
This commit is contained in:
@ -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>
|
||||
|
12
bfd/elf.c
12
bfd/elf.c
@ -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))
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
|
Reference in New Issue
Block a user