diff options
-rw-r--r-- | lld/ELF/Relocations.cpp | 10 | ||||
-rw-r--r-- | lld/test/ELF/executable-undefined-protected-ignoreall.s | 2 | ||||
-rw-r--r-- | lld/test/ELF/hidden-shared-err.s | 2 | ||||
-rw-r--r-- | lld/test/ELF/lto/setting-dso-local.ll | 2 | ||||
-rw-r--r-- | lld/test/ELF/undef-shared.s | 6 | ||||
-rw-r--r-- | lld/test/ELF/undef-shared2.s | 2 | ||||
-rw-r--r-- | lld/test/ELF/warn-unresolved-symbols-hidden.s | 4 |
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 |