2002-08-12 H.J. Lu <hjl@gnu.org>

* elflink.h (elf_add_default_symbol): Preserve section across
	elf_merge_symbol.
This commit is contained in:
H.J. Lu 2002-08-12 19:23:33 +00:00
parent 9c0921673d
commit 871da94f03
2 changed files with 13 additions and 5 deletions

View file

@ -1,3 +1,8 @@
2002-08-12 H.J. Lu <hjl@gnu.org>
* elflink.h (elf_add_default_symbol): Preserve section across
elf_merge_symbol.
2002-08-09 Graeme Peterson <gp@qnx.com>
* Makefile.am: Add entries for elf32-ppcqnx.c, and add

View file

@ -899,19 +899,19 @@ elf_merge_symbol (abfd, info, name, sym, psec, pvalue, sym_hash,
/* This function is called to create an indirect symbol from the
default for the symbol with the default version if needed. The
symbol is described by H, NAME, SYM, SEC, VALUE, and OVERRIDE. We
symbol is described by H, NAME, SYM, PSEC, VALUE, and OVERRIDE. We
set DYNSYM if the new indirect symbol is dynamic. DT_NEEDED
indicates if it comes from a DT_NEEDED entry of a shared object. */
static boolean
elf_add_default_symbol (abfd, info, h, name, sym, sec, value,
elf_add_default_symbol (abfd, info, h, name, sym, psec, value,
dynsym, override, dt_needed)
bfd *abfd;
struct bfd_link_info *info;
struct elf_link_hash_entry *h;
const char *name;
Elf_Internal_Sym *sym;
asection **sec;
asection **psec;
bfd_vma *value;
boolean *dynsym;
boolean override;
@ -926,6 +926,7 @@ elf_add_default_symbol (abfd, info, h, name, sym, sec, value,
boolean dynamic;
char *p;
size_t len, shortlen;
asection *sec;
/* If this symbol has a version, and it is the default version, we
create an indirect symbol from the default name to the fully
@ -970,7 +971,8 @@ elf_add_default_symbol (abfd, info, h, name, sym, sec, value,
actually going to define an indirect symbol. */
type_change_ok = false;
size_change_ok = false;
if (! elf_merge_symbol (abfd, info, shortname, sym, sec, value,
sec = *psec;
if (! elf_merge_symbol (abfd, info, shortname, sym, &sec, value,
&hi, &override, &type_change_ok,
&size_change_ok, dt_needed))
return false;
@ -1077,7 +1079,8 @@ elf_add_default_symbol (abfd, info, h, name, sym, sec, value,
/* Once again, merge with any existing symbol. */
type_change_ok = false;
size_change_ok = false;
if (! elf_merge_symbol (abfd, info, shortname, sym, sec, value,
sec = *psec;
if (! elf_merge_symbol (abfd, info, shortname, sym, &sec, value,
&hi, &override, &type_change_ok,
&size_change_ok, dt_needed))
return false;