aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elflink.h6
2 files changed, 9 insertions, 2 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 794b4c1..f103ab4 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,5 +1,10 @@
Tue Jun 2 15:29:35 1998 Ian Lance Taylor <ian@cygnus.com>
+ * elflink.h (elf_merge_symbol): Don't always set type_change_ok
+ and size_change_ok.
+ (elf_link_add_object_symbols): Set type_change_ok and
+ size_change_ok before calling elf_merge_symbol.
+
* elf32-mips.c (mips_elf_relocate_section): If we issue an
undefined symbol error, don't also issue an overflow error.
diff --git a/bfd/elflink.h b/bfd/elflink.h
index db79db7..cbc18d9 100644
--- a/bfd/elflink.h
+++ b/bfd/elflink.h
@@ -299,8 +299,6 @@ elf_merge_symbol (abfd, info, name, sym, psec, pvalue, sym_hash,
boolean newdyn, olddyn, olddef, newdef, newdyncommon, olddyncommon;
*override = false;
- *type_change_ok = false;
- *size_change_ok = false;
sec = *psec;
bind = ELF_ST_BIND (sym->st_info);
@@ -1372,6 +1370,8 @@ elf_link_add_object_symbols (abfd, info)
purposes of the merge, act as though we were
defining the symbol we just defined, although we
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, &hi, &override,
&type_change_ok, &size_change_ok))
@@ -1510,6 +1510,8 @@ elf_link_add_object_symbols (abfd, info)
strcpy (shortname + (p - name), p + 1);
/* 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, &hi, &override,
&type_change_ok, &size_change_ok))