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:
parent
9c0921673d
commit
871da94f03
2 changed files with 13 additions and 5 deletions
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue