[PATCH] D104894: [ELF] --sysroot: change sysrooted script to not fall back for an absolute path
Fangrui Song via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Jun 25 12:53:01 PDT 2021
This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rG2508733e1be2: [ELF] --sysroot: change sysrooted script to not fall back for an absolute path (authored by MaskRay).
Changed prior to commit:
https://reviews.llvm.org/D104894?vs=354421&id=354586#toc
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D104894/new/
https://reviews.llvm.org/D104894
Files:
lld/ELF/ScriptParser.cpp
lld/test/ELF/linkerscript/group.s
Index: lld/test/ELF/linkerscript/group.s
===================================================================
--- lld/test/ELF/linkerscript/group.s
+++ lld/test/ELF/linkerscript/group.s
@@ -1,4 +1,5 @@
# REQUIRES: x86
+# UNSUPPORTED: system-windows
# RUN: mkdir -p %t.dir
# RUN: rm -f %t.dir/libxyz.a
@@ -37,10 +38,15 @@
# RUN: echo "GROUP(\"%t\" /libxyz.a )" > %t.script
# RUN: echo "GROUP(\"%t\" /libxyz.a )" > %t.dir/xyz.script
-# RUN: not ld.lld -o /dev/null %t.script 2>/dev/null
-# RUN: not ld.lld -o /dev/null %t.script --sysroot=%t.dir 2>/dev/null
-# RUN: ld.lld -o %t2 %t.dir/xyz.script --sysroot=%t.dir
-# RUN: llvm-readobj %t2 > /dev/null
+# RUN: not ld.lld -o /dev/null %t.script 2>&1 | FileCheck %s --check-prefix=CANNOT_OPEN -DFILE=/libxyz.a
+# RUN: not ld.lld -o /dev/null %t.script --sysroot=%t.dir 2>&1 | FileCheck %s --check-prefix=CANNOT_OPEN -DFILE=/libxyz.a
+
+## Since %t.dir/%t does not exist, report an error, instead of falling back to %t
+## without the syroot prefix.
+# RUN: not ld.lld -o /dev/null %t.dir/xyz.script --sysroot=%t.dir 2>&1 | FileCheck %s --check-prefix=CANNOT_FIND_SYSROOT -DTMP=%t
+
+# CANNOT_FIND_SYSROOT: error: {{.*}}xyz.script:1: cannot find [[TMP]] inside [[TMP]].dir
+# CANNOT_FIND_SYSROOT-NEXT: >>> GROUP({{.*}}
# RUN: echo "GROUP(\"%t.script2\")" > %t.script1
# RUN: echo "GROUP(\"%t\")" > %t.script2
@@ -51,6 +57,8 @@
# RUN: ld.lld -o %t2 %t.script
# RUN: llvm-readobj %t2 > /dev/null
+# CANNOT_OPEN: error: cannot open [[FILE]]: {{.*}}
+
.globl _start
_start:
ret
Index: lld/ELF/ScriptParser.cpp
===================================================================
--- lld/ELF/ScriptParser.cpp
+++ lld/ELF/ScriptParser.cpp
@@ -288,10 +288,11 @@
if (isUnderSysroot && s.startswith("/")) {
SmallString<128> pathData;
StringRef path = (config->sysroot + s).toStringRef(pathData);
- if (sys::fs::exists(path)) {
+ if (sys::fs::exists(path))
driver->addFile(saver.save(path), /*withLOption=*/false);
- return;
- }
+ else
+ setError("cannot find " + s + " inside " + config->sysroot);
+ return;
}
if (s.startswith("/")) {
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D104894.354586.patch
Type: text/x-patch
Size: 2150 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210625/3ea62cfa/attachment.bin>
More information about the llvm-commits
mailing list