[PATCH] D43051: Symbols defined in linker scripts should not have dso_local flag set in LTO resolutions
Dmitry Mikulin via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Feb 7 16:27:39 PST 2018
dmikulin created this revision.
dmikulin added a reviewer: rafael.
Herald added subscribers: inglorion, emaste.
This is an extension to the fix in https://reviews.llvm.org/D42977
https://reviews.llvm.org/D43051
Files:
lld/ELF/LTO.cpp
lld/test/ELF/lto/abs-resol.ll
Index: lld/test/ELF/lto/abs-resol.ll
===================================================================
--- lld/test/ELF/lto/abs-resol.ll
+++ lld/test/ELF/lto/abs-resol.ll
@@ -2,7 +2,8 @@
; RUN: llvm-as %s -o %t.o
; RUN: llvm-mc -triple=x86_64-pc-linux %p/Inputs/absolute.s -o %t2.o -filetype=obj
-; RUN: ld.lld %t.o %t2.o -o %t.out -pie
+; RUN: ld.lld %t.o %t2.o -o %t3.out -pie
+; RUN: ld.lld %t.o -T%p/Inputs/absolute.script -o %t4.out -pie
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
Index: lld/ELF/LTO.cpp
===================================================================
--- lld/ELF/LTO.cpp
+++ lld/ELF/LTO.cpp
@@ -160,8 +160,9 @@
// Skip absolute symbols from ELF objects, otherwise PC-rel relocations
// will be generated by for them, triggering linker errors.
// Symbol section is always null for bitcode symbols, hence the check
- // for isElf().
- !(Sym->File && Sym->File->isElf() && DR->Section == nullptr);
+ // for isElf(). Skip linker script defined symbols as well: they have
+ // no File defined.
+ !(DR->Section == nullptr && (!Sym->File || Sym->File->isElf()));
if (R.Prevailing)
undefine(Sym);
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D43051.133331.patch
Type: text/x-patch
Size: 1261 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180208/75385d3d/attachment.bin>
More information about the llvm-commits
mailing list