forked from OSchip/llvm-project
Revert r254031: "ELF2: LinkerScript: lookup absolute paths under sysroot"
The test fails on Windows: Command 34: "ld.lld" "-o" "D:\src\llvm\build.release\tools\lld\test\ELF\Output\l inkerscript.s.tmp2" "D:\src\llvm\build.release\tools\lld\test\ELF\Output\linkers cript.s.tmp.dir/xyz.script" "--sysroot=D:\src\llvm\build.release\tools\lld\test\ ELF\Output\linkerscript.s.tmp.dir" Command 34 Result: 1 Command 34 Output: Command 34 Stderr: Unable to find /libxyz.a llvm-svn: 254049
This commit is contained in:
parent
4f85838320
commit
82d2d07ced
|
|
@ -28,8 +28,8 @@ using namespace lld::elf2;
|
|||
namespace {
|
||||
class LinkerScript {
|
||||
public:
|
||||
LinkerScript(BumpPtrAllocator *A, StringRef S, bool B)
|
||||
: Saver(*A), Tokens(tokenize(S)), IsUnderSysroot(B) {}
|
||||
LinkerScript(BumpPtrAllocator *A, StringRef S)
|
||||
: Saver(*A), Tokens(tokenize(S)) {}
|
||||
void run();
|
||||
|
||||
private:
|
||||
|
|
@ -58,7 +58,6 @@ private:
|
|||
StringSaver Saver;
|
||||
std::vector<StringRef> Tokens;
|
||||
size_t Pos = 0;
|
||||
bool IsUnderSysroot;
|
||||
};
|
||||
}
|
||||
|
||||
|
|
@ -162,12 +161,6 @@ void LinkerScript::expect(StringRef Expect) {
|
|||
|
||||
void LinkerScript::addFile(StringRef S) {
|
||||
if (sys::path::is_absolute(S)) {
|
||||
if (IsUnderSysroot) {
|
||||
SmallString<128> Path;
|
||||
(Config->Sysroot + S).toStringRef(Path);
|
||||
if (sys::fs::exists(Path))
|
||||
S = Saver.save(Path.str());
|
||||
}
|
||||
Driver->addFile(S);
|
||||
} else if (S.startswith("=")) {
|
||||
if (Config->Sysroot.empty())
|
||||
|
|
@ -308,6 +301,5 @@ static bool isUnderSysroot(StringRef Path) {
|
|||
|
||||
// Entry point. The other functions or classes are private to this file.
|
||||
void lld::elf2::readLinkerScript(BumpPtrAllocator *A, MemoryBufferRef MB) {
|
||||
StringRef Path = MB.getBufferIdentifier();
|
||||
LinkerScript(A, MB.getBuffer(), isUnderSysroot(Path)).run();
|
||||
LinkerScript(A, MB.getBuffer()).run();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -38,13 +38,6 @@
|
|||
# RUN: ld.lld -o %t2 %t.script -L%t.dir
|
||||
# RUN: llvm-readobj %t2 > /dev/null
|
||||
|
||||
# RUN: echo "GROUP(" %t /libxyz.a ")" > %t.script
|
||||
# RUN: echo "GROUP(" %t /libxyz.a ")" > %t.dir/xyz.script
|
||||
# RUN: not ld.lld -o %t2 %t.script
|
||||
# RUN: not ld.lld -o %t2 %t.script --sysroot=%t.dir
|
||||
# RUN: ld.lld -o %t2 %t.dir/xyz.script --sysroot=%t.dir
|
||||
# RUN: llvm-readobj %t2 > /dev/null
|
||||
|
||||
# RUN: echo "GROUP(" %t.script2 ")" > %t.script1
|
||||
# RUN: echo "GROUP(" %t ")" > %t.script2
|
||||
# RUN: ld.lld -o %t2 %t.script1
|
||||
|
|
|
|||
Loading…
Reference in New Issue