aboutsummaryrefslogtreecommitdiff
path: root/gold/resolve.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gold/resolve.cc')
-rw-r--r--gold/resolve.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/gold/resolve.cc b/gold/resolve.cc
index af3d489..29d9d79 100644
--- a/gold/resolve.cc
+++ b/gold/resolve.cc
@@ -576,6 +576,11 @@ Symbol_table::should_override(const Symbol* to, unsigned int frombits,
return false;
case UNDEF * 16 + DYN_WEAK_DEF:
+ // When overriding an undef by a dynamic weak definition,
+ // we need to remember that the original undef was not weak.
+ *adjust_dyndef = true;
+ return true;
+
case DYN_UNDEF * 16 + DYN_WEAK_DEF:
case DYN_WEAK_UNDEF * 16 + DYN_WEAK_DEF:
// Use a weak dynamic definition if we have a reference.