[MinGW] Add --reproduce option

Differential Revision: https://reviews.llvm.org/D68382

llvm-svn: 373705
This commit is contained in:
Rui Ueyama 2019-10-04 07:27:45 +00:00
parent 0d53ac8096
commit e4758a5c27
3 changed files with 6 additions and 0 deletions

View File

@ -216,6 +216,8 @@ bool mingw::link(ArrayRef<const char *> argsArr, raw_ostream &diag) {
add("-base:" + StringRef(a->getValue())); add("-base:" + StringRef(a->getValue()));
if (auto *a = args.getLastArg(OPT_map)) if (auto *a = args.getLastArg(OPT_map))
add("-lldmap:" + StringRef(a->getValue())); add("-lldmap:" + StringRef(a->getValue()));
if (auto *a = args.getLastArg(OPT_reproduce))
add("-reproduce:" + StringRef(a->getValue()));
if (auto *a = args.getLastArg(OPT_o)) if (auto *a = args.getLastArg(OPT_o))
add("-out:" + StringRef(a->getValue())); add("-out:" + StringRef(a->getValue()));

View File

@ -63,6 +63,7 @@ def strip_all: F<"strip-all">,
HelpText<"Omit all symbol information from the output binary">; HelpText<"Omit all symbol information from the output binary">;
def strip_debug: F<"strip-debug">, def strip_debug: F<"strip-debug">,
HelpText<"Omit all debug information, but keep symbol information">; HelpText<"Omit all debug information, but keep symbol information">;
defm reproduce: Eq<"reproduce", "Write a tar file containing input files and command line options to reproduce link">;
defm undefined: Eq<"undefined", "Include symbol in the link, if available">; defm undefined: Eq<"undefined", "Include symbol in the link, if available">;
def whole_archive: F<"whole-archive">, def whole_archive: F<"whole-archive">,
HelpText<"Include all object files for following archives">; HelpText<"Include all object files for following archives">;

View File

@ -189,6 +189,9 @@ UNDEFINED: -includeoptional:_foo -includeoptional:_bar -includeoptional:_baz -in
RUN: ld.lld -### -m i386pep foo.o -Llibpath | FileCheck -check-prefix LIBPATH %s RUN: ld.lld -### -m i386pep foo.o -Llibpath | FileCheck -check-prefix LIBPATH %s
LIBPATH: -libpath:libpath LIBPATH: -libpath:libpath
RUN: ld.lld -### -m i386pep foo.o --reproduce=foo.tar | FileCheck -check-prefix REPRO %s
REPRO: -reproduce:foo.tar
RUN: ld.lld -### -m i386pep foo.o --no-insert-timestamp | FileCheck -check-prefix NOTIMESTAMP %s RUN: ld.lld -### -m i386pep foo.o --no-insert-timestamp | FileCheck -check-prefix NOTIMESTAMP %s
RUN: ld.lld -### -m i386pep foo.o --insert-timestamp --no-insert-timestamp | FileCheck -check-prefix NOTIMESTAMP %s RUN: ld.lld -### -m i386pep foo.o --insert-timestamp --no-insert-timestamp | FileCheck -check-prefix NOTIMESTAMP %s
NOTIMESTAMP: -timestamp:0 NOTIMESTAMP: -timestamp:0