include "llvm/Option/OptParser.td" // output kinds def grp_kind : OptionGroup<"outs">, HelpText<"OUTPUT KIND">; def relocatable : Flag<["-"], "r">, HelpText<"Create relocatable object file">, Group<grp_kind>; def static : Flag<["-"], "static">, HelpText<"Create static executable">, Group<grp_kind>; def dynamic : Flag<["-"], "dynamic">, HelpText<"Create dynamic executable (default)">,Group<grp_kind>; def dylib : Flag<["-"], "dylib">, HelpText<"Create dynamic library">, Group<grp_kind>; def bundle : Flag<["-"], "bundle">, HelpText<"Create dynamic bundle">, Group<grp_kind>; def execute : Flag<["-"], "execute">, HelpText<"Create main executable (default)">, Group<grp_kind>; def preload : Flag<["-"], "preload">, HelpText<"Create binary for use with embedded systems">, Group<grp_kind>; // optimizations def grp_opts : OptionGroup<"opts">, HelpText<"OPTIMIZATIONS">; def dead_strip : Flag<["-"], "dead_strip">, HelpText<"Remove unreference code and data">, Group<grp_opts>; def macosx_version_min : Separate<["-"], "macosx_version_min">, MetaVarName<"<version>">, HelpText<"Minimum Mac OS X version">, Group<grp_opts>; def ios_version_min : Separate<["-"], "ios_version_min">, MetaVarName<"<version>">, HelpText<"Minimum iOS version">, Group<grp_opts>; def iphoneos_version_min : Separate<["-"], "iphoneos_version_min">, Alias<ios_version_min>; def ios_simulator_version_min : Separate<["-"], "ios_simulator_version_min">, MetaVarName<"<version>">, HelpText<"Minimum iOS simulator version">, Group<grp_opts>; def sdk_version : Separate<["-"], "sdk_version">, MetaVarName<"<version>">, HelpText<"SDK version">, Group<grp_opts>; def source_version : Separate<["-"], "source_version">, MetaVarName<"<version>">, HelpText<"Source version">, Group<grp_opts>; def version_load_command : Flag<["-"], "version_load_command">, HelpText<"Force generation of a version load command">, Group<grp_opts>; def no_version_load_command : Flag<["-"], "no_version_load_command">, HelpText<"Disable generation of a version load command">, Group<grp_opts>; def function_starts : Flag<["-"], "function_starts">, HelpText<"Force generation of a function starts load command">, Group<grp_opts>; def no_function_starts : Flag<["-"], "no_function_starts">, HelpText<"Disable generation of a function starts load command">, Group<grp_opts>; def data_in_code_info : Flag<["-"], "data_in_code_info">, HelpText<"Force generation of a data in code load command">, Group<grp_opts>; def no_data_in_code_info : Flag<["-"], "no_data_in_code_info">, HelpText<"Disable generation of a data in code load command">, Group<grp_opts>; def mllvm : Separate<["-"], "mllvm">, MetaVarName<"<option>">, HelpText<"Options to pass to LLVM during LTO">, Group<grp_opts>; def exported_symbols_list : Separate<["-"], "exported_symbols_list">, MetaVarName<"<file-path>">, HelpText<"Restricts which symbols will be exported">, Group<grp_opts>; def exported_symbol : Separate<["-"], "exported_symbol">, MetaVarName<"<symbol>">, HelpText<"Restricts which symbols will be exported">, Group<grp_opts>; def unexported_symbols_list : Separate<["-"], "unexported_symbols_list">, MetaVarName<"<file-path>">, HelpText<"Lists symbols that should not be exported">, Group<grp_opts>; def unexported_symbol : Separate<["-"], "unexported_symbol">, MetaVarName<"<symbol>">, HelpText<"A symbol which should not be exported">, Group<grp_opts>; def keep_private_externs : Flag<["-"], "keep_private_externs">, HelpText<"Private extern (hidden) symbols should not be transformed " "into local symbols">, Group<grp_opts>; def order_file : Separate<["-"], "order_file">, MetaVarName<"<file-path>">, HelpText<"re-order and move specified symbols to start of their section">, Group<grp_opts>; def flat_namespace : Flag<["-"], "flat_namespace">, HelpText<"Resolves symbols in any (transitively) linked dynamic libraries. " "Source libraries are not recorded: dyld will re-search all " "images at runtime and use the first definition found.">, Group<grp_opts>; def twolevel_namespace : Flag<["-"], "twolevel_namespace">, HelpText<"Resolves symbols in listed libraries only. Source libraries are " "recorded in the symbol table.">, Group<grp_opts>; def undefined : Separate<["-"], "undefined">, MetaVarName<"<undefined>">, HelpText<"Determines how undefined symbols are handled.">, Group<grp_opts>; def no_objc_category_merging : Flag<["-"], "no_objc_category_merging">, HelpText<"Disables the optimisation which merges Objective-C categories " "on a class in to the class itself.">, Group<grp_opts>; // main executable options def grp_main : OptionGroup<"opts">, HelpText<"MAIN EXECUTABLE OPTIONS">; def entry : Separate<["-"], "e">, MetaVarName<"<entry-name>">, HelpText<"entry symbol name">,Group<grp_main>; def pie : Flag<["-"], "pie">, HelpText<"Create Position Independent Executable (for ASLR)">, Group<grp_main>; def no_pie : Flag<["-"], "no_pie">, HelpText<"Do not create Position Independent Executable">, Group<grp_main>; def stack_size : Separate<["-"], "stack_size">, HelpText<"Specifies the maximum stack size for the main thread in a program. " "Must be a page-size multiple. (default=8Mb)">, Group<grp_main>; def export_dynamic : Flag<["-"], "export_dynamic">, HelpText<"Preserves all global symbols in main executables during LTO">, Group<grp_main>; // dylib executable options def grp_dylib : OptionGroup<"opts">, HelpText<"DYLIB EXECUTABLE OPTIONS">; def install_name : Separate<["-"], "install_name">, MetaVarName<"<path>">, HelpText<"The dylib's install name">, Group<grp_dylib>; def mark_dead_strippable_dylib : Flag<["-"], "mark_dead_strippable_dylib">, HelpText<"Marks the dylib as having no side effects during initialization">, Group<grp_dylib>; def compatibility_version : Separate<["-"], "compatibility_version">, MetaVarName<"<version>">, HelpText<"The dylib's compatibility version">, Group<grp_dylib>; def current_version : Separate<["-"], "current_version">, MetaVarName<"<version>">, HelpText<"The dylib's current version">, Group<grp_dylib>; // dylib executable options - compatibility aliases def dylib_install_name : Separate<["-"], "dylib_install_name">, Alias<install_name>; def dylib_compatibility_version : Separate<["-"], "dylib_compatibility_version">, MetaVarName<"<version>">, Alias<compatibility_version>; def dylib_current_version : Separate<["-"], "dylib_current_version">, MetaVarName<"<version>">, Alias<current_version>; // bundle executable options def grp_bundle : OptionGroup<"opts">, HelpText<"BUNDLE EXECUTABLE OPTIONS">; def bundle_loader : Separate<["-"], "bundle_loader">, MetaVarName<"<path>">, HelpText<"The executable that will be loading this Mach-O bundle">, Group<grp_bundle>; // library options def grp_libs : OptionGroup<"libs">, HelpText<"LIBRARY OPTIONS">; def L : JoinedOrSeparate<["-"], "L">, MetaVarName<"<dir>">, HelpText<"Add directory to library search path">, Group<grp_libs>; def F : JoinedOrSeparate<["-"], "F">, MetaVarName<"<dir>">, HelpText<"Add directory to framework search path">, Group<grp_libs>; def Z : Flag<["-"], "Z">, HelpText<"Do not search standard directories for libraries or frameworks">; def all_load : Flag<["-"], "all_load">, HelpText<"Forces all members of all static libraries to be loaded">, Group<grp_libs>; def force_load : Separate<["-"], "force_load">, MetaVarName<"<library-path>">, HelpText<"Forces all members of specified static libraries to be loaded">, Group<grp_libs>; def syslibroot : Separate<["-"], "syslibroot">, MetaVarName<"<dir>">, HelpText<"Add path to SDK to all absolute library search paths">, Group<grp_libs>; // Input options def l : Joined<["-"], "l">, MetaVarName<"<libname>">, HelpText<"Base name of library searched for in -L directories">; def upward_l : Joined<["-"], "upward-l">, MetaVarName<"<libname>">, HelpText<"Base name of upward library searched for in -L directories">; def framework : Separate<["-"], "framework">, MetaVarName<"<name>">, HelpText<"Base name of framework searched for in -F directories">; def upward_framework : Separate<["-"], "upward_framework">, MetaVarName<"<name>">, HelpText<"Base name of upward framework searched for in -F directories">; def upward_library : Separate<["-"], "upward_library">, MetaVarName<"<path>">, HelpText<"path to upward dylib to link with">; def filelist : Separate<["-"], "filelist">, MetaVarName<"<path>">, HelpText<"file containing paths to input files">; // test case options def print_atoms : Flag<["-"], "print_atoms">, HelpText<"Emit output as yaml atoms">; def test_file_usage : Flag<["-"], "test_file_usage">, HelpText<"Only files specified by -file_exists are considered to exist. " "Print which files would be used">; def path_exists : Separate<["-"], "path_exists">, MetaVarName<"<path>">, HelpText<"Used with -test_file_usage to declare a path">; // general options def output : Separate<["-"], "o">, MetaVarName<"<path>">, HelpText<"Output file path">; def arch : Separate<["-"], "arch">, MetaVarName<"<arch-name>">, HelpText<"Architecture to link">; def sectalign : MultiArg<["-"], "sectalign", 3>, MetaVarName<"<segname> <sectname> <alignment>">, HelpText<"Alignment for segment/section">; def sectcreate : MultiArg<["-"], "sectcreate", 3>, MetaVarName<"<segname> <sectname> <file>">, HelpText<"Create section <segname>/<sectname> from contents of <file>">; def image_base : Separate<["-"], "image_base">; def seg1addr : Separate<["-"], "seg1addr">, Alias<image_base>; def demangle : Flag<["-"], "demangle">, HelpText<"Demangles symbol names in errors and warnings">; def dependency_info : Separate<["-"], "dependency_info">, MetaVarName<"<file>">, HelpText<"Write binary list of files used during link">; def S : Flag<["-"], "S">, HelpText<"Remove debug information (STABS or DWARF) from the output file">; def rpath : Separate<["-"], "rpath">, MetaVarName<"<path>">, HelpText<"Add path to the runpath search path list for image being created">; def t : Flag<["-"], "t">, HelpText<"Print the names of the input files as ld processes them">; def v : Flag<["-"], "v">, HelpText<"Print linker information">; def error_limit : Separate<["-", "--"], "error-limit">, MetaVarName<"<number>">, HelpText<"Maximum number of errors to emit before stopping (0 = no limit)">; // Ignored options def lto_library : Separate<["-"], "lto_library">, MetaVarName<"<path>">, HelpText<"Ignored for compatibility with other linkers">; // Obsolete options def grp_obsolete : OptionGroup<"obsolete">, HelpText<"OBSOLETE OPTIONS">; def single_module : Flag<["-"], "single_module">, HelpText<"Default for dylibs">, Group<grp_obsolete>; def multi_module : Flag<["-"], "multi_module">, HelpText<"Unsupported way to build dylibs">, Group<grp_obsolete>; def objc_gc_compaction : Flag<["-"], "objc_gc_compaction">, HelpText<"Unsupported ObjC GC option">, Group<grp_obsolete>; def objc_gc : Flag<["-"], "objc_gc">, HelpText<"Unsupported ObjC GC option">, Group<grp_obsolete>; def objc_gc_only : Flag<["-"], "objc_gc_only">, HelpText<"Unsupported ObjC GC option">, Group<grp_obsolete>;