Create version.txt in a reproduce archive file.

Differential Revision: http://reviews.llvm.org/D21008

llvm-svn: 271901
This commit is contained in:
Rui Ueyama 2016-06-06 15:34:37 +00:00
parent 135487767b
commit 4ffda7a9cf
4 changed files with 15 additions and 9 deletions

View File

@ -248,7 +248,7 @@ void LinkerDriver::main(ArrayRef<const char *> ArgsArr) {
return;
}
if (Args.hasArg(OPT_version)) {
printVersion();
outs() << getVersionString();
return;
}
@ -256,8 +256,10 @@ void LinkerDriver::main(ArrayRef<const char *> ArgsArr) {
// Note that --reproduce is a debug option so you can ignore it
// if you are trying to understand the whole picture of the code.
Cpio.reset(CpioFile::create(Arg->getValue()));
if (Cpio)
if (Cpio) {
Cpio->append("response.txt", createResponseFile(Args));
Cpio->append("version.txt", getVersionString());
}
}
readConfigs(Args);

View File

@ -95,7 +95,7 @@ private:
};
void printHelp(const char *Argv0);
void printVersion();
std::string getVersionString();
std::vector<uint8_t> parseHexstring(StringRef S);
std::string createResponseFile(const llvm::opt::InputArgList &Args);

View File

@ -80,12 +80,12 @@ void elf::printHelp(const char *Argv0) {
Table.PrintHelp(outs(), Argv0, "lld", false);
}
void elf::printVersion() {
outs() << "LLD " << getLLDVersion();
std::string S = getLLDRepositoryVersion();
if (!S.empty())
outs() << " " << S;
outs() << "\n";
std::string elf::getVersionString() {
std::string Version = getLLDVersion();
std::string Repo = getLLDRepositoryVersion();
if (Repo.empty())
return "LLD " + Version + "\n";
return "LLD " + Version + " " + Repo + "\n";
}
// Converts a hex string (e.g. "0x123456") to a vector.

View File

@ -19,6 +19,9 @@
# RSP-NEXT: -shared
# RSP-NEXT: --as-needed
# RUN: FileCheck %s --check-prefix=VERSION < repro/version.txt
# VERSION: LLD
# RUN: mkdir -p %t.dir/build2/a/b/c
# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t.dir/build2/foo.o
# RUN: cd %t.dir/build2/a/b/c
@ -50,6 +53,7 @@
# RUN: cpio -t < repro2.cpio | FileCheck %s
# CHECK: repro2/response.txt
# CHECK-NEXT: repro2/version.txt
# CHECK-NEXT: repro2/{{.*}}/dyn
# CHECK-NEXT: repro2/{{.*}}/ver
# CHECK-NEXT: repro2/{{.*}}/foo bar