summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lld/ELF/Relocations.cpp10
-rw-r--r--lld/test/ELF/executable-undefined-protected-ignoreall.s2
-rw-r--r--lld/test/ELF/hidden-shared-err.s2
-rw-r--r--lld/test/ELF/lto/setting-dso-local.ll2
-rw-r--r--lld/test/ELF/undef-shared.s6
-rw-r--r--lld/test/ELF/undef-shared2.s2
-rw-r--r--lld/test/ELF/warn-unresolved-symbols-hidden.s4
7 files changed, 17 insertions, 11 deletions
diff --git a/lld/ELF/Relocations.cpp b/lld/ELF/Relocations.cpp
index 5d0d84dac34..569b985c66c 100644
--- a/lld/ELF/Relocations.cpp
+++ b/lld/ELF/Relocations.cpp
@@ -676,8 +676,14 @@ static bool maybeReportUndefined(Symbol &Sym, InputSectionBase &Sec,
if (Config->UnresolvedSymbols == UnresolvedPolicy::Ignore && CanBeExternal)
return false;
- std::string Msg =
- "undefined symbol: " + toString(Sym) + "\n>>> referenced by ";
+ std::string Msg = "undefined ";
+ if (Sym.Visibility == STV_INTERNAL)
+ Msg += "internal ";
+ else if (Sym.Visibility == STV_HIDDEN)
+ Msg += "hidden ";
+ else if (Sym.Visibility == STV_PROTECTED)
+ Msg += "protected ";
+ Msg += "symbol: " + toString(Sym) + "\n>>> referenced by ";
std::string Src = Sec.getSrcMsg(Sym, Offset);
if (!Src.empty())
diff --git a/lld/test/ELF/executable-undefined-protected-ignoreall.s b/lld/test/ELF/executable-undefined-protected-ignoreall.s
index 967a6938867..ebc52dbfdd2 100644
--- a/lld/test/ELF/executable-undefined-protected-ignoreall.s
+++ b/lld/test/ELF/executable-undefined-protected-ignoreall.s
@@ -1,7 +1,7 @@
# REQUIRES: x86
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
# RUN: not ld.lld %t -o /dev/null --unresolved-symbols=ignore-all -pie 2>&1 | FileCheck %s
-# CHECK: error: undefined symbol: foo
+# CHECK: error: undefined protected symbol: foo
.protected foo
_start:
diff --git a/lld/test/ELF/hidden-shared-err.s b/lld/test/ELF/hidden-shared-err.s
index e6d424c2482..cbdec478d4d 100644
--- a/lld/test/ELF/hidden-shared-err.s
+++ b/lld/test/ELF/hidden-shared-err.s
@@ -11,7 +11,7 @@
# RUN: not ld.lld %t.o %t3.o %t2.so -o %t 2>&1 | FileCheck %s
# RUN: not ld.lld %t3.o %t.o %t2.so -o %t 2>&1 | FileCheck %s
-# CHECK: undefined symbol: foo
+# CHECK: undefined hidden symbol: foo
.global _start
_start:
diff --git a/lld/test/ELF/lto/setting-dso-local.ll b/lld/test/ELF/lto/setting-dso-local.ll
index 74ce4e7f16d..d2d9c29fc46 100644
--- a/lld/test/ELF/lto/setting-dso-local.ll
+++ b/lld/test/ELF/lto/setting-dso-local.ll
@@ -2,7 +2,7 @@
; RUN: llvm-as %s -o %t1.o
; RUN: not ld.lld -o %t %t1.o 2>&1 | FileCheck %s
-; CHECK: undefined symbol: foobar
+; CHECK: undefined hidden symbol: foobar
; We used to crash setting foobar to non-dso_local
diff --git a/lld/test/ELF/undef-shared.s b/lld/test/ELF/undef-shared.s
index 701f70ea94e..26e72f381ff 100644
--- a/lld/test/ELF/undef-shared.s
+++ b/lld/test/ELF/undef-shared.s
@@ -2,17 +2,17 @@
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t.o
# RUN: not ld.lld %t.o -o /dev/null -shared 2>&1 | FileCheck %s
-# CHECK: error: undefined symbol: hidden
+# CHECK: error: undefined hidden symbol: hidden
# CHECK: >>> referenced by {{.*}}:(.data+0x0)
.global hidden
.hidden hidden
-# CHECK: error: undefined symbol: internal
+# CHECK: error: undefined internal symbol: internal
# CHECK: >>> referenced by {{.*}}:(.data+0x8)
.global internal
.internal internal
-# CHECK: error: undefined symbol: protected
+# CHECK: error: undefined protected symbol: protected
# CHECK: >>> referenced by {{.*}}:(.data+0x10)
.global protected
.protected protected
diff --git a/lld/test/ELF/undef-shared2.s b/lld/test/ELF/undef-shared2.s
index cae5ea45642..9508f9db4a7 100644
--- a/lld/test/ELF/undef-shared2.s
+++ b/lld/test/ELF/undef-shared2.s
@@ -4,7 +4,7 @@
# RUN: not ld.lld %t.o %t2.o -o %t.so -shared 2>&1 | FileCheck %s
# RUN: not ld.lld %t2.o %t.o -o %t.so -shared 2>&1 | FileCheck %s
-# CHECK: error: undefined symbol: foo
+# CHECK: error: undefined protected symbol: foo
.data
.quad foo
diff --git a/lld/test/ELF/warn-unresolved-symbols-hidden.s b/lld/test/ELF/warn-unresolved-symbols-hidden.s
index 9e3d9e15210..bef8b6705f6 100644
--- a/lld/test/ELF/warn-unresolved-symbols-hidden.s
+++ b/lld/test/ELF/warn-unresolved-symbols-hidden.s
@@ -3,8 +3,8 @@
# RUN: not ld.lld -shared %t.o -o /dev/null -z defs --warn-unresolved-symbols 2>&1| FileCheck %s
# CHECK: warning: undefined symbol: foo
-# CHECK: error: undefined symbol: bar
-# CHECK: error: undefined symbol: zed
+# CHECK: error: undefined hidden symbol: bar
+# CHECK: error: undefined protected symbol: zed
.data
.quad foo
OpenPOWER on IntegriCloud