diff options
author | H.J. Lu <hjl@lucon.org> | 2002-08-12 19:23:33 +0000 |
---|---|---|
committer | H.J. Lu <hjl@lucon.org> | 2002-08-12 19:23:33 +0000 |
commit | 37027e9344df9442f7207d82a0123c9ac5c282ac (patch) | |
tree | 3684973af8b2e6074ad1af401da241b6dbaa0e63 /bfd | |
parent | d33d2f24d8d2d2d83d04e2570af8ce578345e016 (diff) | |
download | gdb-37027e9344df9442f7207d82a0123c9ac5c282ac.tar.gz |
2002-08-12 H.J. Lu <hjl@gnu.org>
* elflink.h (elf_add_default_symbol): Preserve section across
elf_merge_symbol.
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/elflink.h | 13 |
2 files changed, 13 insertions, 5 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index a8f1a49e0ed..c88e5ff0c5b 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -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 diff --git a/bfd/elflink.h b/bfd/elflink.h index d849478a8af..0840f8ea977 100644 --- a/bfd/elflink.h +++ b/bfd/elflink.h @@ -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; |