[lld] r320006 - [ELF] Handle multiple "--version-script" options.
Igor Kudrin via llvm-commits
llvm-commits at lists.llvm.org
Wed Dec 6 19:25:39 PST 2017
Author: ikudrin
Date: Wed Dec 6 19:25:39 2017
New Revision: 320006
URL: http://llvm.org/viewvc/llvm-project?rev=320006&view=rev
Log:
[ELF] Handle multiple "--version-script" options.
Both ld.bfd and ld.gold can handle this case.
Differential Revision: https://reviews.llvm.org/D40878
Modified:
lld/trunk/ELF/Driver.cpp
lld/trunk/test/ELF/version-script.s
Modified: lld/trunk/ELF/Driver.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Driver.cpp?rev=320006&r1=320005&r2=320006&view=diff
==============================================================================
--- lld/trunk/ELF/Driver.cpp (original)
+++ lld/trunk/ELF/Driver.cpp Wed Dec 6 19:25:39 2017
@@ -774,7 +774,7 @@ void LinkerDriver::readConfigs(opt::Inpu
{Arg->getValue(), /*IsExternCpp*/ false, /*HasWildcard*/ false});
}
- if (auto *Arg = Args.getLastArg(OPT_version_script))
+ for (auto *Arg : Args.filtered(OPT_version_script))
if (Optional<MemoryBufferRef> Buffer = readFile(Arg->getValue()))
readVersionScript(*Buffer);
}
Modified: lld/trunk/test/ELF/version-script.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/version-script.s?rev=320006&r1=320005&r2=320006&view=diff
==============================================================================
--- lld/trunk/test/ELF/version-script.s (original)
+++ lld/trunk/test/ELF/version-script.s Wed Dec 6 19:25:39 2017
@@ -42,6 +42,12 @@
# RUN: ld.lld --version-script %t.script --dynamic-list %t.list %t.o %t2.so -o %t2
# RUN: llvm-readobj %t2 > /dev/null
+## Check that we can handle multiple "--version-script" options.
+# RUN: echo "VERSION_1.0 { global : foo1; local : *; };" > %t7a.script
+# RUN: echo "VERSION_2.0 { global: foo3; local: *; };" > %t7b.script
+# RUN: ld.lld --version-script %t7a.script --version-script %t7b.script -shared %t.o %t2.so -o %t7.so
+# RUN: llvm-readobj -dyn-symbols %t7.so | FileCheck --check-prefix=VERDSO %s
+
# DSO: DynamicSymbols [
# DSO-NEXT: Symbol {
# DSO-NEXT: Name: @
More information about the llvm-commits
mailing list