mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 18:54:02 +01:00
b03521b98d
Add support for generating a dsymutil reproducer. The result is a folder containing all the object files for linking. When --gen-reproducer is passed, dsymutil uses a FileCollectorFileSystem which keeps track of all the files used by dsymutil. These files are copied into a temporary directory when dsymutil exists. When this path is passed to --use-reproducer, dsymutil uses a RedirectingFileSystem that will use the files from the reproducer directory instead of the actual paths. This means you don't need to mess with the OSO path prefix. Differential revision: https://reviews.llvm.org/D79398
188 lines
6.8 KiB
TableGen
188 lines
6.8 KiB
TableGen
include "llvm/Option/OptParser.td"
|
|
|
|
class F<string name>: Flag<["--", "-"], name>;
|
|
|
|
def grp_general : OptionGroup<"Dsymutil">, HelpText<"Dsymutil Options">;
|
|
|
|
def help: F<"help">,
|
|
HelpText<"Prints this help output.">,
|
|
Group<grp_general>;
|
|
def: Flag<["-"], "h">,
|
|
Alias<help>,
|
|
HelpText<"Alias for --help">,
|
|
Group<grp_general>;
|
|
|
|
def version: F<"version">,
|
|
HelpText<"Prints the dsymutil version.">,
|
|
Group<grp_general>;
|
|
def: Flag<["-"], "v">,
|
|
Alias<version>,
|
|
HelpText<"Alias for --version">,
|
|
Group<grp_general>;
|
|
|
|
def verbose: F<"verbose">,
|
|
HelpText<"Enable verbose mode.">,
|
|
Group<grp_general>;
|
|
|
|
def statistics: F<"statistics">,
|
|
HelpText<"Print statistics about the contribution of each object file to "
|
|
"the linked debug info. This prints a table after linking with the "
|
|
"object file name, the size of the debug info in the object file "
|
|
"(in bytes) and the size contributed (in bytes) to the linked dSYM. "
|
|
"The table is sorted by the output size listing the object files "
|
|
"with the largest contribution first.">,
|
|
Group<grp_general>;
|
|
|
|
def verify: F<"verify">,
|
|
HelpText<"Run the DWARF verifier on the linked DWARF debug info.">,
|
|
Group<grp_general>;
|
|
|
|
def no_output: F<"no-output">,
|
|
HelpText<"Do the link in memory, but do not emit the result file.">,
|
|
Group<grp_general>;
|
|
|
|
def no_swiftmodule_timestamp: F<"no-swiftmodule-timestamp">,
|
|
HelpText<"Don't check timestamp for swiftmodule files.">,
|
|
Group<grp_general>;
|
|
|
|
def no_odr: F<"no-odr">,
|
|
HelpText<"Do not use ODR (One Definition Rule) for type uniquing.">,
|
|
Group<grp_general>;
|
|
|
|
def dump_debug_map: F<"dump-debug-map">,
|
|
HelpText<"Parse and dump the debug map to standard output. Not DWARF link will take place.">,
|
|
Group<grp_general>;
|
|
|
|
def yaml_input: Flag<["-", "--"], "y">,
|
|
HelpText<"Treat the input file is a YAML debug map rather than a binary.">,
|
|
Group<grp_general>;
|
|
|
|
def papertrail: F<"papertrail">,
|
|
HelpText<"Embed warnings in the linked DWARF debug info.">,
|
|
Group<grp_general>;
|
|
|
|
def assembly: Flag<["-", "--"], "S">,
|
|
HelpText<"Output textual assembly instead of a binary dSYM companion file.">,
|
|
Group<grp_general>;
|
|
|
|
def symtab: F<"symtab">,
|
|
HelpText<"Dumps the symbol table found in executable or object file(s) and exits.">,
|
|
Group<grp_general>;
|
|
def: Flag<["-"], "s">,
|
|
Alias<symtab>,
|
|
HelpText<"Alias for --symtab">,
|
|
Group<grp_general>;
|
|
|
|
def flat: F<"flat">,
|
|
HelpText<"Produce a flat dSYM file (not a bundle).">,
|
|
Group<grp_general>;
|
|
def: Flag<["-"], "f">,
|
|
Alias<flat>,
|
|
HelpText<"Alias for --flat">,
|
|
Group<grp_general>;
|
|
|
|
def minimize: F<"minimize">,
|
|
HelpText<"When used when creating a dSYM file with Apple accelerator tables, "
|
|
"this option will suppress the emission of the .debug_inlines, "
|
|
".debug_pubnames, and .debug_pubtypes sections since dsymutil "
|
|
"has better equivalents: .apple_names and .apple_types. When used in "
|
|
"conjunction with --update option, this option will cause redundant "
|
|
"accelerator tables to be removed.">,
|
|
Group<grp_general>;
|
|
def: Flag<["-"], "z">,
|
|
Alias<minimize>,
|
|
HelpText<"Alias for --minimize">,
|
|
Group<grp_general>;
|
|
|
|
def update: F<"update">,
|
|
HelpText<"Updates existing dSYM files to contain the latest accelerator tables and other DWARF optimizations.">,
|
|
Group<grp_general>;
|
|
def: Flag<["-"], "u">,
|
|
Alias<update>,
|
|
HelpText<"Alias for --update">,
|
|
Group<grp_general>;
|
|
|
|
def output: Separate<["-", "--"], "o">,
|
|
MetaVarName<"<filename>">,
|
|
HelpText<"Specify the output file. Defaults to <input file>.dwarf">,
|
|
Group<grp_general>;
|
|
def: Separate<["--", "-"], "out">,
|
|
MetaVarName<"<filename>">,
|
|
Alias<output>,
|
|
HelpText<"Alias for -o">,
|
|
Group<grp_general>;
|
|
def: Joined<["--", "-"], "out=">, Alias<output>;
|
|
def: Joined<["-", "--"], "o=">, Alias<output>;
|
|
|
|
def oso_prepend_path: Separate<["--", "-"], "oso-prepend-path">,
|
|
MetaVarName<"<path>">,
|
|
HelpText<"Specify a directory to prepend to the paths of object files.">,
|
|
Group<grp_general>;
|
|
def: Joined<["--", "-"], "oso-prepend-path=">, Alias<oso_prepend_path>;
|
|
|
|
def object_prefix_map: Separate<["--", "-"], "object-prefix-map">,
|
|
MetaVarName<"<prefix=remapped>">,
|
|
HelpText<"Remap object file paths (but no source paths) before processing."
|
|
"Use this for Clang objects where the module cache location was"
|
|
"remapped using -fdebug-prefix-map; to help dsymutil"
|
|
"find the Clang module cache.">,
|
|
Group<grp_general>;
|
|
def: Joined<["--", "-"], "object-prefix-map=">, Alias<object_prefix_map>;
|
|
|
|
def symbolmap: Separate<["--", "-"], "symbol-map">,
|
|
MetaVarName<"<bcsymbolmap>">,
|
|
HelpText<"Updates the existing dSYMs inplace using symbol map specified.">,
|
|
Group<grp_general>;
|
|
def: Joined<["--", "-"], "symbol-map=">, Alias<symbolmap>;
|
|
|
|
def arch: Separate<["--", "-"], "arch">,
|
|
MetaVarName<"<arch>">,
|
|
HelpText<"Link DWARF debug information only for specified CPU architecture"
|
|
"types. This option can be specified multiple times, once for each"
|
|
"desired architecture. All CPU architectures will be linked by"
|
|
"default.">,
|
|
Group<grp_general>;
|
|
def: Joined<["--", "-"], "arch=">, Alias<arch>;
|
|
|
|
def accelerator: Separate<["--", "-"], "accelerator">,
|
|
MetaVarName<"<accelerator type>">,
|
|
HelpText<"Specify the desired type of accelerator table. Valid options are 'Apple', 'Dwarf' and 'Default'">,
|
|
Group<grp_general>;
|
|
def: Joined<["--", "-"], "accelerator=">, Alias<accelerator>;
|
|
|
|
def toolchain: Separate<["--", "-"], "toolchain">,
|
|
MetaVarName<"<toolchain>">,
|
|
HelpText<"Embed toolchain information in dSYM bundle.">,
|
|
Group<grp_general>;
|
|
|
|
def threads: Separate<["--", "-"], "num-threads">,
|
|
MetaVarName<"<threads>">,
|
|
HelpText<"Specifies the maximum number of simultaneous threads to use when linking multiple architectures.">,
|
|
Group<grp_general>;
|
|
def: Separate<["-"], "j">,
|
|
MetaVarName<"<threads>">,
|
|
HelpText<"Alias for --num-threads">,
|
|
Group<grp_general>;
|
|
|
|
def gen_reproducer: F<"gen-reproducer">,
|
|
HelpText<"Generate a reproducer consisting of the input object files.">,
|
|
Group<grp_general>;
|
|
|
|
def use_reproducer: Separate<["--", "-"], "use-reproducer">,
|
|
MetaVarName<"<path>">,
|
|
HelpText<"Use the object files from the given reproducer path.">,
|
|
Group<grp_general>;
|
|
def: Joined<["--", "-"], "use-reproducer=">, Alias<use_reproducer>;
|
|
|
|
def remarks_prepend_path: Separate<["--", "-"], "remarks-prepend-path">,
|
|
MetaVarName<"<path>">,
|
|
HelpText<"Specify a directory to prepend to the paths of the external remark files.">,
|
|
Group<grp_general>;
|
|
def: Joined<["--", "-"], "remarks-prepend-path=">, Alias<remarks_prepend_path>;
|
|
|
|
def remarks_output_format: Separate<["--", "-"], "remarks-output-format">,
|
|
MetaVarName<"<format>">,
|
|
HelpText<"Specify the format to be used when serializing the linked remarks.">,
|
|
Group<grp_general>;
|
|
def: Joined<["--", "-"], "remarks-output-format=">, Alias<remarks_output_format>;
|