mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-13 09:33:50 +00:00
When writing out the runner script, add -load=<lib> lines to pull in all the
shared objects automagically, so it doesn't have to be done by hand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10114 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
84fbc653ce
commit
3e25f2e1be
@ -281,7 +281,24 @@ int main(int argc, char **argv, char **envp) {
|
|||||||
if (!Out2.good())
|
if (!Out2.good())
|
||||||
return PrintAndReturn(argv[0], "error opening '" + OutputFilename +
|
return PrintAndReturn(argv[0], "error opening '" + OutputFilename +
|
||||||
"' for writing!");
|
"' for writing!");
|
||||||
Out2 << "#!/bin/sh\nlli $0.bc $*\n";
|
Out2 << "#!/bin/sh\nlli \\\n";
|
||||||
|
// gcc accepts -l<lib> and implicitly searches /lib and /usr/lib.
|
||||||
|
LibPaths.push_back("/lib");
|
||||||
|
LibPaths.push_back("/usr/lib");
|
||||||
|
// We don't need to link in libc! In fact, /usr/lib/libc.so may not be a
|
||||||
|
// shared object at all! See RH 8: plain text.
|
||||||
|
std::vector<std::string>::iterator libc =
|
||||||
|
std::find(Libraries.begin(), Libraries.end(), "c");
|
||||||
|
if (libc != Libraries.end()) Libraries.erase(libc);
|
||||||
|
// List all the shared object (native) libraries this executable will need
|
||||||
|
// on the command line, so that we don't have to do this manually!
|
||||||
|
for (std::vector<std::string>::iterator i = Libraries.begin(),
|
||||||
|
e = Libraries.end(); i != e; ++i) {
|
||||||
|
std::string FullLibraryPath = FindLib(*i, LibPaths, true);
|
||||||
|
if (!FullLibraryPath.empty())
|
||||||
|
Out2 << " -load=" << FullLibraryPath << " \\\n";
|
||||||
|
}
|
||||||
|
Out2 << " $0.bc $*\n";
|
||||||
Out2.close();
|
Out2.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user