2020-04-03 02:54:05 +08:00
include "llvm/Option/OptParser.td"
2020-11-18 01:15:42 +08:00
// Flags that lld/MachO understands but ld64 doesn't. These take
// '--' instead of '-' and use dashes instead of underscores, so
// they don't collide with the ld64 compat options.
2021-01-13 03:55:38 +08:00
def grp_lld : OptionGroup < "kind" > , HelpText < "LLD-SPECIFIC" > ;
2020-11-18 01:15:42 +08:00
2021-01-13 03:55:38 +08:00
def help : Flag < [ "-" , "--" ] , "help" > ,
Group < grp_lld > ;
2020-06-16 03:36:32 +08:00
def help_hidden : Flag < [ "--" ] , "help-hidden" > ,
2021-01-13 03:55:38 +08:00
HelpText < "Display help for hidden options" > ,
Group < grp_lld > ;
2021-03-30 08:33:48 +08:00
def verbose : Flag < [ "--" ] , "verbose" > ,
Group < grp_lld > ;
2021-04-26 08:28:49 +08:00
def error_limit_eq : Joined < [ "--" ] , "error-limit=" > ,
HelpText < "Maximum number of errors to print before exiting (default: 20)" > ,
Group < grp_lld > ;
2020-11-18 01:15:42 +08:00
def color_diagnostics : Flag < [ "--" ] , "color-diagnostics" > ,
2021-01-13 03:55:38 +08:00
HelpText < "Alias for --color-diagnostics=always" > ,
Group < grp_lld > ;
2020-11-18 01:15:42 +08:00
def no_color_diagnostics : Flag < [ "--" ] , "no-color-diagnostics" > ,
2021-01-13 03:55:38 +08:00
HelpText < "Alias for --color-diagnostics=never" > ,
Group < grp_lld > ;
2020-11-18 01:15:42 +08:00
def color_diagnostics_eq : Joined < [ "--" ] , "color-diagnostics=" > ,
2021-01-13 03:55:38 +08:00
HelpText < "Use colors in diagnostics (default: auto)" > ,
MetaVarName < "[auto,always,never]" > ,
Group < grp_lld > ;
2021-03-26 02:39:45 +08:00
def threads_eq : Joined < [ "--" ] , "threads=" > ,
HelpText < "Number of threads. '1' disables multi-threading. By default all available hardware threads are used" > ,
Group < grp_lld > ;
2021-04-09 00:14:47 +08:00
def thinlto_jobs_eq : Joined < [ "--" ] , "thinlto-jobs=" > ,
HelpText < "Number of ThinLTO jobs. Default to --threads=" > ,
Group < grp_lld > ;
2021-01-13 03:55:38 +08:00
def reproduce : Separate < [ "--" ] , "reproduce" > ,
Group < grp_lld > ;
2020-11-29 11:38:27 +08:00
def reproduce_eq : Joined < [ "--" ] , "reproduce=" > ,
Alias < ! cast < Separate > ( reproduce ) > ,
2021-01-13 03:55:38 +08:00
HelpText < "Write tar file containing inputs and command to reproduce link" > ,
Group < grp_lld > ;
2020-12-23 04:51:20 +08:00
def version : Flag < [ "--" ] , "version" > ,
2021-01-13 03:55:38 +08:00
HelpText < "Display the version number and exit" > ,
Group < grp_lld > ;
2021-01-13 03:41:56 +08:00
def lto_legacy_pass_manager : Flag < [ "--" ] , "lto-legacy-pass-manager" > ,
HelpText < "Use the legacy pass manager in LLVM" > ,
Group < grp_lld > ;
def no_lto_legacy_pass_manager : Flag < [ "--" ] , "no-lto-legacy-pass-manager" > ,
HelpText < "Use the new pass manager in LLVM" > ,
Group < grp_lld > ;
2021-03-11 22:04:27 +08:00
def time_trace : Flag < [ "--" ] , "time-trace" > , HelpText < "Record time trace" > ;
2021-03-25 09:05:26 +08:00
def time_trace_granularity_eq : Joined < [ "--" ] , "time-trace-granularity=" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Minimum time granularity (in microseconds) traced by time profiler" > ;
2021-03-25 09:05:26 +08:00
def time_trace_file_eq : Joined < [ "--" ] , "time-trace-file=" > , HelpText < "Specify time trace output file" > ;
2020-04-22 04:37:57 +08:00
2020-06-16 03:36:32 +08:00
// This is a complete Options.td compiled from Apple's ld(1) manpage
// dated 2018-03-07 and cross checked with ld64 source code in repo
// https://github.com/apple-opensource/ld64 at git tag "512.4" dated
// 2018-03-18.
2020-04-22 04:37:57 +08:00
2020-06-16 03:36:32 +08:00
// Flags<[HelpHidden]> marks options that are not yet ported to lld,
// and serve as a scoreboard for annotating our progress toward
// implementing ld64 options in lld. As you add implementions to
// Driver.cpp, please remove the hidden flag here.
2020-04-03 02:54:05 +08:00
2020-06-16 03:36:32 +08:00
def grp_kind : OptionGroup < "kind" > , HelpText < "OUTPUT KIND" > ;
2020-04-29 07:58:22 +08:00
2020-06-16 03:36:32 +08:00
def execute : Flag < [ "-" ] , "execute" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Produce a main executable (default)" > ,
Group < grp_kind > ;
2020-06-16 03:36:32 +08:00
def dylib : Flag < [ "-" ] , "dylib" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Produce a shared library" > ,
Group < grp_kind > ;
2020-06-16 03:36:32 +08:00
def bundle : Flag < [ "-" ] , "bundle" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Produce a bundle" > ,
Group < grp_kind > ;
2020-06-16 03:36:32 +08:00
def r : Flag < [ "-" ] , "r" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Merge multiple object files into one, retaining relocations" > ,
Flags < [ HelpHidden ] > ,
Group < grp_kind > ;
2020-06-16 03:36:32 +08:00
def dylinker : Flag < [ "-" ] , "dylinker" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Produce a dylinker only used when building dyld" > ,
Flags < [ HelpHidden ] > ,
Group < grp_kind > ;
2020-06-16 03:36:32 +08:00
def dynamic : Flag < [ "-" ] , "dynamic" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Link dynamically (default)" > ,
Group < grp_kind > ;
2020-06-16 03:36:32 +08:00
def static : Flag < [ "-" ] , "static" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Link statically" > ,
Flags < [ HelpHidden ] > ,
Group < grp_kind > ;
2020-06-16 03:36:32 +08:00
def preload : Flag < [ "-" ] , "preload" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Produce an unsegmented binary for embedded systems" > ,
Flags < [ HelpHidden ] > ,
Group < grp_kind > ;
2020-06-16 03:36:32 +08:00
def arch : Separate < [ "-" ] , "arch" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<arch_name>" > ,
HelpText < "The architecture (e.g. ppc, ppc64, i386, x86_64)" > ,
Group < grp_kind > ;
2020-06-16 03:36:32 +08:00
def o : Separate < [ "-" ] , "o" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<path>" > ,
HelpText < "The name of the output file (default: `a.out')" > ,
Group < grp_kind > ;
2020-04-03 02:54:05 +08:00
2020-06-16 03:36:32 +08:00
def grp_libs : OptionGroup < "libs" > , HelpText < "LIBRARIES" > ;
2020-04-29 07:58:22 +08:00
2020-06-16 03:36:32 +08:00
def l : Joined < [ "-" ] , "l" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<name>" > ,
HelpText < "Search for lib<name>.dylib or lib<name>.a on the library search path" > ,
Group < grp_libs > ;
2020-06-16 03:36:32 +08:00
def weak_l : Joined < [ "-" ] , "weak-l" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<name>" > ,
HelpText < "Like -l<name>, but mark library and its references as weak imports" > ,
Group < grp_libs > ;
2020-06-16 03:36:32 +08:00
def weak_library : Separate < [ "-" ] , "weak_library" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<path>" > ,
HelpText < "Like bare <path>, but mark library and its references as weak imports" > ,
Group < grp_libs > ;
2020-06-16 03:36:32 +08:00
def reexport_l : Joined < [ "-" ] , "reexport-l" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<name>" > ,
HelpText < "Like -l<name>, but export all symbols of <name> from newly created library" > ,
Flags < [ HelpHidden ] > ,
Group < grp_libs > ;
2020-06-16 03:36:32 +08:00
def reexport_library : Separate < [ "-" ] , "reexport_library" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<path>" > ,
HelpText < "Like bare <path>, but export all symbols of <path> from newly created library" > ,
Flags < [ HelpHidden ] > ,
Group < grp_libs > ;
2020-06-16 03:36:32 +08:00
def upward_l : Joined < [ "-" ] , "upward-l" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<name>" > ,
HelpText < "Like -l<name>, but specify dylib as an upward dependency" > ,
Flags < [ HelpHidden ] > ,
Group < grp_libs > ;
2020-06-16 03:36:32 +08:00
def upward_library : Separate < [ "-" ] , "upward_library" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<path>" > ,
HelpText < "Like bare <path>, but specify dylib as an upward dependency" > ,
Flags < [ HelpHidden ] > ,
Group < grp_libs > ;
2020-06-16 03:36:32 +08:00
def L : JoinedOrSeparate < [ "-" ] , "L" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<dir>" > ,
HelpText < "Add dir to the library search path" > ,
Group < grp_libs > ;
2020-06-16 03:36:32 +08:00
def Z : Flag < [ "-" ] , "Z" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Remove standard directories from the library and framework search paths" > ,
Group < grp_libs > ;
2020-06-16 03:36:32 +08:00
def syslibroot : Separate < [ "-" ] , "syslibroot" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<rootdir>" > ,
HelpText < "Prepend <rootdir> to all library and framework search paths" > ,
Group < grp_libs > ;
2020-06-16 03:36:32 +08:00
def search_paths_first : Flag < [ "-" ] , "search_paths_first" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Search for lib<name>.dylib and lib<name>.a at each step in traversing search path (default for Xcode 4 and later)" > ,
Group < grp_libs > ;
2020-06-16 03:36:32 +08:00
def search_dylibs_first : Flag < [ "-" ] , "search_dylibs_first" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Search for lib<name>.dylib on first pass, then for lib<name>.a on second pass through search path (default for Xcode 3 and earlier)" > ,
Group < grp_libs > ;
2020-06-16 03:36:32 +08:00
def framework : Separate < [ "-" ] , "framework" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<name>" > ,
HelpText < "Search for <name>.framework/<name> on the framework search path" > ,
Group < grp_libs > ;
2020-06-16 03:36:32 +08:00
def weak_framework : Separate < [ "-" ] , "weak_framework" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<name>" > ,
HelpText < "Like -framework <name>, but mark framework and its references as weak imports" > ,
Group < grp_libs > ;
2020-06-16 03:36:32 +08:00
def reexport_framework : Separate < [ "-" ] , "reexport_framework" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<name>" > ,
HelpText < "Like -framework <name>, but export all symbols of <name> from the newly created library" > ,
Flags < [ HelpHidden ] > ,
Group < grp_libs > ;
2020-06-16 03:36:32 +08:00
def upward_framework : Separate < [ "-" ] , "upward_framework" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<name>" > ,
HelpText < "Like -framework <name>, but specify the framework as an upward dependency" > ,
Flags < [ HelpHidden ] > ,
Group < grp_libs > ;
2020-06-16 03:36:32 +08:00
def F : JoinedOrSeparate < [ "-" ] , "F" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<dir>" > ,
HelpText < "Add dir to the framework search path" > ,
Group < grp_libs > ;
2020-06-16 03:36:32 +08:00
def all_load : Flag < [ "-" ] , "all_load" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Load all members of all static archive libraries" > ,
Group < grp_libs > ;
2020-06-16 03:36:32 +08:00
def ObjC : Flag < [ "-" ] , "ObjC" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Load all members of static archives that are an Objective-C class or category." > ,
Group < grp_libs > ;
2020-06-16 03:36:32 +08:00
def force_load : Separate < [ "-" ] , "force_load" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<path>" > ,
HelpText < "Load all members static archive library at <path>" > ,
Group < grp_libs > ;
2020-04-22 04:37:57 +08:00
2020-06-16 03:36:32 +08:00
def grp_content : OptionGroup < "content" > , HelpText < "ADDITIONAL CONTENT" > ;
2020-04-03 02:54:05 +08:00
2020-06-16 03:36:32 +08:00
def sectcreate : MultiArg < [ "-" ] , "sectcreate" , 3 > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<segment> <section> <file>" > ,
HelpText < "Create <section> in <segment> from the contents of <file>" > ,
Group < grp_content > ;
2020-06-16 03:36:32 +08:00
def segcreate : MultiArg < [ "-" ] , "segcreate" , 3 > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<segment> <section> <file>" > ,
Alias < sectcreate > ,
HelpText < "Alias for -sectcreate" > ,
Group < grp_content > ;
2020-06-16 03:36:32 +08:00
def filelist : Separate < [ "-" ] , "filelist" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<file>" > ,
HelpText < "Read names of files to link from <file>" > ,
Group < grp_content > ;
2020-06-16 03:36:32 +08:00
def dtrace : Separate < [ "-" ] , "dtrace" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<script>" > ,
HelpText < "Enable DTrace static probes according to declarations in <script>" > ,
Flags < [ HelpHidden ] > ,
Group < grp_content > ;
2020-05-06 07:37:34 +08:00
2020-06-16 03:36:32 +08:00
def grp_opts : OptionGroup < "opts" > , HelpText < "OPTIMIZATIONS" > ;
2020-04-24 11:16:49 +08:00
2020-06-16 03:36:32 +08:00
def dead_strip : Flag < [ "-" ] , "dead_strip" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Remove unreachable functions and data" > ,
Flags < [ HelpHidden ] > ,
Group < grp_opts > ;
2020-06-16 03:36:32 +08:00
def order_file : Separate < [ "-" ] , "order_file" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<file>" > ,
HelpText < "Layout functions and data according to specification in <file>" > ,
Group < grp_opts > ;
2020-06-16 03:36:32 +08:00
def no_order_inits : Flag < [ "-" ] , "no_order_inits" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Disable default reordering of initializer and terminator functions" > ,
Flags < [ HelpHidden ] > ,
Group < grp_opts > ;
2020-06-16 03:36:32 +08:00
def no_order_data : Flag < [ "-" ] , "no_order_data" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Disable default reordering of global data accessed at launch time" > ,
Flags < [ HelpHidden ] > ,
Group < grp_opts > ;
2020-06-16 03:36:32 +08:00
def image_base : Separate < [ "-" ] , "image_base" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<address>" > ,
HelpText < "Preferred hex load address for a dylib or bundle." > ,
Flags < [ HelpHidden ] > ,
Group < grp_opts > ;
2020-06-16 03:36:32 +08:00
def seg1addr : Separate < [ "-" ] , "seg1addr" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<address>" > ,
Alias < image_base > ,
HelpText < "Alias for -image_base" > ,
Flags < [ HelpHidden ] > ,
Group < grp_opts > ;
2020-06-16 03:36:32 +08:00
def no_implicit_dylibs : Flag < [ "-" ] , "no_implicit_dylibs" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Do not optimize public dylib transitive symbol references" > ,
Group < grp_opts > ;
2020-06-16 03:36:32 +08:00
def exported_symbols_order : Separate < [ "-" ] , "exported_symbols_order" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<file>" > ,
HelpText < "Specify frequently-used symbols in <file> to optimize symbol exports" > ,
Flags < [ HelpHidden ] > ,
Group < grp_opts > ;
2020-06-16 03:36:32 +08:00
def no_zero_fill_sections : Flag < [ "-" ] , "no_zero_fill_sections" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Explicitly store zeroed data in the final image" > ,
Flags < [ HelpHidden ] > ,
Group < grp_opts > ;
2020-06-16 03:36:32 +08:00
def merge_zero_fill_sections : Flag < [ "-" ] , "merge_zero_fill_sections" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Merge all zeroed data into the __zerofill section" > ,
Flags < [ HelpHidden ] > ,
Group < grp_opts > ;
2020-06-16 03:36:32 +08:00
def no_branch_islands : Flag < [ "-" ] , "no_branch_islands" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Disable infra for branches beyond the maximum branch distance." > ,
Flags < [ HelpHidden ] > ,
Group < grp_opts > ;
2020-04-03 02:54:05 +08:00
2021-02-04 02:35:56 +08:00
def grp_version : OptionGroup < "version" > , HelpText < "VERSION TARGETING" > ;
2020-12-11 13:36:42 +08:00
def platform_version : MultiArg < [ "-" ] , "platform_version" , 3 > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<platform> <min_version> <sdk_version>" > ,
HelpText < "Platform (e.g., macos, ios, tvos, watchos, bridgeos, mac-catalyst, ios-sim, tvos-sim, watchos-sim, driverkit) and version numbers" > ,
Group < grp_version > ;
2020-12-11 13:36:42 +08:00
def sdk_version : Separate < [ "-" ] , "sdk_version" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is undocumented in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_version > ;
2020-12-11 13:36:42 +08:00
def macos_version_min : Separate < [ "-" ] , "macos_version_min" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<version>" > ,
HelpText < "Oldest macOS version for which linked output is usable" > ,
Group < grp_version > ;
2020-12-11 13:36:42 +08:00
def macosx_version_min : Separate < [ "-" ] , "macosx_version_min" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<version>" > ,
Alias < macos_version_min > ,
HelpText < "Alias for -macos_version_min" > ,
Flags < [ HelpHidden ] > ,
Group < grp_version > ;
2020-12-11 13:36:42 +08:00
def ios_version_min : Separate < [ "-" ] , "ios_version_min" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<version>" > ,
HelpText < "Oldest iOS version for which linked output is usable" > ,
Flags < [ HelpHidden ] > ,
Group < grp_version > ;
2020-12-11 13:36:42 +08:00
def ios_simulator_version_min : Separate < [ "-" ] , "ios_simulator_version_min" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<version>" > ,
HelpText < "Oldest iOS simulator version for which linked output is usable" > ,
Flags < [ HelpHidden ] > ,
Group < grp_version > ;
2020-12-11 13:36:42 +08:00
def iphoneos_version_min : Separate < [ "-" ] , "iphoneos_version_min" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<version>" > ,
Alias < ios_version_min > ,
HelpText < "Alias for -ios_version_min" > ,
Flags < [ HelpHidden ] > ,
Group < grp_version > ;
2020-12-11 13:36:42 +08:00
def maccatalyst_version_min : Separate < [ "-" ] , "maccatalyst_version_min" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<version>" > ,
HelpText < "Oldest MacCatalyst version for which linked output is usable" > ,
Flags < [ HelpHidden ] > ,
Group < grp_version > ;
2020-12-11 13:36:42 +08:00
def iosmac_version_min : Separate < [ "-" ] , "iosmac_version_min" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<version>" > ,
Alias < maccatalyst_version_min > ,
HelpText < "Alias for -maccatalyst_version_min" > ,
Flags < [ HelpHidden ] > ,
Group < grp_version > ;
2020-12-11 13:36:42 +08:00
def uikitformac_version_min : Separate < [ "-" ] , "uikitformac_version_min" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<version>" > ,
Alias < maccatalyst_version_min > ,
HelpText < "Alias for -maccatalyst_version_min" > ,
Flags < [ HelpHidden ] > ,
Group < grp_version > ;
2020-12-11 13:36:42 +08:00
def tvos_version_min : Separate < [ "-" ] , "tvos_version_min" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<version>" > ,
HelpText < "Oldest tvOS version for which linked output is usable" > ,
Flags < [ HelpHidden ] > ,
Group < grp_version > ;
2020-12-11 13:36:42 +08:00
def watchos_version_min : Separate < [ "-" ] , "watchos_version_min" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<version>" > ,
HelpText < "Oldest watchOS version for which linked output is usable" > ,
Flags < [ HelpHidden ] > ,
Group < grp_version > ;
2020-12-11 13:36:42 +08:00
def bridgeos_version_min : Separate < [ "-" ] , "bridgeos_version_min" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<version>" > ,
HelpText < "Oldest bridgeOS version for which linked output is usable" > ,
Flags < [ HelpHidden ] > ,
Group < grp_version > ;
2020-12-11 13:36:42 +08:00
def driverkit_version_min : Separate < [ "-" ] , "driverkit_version_min" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<version>" > ,
HelpText < "Oldest DriverKit version for which linked output is usable" > ,
Flags < [ HelpHidden ] > ,
Group < grp_version > ;
2020-12-11 13:36:42 +08:00
2020-06-16 03:36:32 +08:00
def grp_dylib : OptionGroup < "dylib" > , HelpText < "DYNAMIC LIBRARIES (DYLIB)" > ;
def install_name : Separate < [ "-" ] , "install_name" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<name>" > ,
HelpText < "Set an internal install path in a dylib" > ,
Group < grp_dylib > ;
2020-06-16 03:36:32 +08:00
def dylib_install_name : Separate < [ "-" ] , "dylib_install_name" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<name>" > ,
Alias < install_name > ,
HelpText < "Alias for -install_name" > ,
Group < grp_dylib > ;
2020-06-16 03:36:32 +08:00
def dylinker_install_name : Separate < [ "-" ] , "dylinker_install_name" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<name>" > ,
Alias < install_name > ,
HelpText < "Alias for -install_name" > ,
Group < grp_dylib > ;
2020-06-16 03:36:32 +08:00
def mark_dead_strippable_dylib : Flag < [ "-" ] , "mark_dead_strippable_dylib" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Mark output dylib as dead-strippable: When a client links against it but does not use any of its symbols, the dylib will not be added to the client's list of needed dylibs" > ,
Group < grp_dylib > ;
2020-06-16 03:36:32 +08:00
def compatibility_version : Separate < [ "-" ] , "compatibility_version" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<version>" > ,
HelpText < "Compatibility <version> of this library" > ,
Group < grp_dylib > ;
2020-06-16 03:36:32 +08:00
def dylib_compatibility_version : Separate < [ "-" ] , "dylib_compatibility_version" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<version>" > ,
Alias < compatibility_version > ,
HelpText < "Alias for -compatibility_version" > ,
Flags < [ HelpHidden ] > ,
Group < grp_dylib > ;
2020-06-16 03:36:32 +08:00
def current_version : Separate < [ "-" ] , "current_version" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<version>" > ,
HelpText < "Current <version> of this library" > ,
Group < grp_dylib > ;
2020-06-16 03:36:32 +08:00
def dylib_current_version : Separate < [ "-" ] , "dylib_current_version" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<version>" > ,
Alias < current_version > ,
HelpText < "Alias for -current_version" > ,
Flags < [ HelpHidden ] > ,
Group < grp_dylib > ;
2020-06-16 03:36:32 +08:00
def grp_main : OptionGroup < "main" > , HelpText < "MAIN EXECUTABLE" > ;
def pie : Flag < [ "-" ] , "pie" > ,
2021-04-30 03:09:01 +08:00
HelpText < "Build a position independent executable (default)" > ,
2021-03-21 13:10:04 +08:00
Group < grp_main > ;
2020-06-16 03:36:32 +08:00
def no_pie : Flag < [ "-" ] , "no_pie" > ,
2021-04-30 03:09:01 +08:00
HelpText < "Do not build a position independent executable" > ,
2021-03-21 13:10:04 +08:00
Group < grp_main > ;
2020-06-16 03:36:32 +08:00
def pagezero_size : Separate < [ "-" ] , "pagezero_size" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<size>" > ,
HelpText < "Size of unreadable segment at address zero is hex <size> (default is 4KB on 32-bit and 4GB on 64-bit)" > ,
Flags < [ HelpHidden ] > ,
Group < grp_main > ;
2020-06-16 03:36:32 +08:00
def stack_size : Separate < [ "-" ] , "stack_size" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<size>" > ,
HelpText < "Maximum hex stack size for the main thread in a program. (default is 8MB)" > ,
Flags < [ HelpHidden ] > ,
Group < grp_main > ;
2020-06-16 03:36:32 +08:00
def allow_stack_execute : Flag < [ "-" ] , "allow_stack_execute" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Mark stack segment as executable" > ,
Flags < [ HelpHidden ] > ,
Group < grp_main > ;
2020-06-16 03:36:32 +08:00
def export_dynamic : Flag < [ "-" ] , "export_dynamic" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Preserve all global symbols during LTO" > ,
Flags < [ HelpHidden ] > ,
Group < grp_main > ;
2020-06-16 03:36:32 +08:00
def grp_bundle : OptionGroup < "bundle" > , HelpText < "CREATING A BUNDLE" > ;
def bundle_loader : Separate < [ "-" ] , "bundle_loader" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<executable>" > ,
HelpText < "Resolve undefined symbols from <executable>" > ,
Group < grp_bundle > ;
2020-06-16 03:36:32 +08:00
def grp_object : OptionGroup < "object" > , HelpText < "CREATING AN OBJECT FILE" > ;
def keep_private_externs : Flag < [ "-" ] , "keep_private_externs" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Do not convert private external symbols to static symbols (only valid with -r)" > ,
Flags < [ HelpHidden ] > ,
Group < grp_object > ;
2020-06-16 03:36:32 +08:00
def d : Flag < [ "-" ] , "d" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Force tentative into real definitions for common symbols" > ,
Flags < [ HelpHidden ] > ,
Group < grp_object > ;
2020-06-16 03:36:32 +08:00
def grp_resolve : OptionGroup < "resolve" > , HelpText < "SYMBOL RESOLUTION" > ;
def exported_symbol : Separate < [ "-" ] , "exported_symbol" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<symbol>" > ,
HelpText < "<symbol> remains global, while others become private externs" > ,
Group < grp_resolve > ;
2021-03-04 04:15:09 +08:00
def exported_symbols_list : Separate < [ "-" ] , "exported_symbols_list" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<file>" > ,
HelpText < "Symbols specified in <file> remain global, while others become private externs" > ,
Group < grp_resolve > ;
2020-06-16 03:36:32 +08:00
def unexported_symbol : Separate < [ "-" ] , "unexported_symbol" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<symbol>" > ,
HelpText < "Global <symbol> becomes private extern" > ,
Group < grp_resolve > ;
2021-03-04 04:15:09 +08:00
def unexported_symbols_list : Separate < [ "-" ] , "unexported_symbols_list" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<file>" > ,
HelpText < "Global symbols specified in <file> become private externs" > ,
Group < grp_resolve > ;
2020-06-16 03:36:32 +08:00
def reexported_symbols_list : Separate < [ "-" ] , "reexported_symbols_list" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<file>" > ,
HelpText < "Symbols from dependent dylibs specified in <file> are reexported by this dylib" > ,
Flags < [ HelpHidden ] > ,
Group < grp_resolve > ;
2020-06-16 03:36:32 +08:00
def alias : MultiArg < [ "-" ] , "alias" , 2 > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<symbol_name> <alternate_name>" > ,
HelpText < "Create a symbol alias with default global visibility" > ,
Flags < [ HelpHidden ] > ,
Group < grp_resolve > ;
2020-06-16 03:36:32 +08:00
def alias_list : Separate < [ "-" ] , "alias_list" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<file>" > ,
HelpText < "Create symbol aliases specified in <file>" > ,
Flags < [ HelpHidden ] > ,
Group < grp_resolve > ;
2020-06-16 03:36:32 +08:00
def flat_namespace : Flag < [ "-" ] , "flat_namespace" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Resolve symbols from all dylibs, both direct and transitive. Do not record source libraries: dyld must re-search at runtime and use the first definition found" > ,
Group < grp_resolve > ;
2021-02-18 21:48:07 +08:00
def twolevel_namespace : Flag < [ "-" ] , "twolevel_namespace" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Make dyld look up symbols by (dylib,name) pairs (default)" > ,
Group < grp_resolve > ;
2020-06-16 03:36:32 +08:00
def u : Separate < [ "-" ] , "u" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<symbol>" > ,
HelpText < "Require that <symbol> be defined for the link to succeed" > ,
Group < grp_resolve > ;
2020-06-16 03:36:32 +08:00
def U : Separate < [ "-" ] , "U" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<symbol>" > ,
HelpText < "Allow <symbol> to have no definition" > ,
Group < grp_resolve > ;
2020-06-16 03:36:32 +08:00
def undefined : Separate < [ "-" ] , "undefined" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<treatment>" > ,
HelpText < "Handle undefined symbols according to <treatment>: error, warning, suppress, or dynamic_lookup (default is error)" > ,
Group < grp_resolve > ;
2020-06-16 03:36:32 +08:00
def rpath : Separate < [ "-" ] , "rpath" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<path>" > ,
HelpText < "Add <path> to dyld search list for dylibs with load path prefix `@rpath/'" > ,
Group < grp_resolve > ;
2020-06-16 03:36:32 +08:00
def commons : Separate < [ "-" ] , "commons" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<treatment>" > ,
HelpText < "Resolve tentative definitions in dylibs according to <treatment>: ignore_dylibs, use_dylibs, error (default is ignore_dylibs)" > ,
Flags < [ HelpHidden ] > ,
Group < grp_resolve > ;
2020-06-16 03:36:32 +08:00
def grp_introspect : OptionGroup < "introspect" > , HelpText < "INTROSPECTING THE LINKER" > ;
def why_load : Flag < [ "-" ] , "why_load" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Log why each object file is loaded from a static library" > ,
Group < grp_introspect > ;
2020-06-16 03:36:32 +08:00
def whyload : Flag < [ "-" ] , "whyload" > ,
2021-03-21 13:10:04 +08:00
Alias < why_load > ,
HelpText < "Alias for -why_load" > ,
Group < grp_introspect > ;
2020-06-16 03:36:32 +08:00
def why_live : Separate < [ "-" ] , "why_live" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<symbol>" > ,
HelpText < "Log a chain of references to <symbol>, for use with -dead_strip" > ,
Flags < [ HelpHidden ] > ,
Group < grp_introspect > ;
2020-06-16 03:36:32 +08:00
def print_statistics : Flag < [ "-" ] , "print_statistics" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Log the linker's memory and CPU usage" > ,
Flags < [ HelpHidden ] > ,
Group < grp_introspect > ;
2020-06-16 03:36:32 +08:00
def t : Flag < [ "-" ] , "t" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Log every file the linker loads: object, archive, and dylib" > ,
Group < grp_introspect > ;
2020-06-16 03:36:32 +08:00
def whatsloaded : Flag < [ "-" ] , "whatsloaded" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Logs only the object files the linker loads" > ,
Flags < [ HelpHidden ] > ,
Group < grp_introspect > ;
2020-06-16 03:36:32 +08:00
def order_file_statistics : Flag < [ "-" ] , "order_file_statistics" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Logs information about -order_file" > ,
Flags < [ HelpHidden ] > ,
Group < grp_introspect > ;
2020-06-16 03:36:32 +08:00
def map : Separate < [ "-" ] , "map" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<path>" > ,
HelpText < "Writes all symbols and their addresses to <path>" > ,
Group < grp_introspect > ;
2020-07-25 06:55:14 +08:00
def dependency_info : Separate < [ "-" ] , "dependency_info" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<path>" > ,
HelpText < "Dump dependency info" > ,
Group < grp_introspect > ;
2020-10-27 10:18:29 +08:00
def save_temps : Flag < [ "-" ] , "save-temps" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Save intermediate LTO compilation results" > ,
Group < grp_introspect > ;
2020-06-16 03:36:32 +08:00
2021-04-09 02:12:20 +08:00
def grp_symtab : OptionGroup < "symtab" > , HelpText < "SYMBOL TABLE" > ;
2020-06-16 03:36:32 +08:00
def S : Flag < [ "-" ] , "S" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Strip debug information (STABS or DWARF) from the output" > ,
Flags < [ HelpHidden ] > ,
Group < grp_symtab > ;
2020-06-16 03:36:32 +08:00
def x : Flag < [ "-" ] , "x" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Exclude non-global symbols from the output symbol table" > ,
Flags < [ HelpHidden ] > ,
Group < grp_symtab > ;
2020-06-16 03:36:32 +08:00
def non_global_symbols_strip_list : Separate < [ "-" ] , "non_global_symbols_strip_list" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<path>" > ,
HelpText < "Specify in <path> the non-global symbols that should be removed from the output symbol table" > ,
Flags < [ HelpHidden ] > ,
Group < grp_symtab > ;
2020-06-16 03:36:32 +08:00
def non_global_symbols_no_strip_list : Separate < [ "-" ] , "non_global_symbols_no_strip_list" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<path>" > ,
HelpText < "Specify in <path> the non-global symbols that should remain in the output symbol table" > ,
Flags < [ HelpHidden ] > ,
Group < grp_symtab > ;
2020-06-16 03:36:32 +08:00
def oso_prefix : Separate < [ "-" ] , "oso_prefix" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<path>" > ,
HelpText < "Remove the prefix <path> from OSO symbols in the debug map" > ,
Flags < [ HelpHidden ] > ,
Group < grp_symtab > ;
2021-04-09 02:12:20 +08:00
def add_ast_path : Separate < [ "-" ] , "add_ast_path" > ,
MetaVarName < "<path>" > ,
HelpText < "AST paths will be emitted as STABS" > ,
Group < grp_symtab > ;
2020-06-16 03:36:32 +08:00
def grp_bitcode : OptionGroup < "bitcode" > , HelpText < "BITCODE BUILD FLOW" > ;
def bitcode_bundle : Flag < [ "-" ] , "bitcode_bundle" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Generate an embedded bitcode bundle in the __LLVM,__bundle section of the output" > ,
Group < grp_bitcode > ;
2020-06-16 03:36:32 +08:00
def bitcode_hide_symbols : Flag < [ "-" ] , "bitcode_hide_symbols" > ,
2021-03-21 13:10:04 +08:00
HelpText < "With -bitcode_bundle, hide all non-exported symbols from output bitcode bundle." > ,
Flags < [ HelpHidden ] > ,
Group < grp_bitcode > ;
2020-06-16 03:36:32 +08:00
def bitcode_symbol_map : Separate < [ "-" ] , "bitcode_symbol_map" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<path>" > ,
HelpText < "Write the bitcode symbol reverse mapping to file <path>, or if a directory, to <path>/UUID.bcsymbolmap" > ,
Flags < [ HelpHidden ] > ,
Group < grp_bitcode > ;
2020-06-16 03:36:32 +08:00
def grp_rare : OptionGroup < "rare" > , HelpText < "RARELY USED" > ;
def v : Flag < [ "-" ] , "v" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Print the linker version and search paths in addition to linking" > ,
Group < grp_rare > ;
2020-12-31 09:56:19 +08:00
def adhoc_codesign : Flag < [ "-" ] , "adhoc_codesign" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Write an ad-hoc code signature to the output file (default for arm64 binaries)" > ,
Group < grp_rare > ;
2020-12-31 09:56:19 +08:00
def no_adhoc_codesign : Flag < [ "-" ] , "no_adhoc_codesign" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Do not write an ad-hoc code signature to the output file (default for x86_64 binaries)" > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def version_details : Flag < [ "-" ] , "version_details" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Print the linker version in JSON form" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def no_weak_imports : Flag < [ "-" ] , "no_weak_imports" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Fail if any symbols are weak imports, allowed to be NULL at runtime" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def no_deduplicate : Flag < [ "-" ] , "no_deduplicate" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Omit the deduplication pass" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def verbose_deduplicate : Flag < [ "-" ] , "verbose_deduplicate" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Print function names eliminated by deduplication and the total size of code savings" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def no_inits : Flag < [ "-" ] , "no_inits" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Fail if the output contains static initializers" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def no_warn_inits : Flag < [ "-" ] , "no_warn_inits" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Suppress warnings for static initializers in the output" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def debug_variant : Flag < [ "-" ] , "debug_variant" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Suppress warnings germane to binaries shipping to customers" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def unaligned_pointers : Separate < [ "-" ] , "unaligned_pointers" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<treatment>" > ,
HelpText < "Handle unaligned pointers in __DATA segments according to <treatment>: warning, error, or suppress (default for arm64e is error, otherwise suppress)" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def dirty_data_list : Separate < [ "-" ] , "dirty_data_list" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<path>" > ,
HelpText < "Specify data symbols in <path> destined for the __DATA_DIRTY segment" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def max_default_common_align : Separate < [ "-" ] , "max_default_common_align" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<boundary>" > ,
HelpText < "Reduce maximum alignment for common symbols to a hex power-of-2 <boundary>" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def move_to_rw_segment : MultiArg < [ "-" ] , "move_to_rw_segment" , 2 > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<segment> <path>" > ,
HelpText < "Move data symbols listed in <path> to another <segment>" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def move_to_ro_segment : MultiArg < [ "-" ] , "move_to_ro_segment" , 2 > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<segment> <path>" > ,
HelpText < "Move code symbols listed in <path> to another <segment>" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def rename_section : MultiArg < [ "-" ] , "rename_section" , 4 > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<from_segment> <from_section> <to_segment> <to_section>" > ,
HelpText < "Rename <from_segment>/<from_section> as <to_segment>/<to_section>" > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def rename_segment : MultiArg < [ "-" ] , "rename_segment" , 2 > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<from_segment> <to_segment>" > ,
HelpText < "Rename <from_segment> as <to_segment>" > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def trace_symbol_layout : Flag < [ "-" ] , "trace_symbol_layout" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Show where and why symbols move, as specified by -move_to_ro_segment, -move_to_rw_segment, -rename_section, and -rename_segment" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2021-04-26 07:00:24 +08:00
def data_const : Flag < [ "-" ] , "data_const" > ,
HelpText < "Force migration of readonly data into __DATA_CONST segment" > ,
Group < grp_rare > ;
def no_data_const : Flag < [ "-" ] , "no_data_const" > ,
HelpText < "Block migration of readonly data away from __DATA segment" > ,
Group < grp_rare > ;
def text_exec : Flag < [ "-" ] , "text_exec" > ,
HelpText < "Rename __segment TEXT to __TEXT_EXEC for sections __text and __stubs" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def section_order : MultiArg < [ "-" ] , "section_order" , 2 > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<segment> <sections>" > ,
HelpText < "With -preload, specify layout sequence of colon-separated <sections> in <segment>" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def segment_order : Separate < [ "-" ] , "segment_order" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<colon_separated_segment_list>" > ,
HelpText < "With -preload, specify layout sequence of colon-separated <segments>" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def allow_heap_execute : Flag < [ "-" ] , "allow_heap_execute" > ,
2021-03-21 13:10:04 +08:00
HelpText < "On i386, allow any page to execute code" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def application_extension : Flag < [ "-" ] , "application_extension" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Designate the linker output as safe for use in an application extension" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def no_application_extension : Flag < [ "-" ] , "no_application_extension" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Designate the linker output as unsafe for use in an application extension" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def fatal_warnings : Flag < [ "-" ] , "fatal_warnings" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Treat warnings as errors" > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def no_eh_labels : Flag < [ "-" ] , "no_eh_labels" > ,
2021-03-21 13:10:04 +08:00
HelpText < "In -r mode, suppress .eh labels in the __eh_frame section" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def warn_compact_unwind : Flag < [ "-" ] , "warn_compact_unwind" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Warn for each FDE that cannot compact into the __unwind_info section and must remain in the __eh_frame section" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def warn_weak_exports : Flag < [ "-" ] , "warn_weak_exports" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Warn if the linked image contains weak external symbols" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def no_weak_exports : Flag < [ "-" ] , "no_weak_exports" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Fail if the linked image contains weak external symbols" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def objc_gc_compaction : Flag < [ "-" ] , "objc_gc_compaction" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Mark the Objective-C image as compatible with compacting garbage collection" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def objc_gc : Flag < [ "-" ] , "objc_gc" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Verify that all code was compiled with -fobjc-gc or -fobjc-gc-only" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def objc_gc_only : Flag < [ "-" ] , "objc_gc_only" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Verify that all code was compiled with -fobjc-gc-only" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def dead_strip_dylibs : Flag < [ "-" ] , "dead_strip_dylibs" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Remove dylibs that are unreachable by the entry point or exported symbols" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def allow_sub_type_mismatches : Flag < [ "-" ] , "allow_sub_type_mismatches" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Permit mixing objects compiled for different ARM CPU subtypes" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def no_uuid : Flag < [ "-" ] , "no_uuid" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Do not generate the LC_UUID load command" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def root_safe : Flag < [ "-" ] , "root_safe" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Set the MH_ROOT_SAFE bit in the mach-o header" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def setuid_safe : Flag < [ "-" ] , "setuid_safe" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Set the MH_SETUID_SAFE bit in the mach-o header" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def interposable : Flag < [ "-" ] , "interposable" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Indirects access to all to exported symbols in a dylib" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def multi_module : Flag < [ "-" ] , "multi_module" > ,
2021-03-21 13:10:04 +08:00
Alias < interposable > ,
HelpText < "Alias for -interposable" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def init : Separate < [ "-" ] , "init" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<symbol>" > ,
HelpText < "Run <symbol> as the first initializer in a dylib" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def sub_library : Separate < [ "-" ] , "sub_library" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<name>" > ,
HelpText < "Re-export the dylib as <name>" > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def sub_umbrella : Separate < [ "-" ] , "sub_umbrella" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<name>" > ,
HelpText < "Re-export the framework as <name>" > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def allowable_client : Separate < [ "-" ] , "allowable_client" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<name>" > ,
HelpText < "Specify <name> of a dylib or framework that is allowed to link to this dylib" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def client_name : Separate < [ "-" ] , "client_name" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<name>" > ,
HelpText < "Specifies a <name> this client should match with the -allowable_client <name> in a dependent dylib" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def umbrella : Separate < [ "-" ] , "umbrella" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<<name>>" > ,
HelpText < "Re-export this dylib through the umbrella framework <name>a" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def headerpad : Separate < [ "-" ] , "headerpad" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<size>" > ,
HelpText < "Allocate hex <size> extra space for future expansion of the load commands via install_name_tool (default is 0x20)" > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def headerpad_max_install_names : Flag < [ "-" ] , "headerpad_max_install_names" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Allocate extra space so all load-command paths can expand to MAXPATHLEN via install_name_tool" > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def bind_at_load : Flag < [ "-" ] , "bind_at_load" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Tell dyld to bind all symbols at load time, rather than lazily" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def force_flat_namespace : Flag < [ "-" ] , "force_flat_namespace" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Tell dyld to use a flat namespace on this executable and all its dependent dylibs & bundles" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def segalign : Separate < [ "-" ] , "segalign" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<boundary>" > ,
HelpText < "Align all segments to hex power-of-2 <boundary>" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def sectalign : MultiArg < [ "-" ] , "sectalign" , 3 > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<segment> <section> <boundary>" > ,
HelpText < "Align <section> within <segment> to hex power-of-2 <boundary>" > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def stack_addr : Separate < [ "-" ] , "stack_addr" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<address>" > ,
HelpText < "Initialize stack pointer to hex <address> rounded to a page boundary" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def segprot : MultiArg < [ "-" ] , "segprot" , 3 > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<segment> <max> <init>" > ,
2021-03-30 02:08:12 +08:00
HelpText < "Specifies the <max> and <init> virtual memory protection of <segment> as r/w/x/-seg_addr_table path" > ,
2021-03-21 13:10:04 +08:00
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def segs_read_write_addr : Separate < [ "-" ] , "segs_read_write_addr" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<address>" > ,
HelpText < "This option is obsolete" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def segs_read_only_addr : Separate < [ "-" ] , "segs_read_only_addr" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<address>" > ,
HelpText < "This option is obsolete" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def segaddr : MultiArg < [ "-" ] , "segaddr" , 2 > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<segment> <address>" > ,
HelpText < "Specify the starting hex <address> at a 4KiB page boundary for <segment>" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def seg_page_size : MultiArg < [ "-" ] , "seg_page_size" , 2 > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<segment> <size>" > ,
HelpText < "Specifies the page <size> for <segment>. Segment size will be a multiple of its page size" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def dylib_file : Separate < [ "-" ] , "dylib_file" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<install_path:current_path>" > ,
HelpText < "Specify <current_path> as different from where a dylib normally resides at <install_path>" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def weak_reference_mismatches : Separate < [ "-" ] , "weak_reference_mismatches" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<treatment>" > ,
HelpText < "Resolve symbol imports of conflicting weakness according to <treatment> as weak, non-weak, or error (default is non-weak)" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def read_only_relocs : Separate < [ "-" ] , "read_only_relocs" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<treatment>" > ,
HelpText < "Handle relocations that modify read-only pages according to <treatment> of warning, error, or suppress (i.e., allow)" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def force_cpusubtype_ALL : Flag < [ "-" ] , "force_cpusubtype_ALL" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Mark binary as runnable on any PowerPC, ignoring any PowerPC cpu requirements encoded in the object files" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def no_arch_warnings : Flag < [ "-" ] , "no_arch_warnings" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Suppresses warnings about inputs whose architecture does not match the -arch option" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def arch_errors_fatal : Flag < [ "-" ] , "arch_errors_fatal" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Escalate to errors any warnings about inputs whose architecture does not match the -arch option" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def e : Separate < [ "-" ] , "e" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<symbol>" > ,
HelpText < "Make <symbol> the entry point of an executable (default is \" start \ " from crt1.o)" > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def w : Flag < [ "-" ] , "w" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Suppress all warnings" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def final_output : Separate < [ "-" ] , "final_output" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<name>" > ,
HelpText < "Specify the dylib install name if -install_name is not used--used by compiler driver for multiple -arch arguments" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def arch_multiple : Flag < [ "-" ] , "arch_multiple" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Augment error and warning messages with the architecture name" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def dot : Separate < [ "-" ] , "dot" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<path>" > ,
HelpText < "Write a graph of symbol dependencies to <path> as a .dot file viewable with GraphViz" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def keep_relocs : Flag < [ "-" ] , "keep_relocs" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Retain section-based relocation records in the output, which are ignored at runtime by dyld" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def warn_stabs : Flag < [ "-" ] , "warn_stabs" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Warn when bad stab symbols inside a BINCL/EINCL prevent optimization" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def warn_commons : Flag < [ "-" ] , "warn_commons" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Warn when a tentative definition in an object file matches an external symbol in a dylib, which often means \" extern \ " is missing from a variable declaration in a header file" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def read_only_stubs : Flag < [ "-" ] , "read_only_stubs" > ,
2021-03-21 13:10:04 +08:00
HelpText < "On i386, make the __IMPORT segment of a final linked image read-only" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def interposable_list : Separate < [ "-" ] , "interposable_list" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<path>" > ,
HelpText < "Access global symbols listed in <path> indirectly" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def no_function_starts : Flag < [ "-" ] , "no_function_starts" > ,
2021-03-23 05:38:52 +08:00
HelpText < "Do not create a table of function start addresses" > ,
2021-03-21 13:10:04 +08:00
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def no_objc_category_merging : Flag < [ "-" ] , "no_objc_category_merging" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Do not merge Objective-C categories into their classes" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def object_path_lto : Separate < [ "-" ] , "object_path_lto" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<path>" > ,
HelpText < "Retain any temporary mach-o file in <path> that would otherwise be deleted during LTO" > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def cache_path_lto : Separate < [ "-" ] , "cache_path_lto" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<path>" > ,
HelpText < "Use <path> as a directory for the incremental LTO cache" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def prune_interval_lto : Separate < [ "-" ] , "prune_interval_lto" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<seconds>" > ,
HelpText < "Prune the incremental LTO cache after <seconds> (-1 disables pruning)" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def prune_after_lto : Separate < [ "-" ] , "prune_after_lto" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<seconds>" > ,
HelpText < "Remove LTO cache entries after <seconds>" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def max_relative_cache_size_lto : Separate < [ "-" ] , "max_relative_cache_size_lto" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<percent>" > ,
HelpText < "Limit the incremental LTO cache growth to <percent> of free disk, space" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def page_align_data_atoms : Flag < [ "-" ] , "page_align_data_atoms" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Distribute global variables on separate pages so page used/dirty status can guide creation of an order file to cluster commonly used/dirty globals" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def not_for_dyld_shared_cache : Flag < [ "-" ] , "not_for_dyld_shared_cache" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Prevent system dylibs from being placed into the dylib shared cache" > ,
Flags < [ HelpHidden ] > ,
Group < grp_rare > ;
2020-09-17 07:07:21 +08:00
def mllvm : Separate < [ "-" ] , "mllvm" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Options to pass to LLVM" > ,
Group < grp_rare > ;
2020-12-08 21:08:56 +08:00
def mcpu : Separate < [ "-" ] , "mcpu" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Processor family target for LTO code generation" > ,
Group < grp_rare > ;
2020-06-16 03:36:32 +08:00
def grp_deprecated : OptionGroup < "deprecated" > , HelpText < "DEPRECATED" > ;
def lazy_framework : Separate < [ "-" ] , "lazy_framework" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<name>" > ,
HelpText < "This option is deprecated and is now an alias for -framework." > ,
Flags < [ HelpHidden ] > ,
Group < grp_deprecated > ;
2020-06-16 03:36:32 +08:00
def lazy_library : Separate < [ "-" ] , "lazy_library" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<path>" > ,
HelpText < "This option is deprecated and is now an alias for regular linking" > ,
Flags < [ HelpHidden ] > ,
Group < grp_deprecated > ;
2020-06-16 03:36:32 +08:00
def lazy_l : Joined < [ "-" ] , "lazy-l" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<name>" > ,
HelpText < "This option is deprecated and is now an alias for -l<path>." > ,
Flags < [ HelpHidden ] > ,
Group < grp_deprecated > ;
2020-06-16 03:36:32 +08:00
def single_module : Flag < [ "-" ] , "single_module" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Unnecessary option: this is already the default" > ,
Flags < [ HelpHidden ] > ,
Group < grp_deprecated > ;
2020-06-16 03:36:32 +08:00
def no_dead_strip_inits_and_terms : Flag < [ "-" ] , "no_dead_strip_inits_and_terms" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Unnecessary option: initialization and termination are roots of the dead strip graph, so never dead stripped" > ,
Flags < [ HelpHidden ] > ,
Group < grp_deprecated > ;
2020-06-16 03:36:32 +08:00
def noall_load : Flag < [ "-" ] , "noall_load" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Unnecessary option: this is already the default" > ,
Flags < [ HelpHidden ] > ,
Group < grp_deprecated > ;
2020-06-16 03:36:32 +08:00
def grp_obsolete : OptionGroup < "obsolete" > , HelpText < "OBSOLETE" > ;
2021-03-06 07:42:22 +08:00
def sectorder : MultiArg < [ "-" ] , "sectorder" , 3 > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<segname> <sectname> <orderfile>" > ,
HelpText < "Obsolete. Replaced by more general -order_file option" > ,
Group < grp_obsolete > ;
2021-03-06 07:42:22 +08:00
def lto_library : Separate < [ "-" ] , "lto_library" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<path>" > ,
HelpText < "Obsolete. LLD supports LTO directly, without using an external dylib." > ,
Group < grp_obsolete > ;
2020-06-16 03:36:32 +08:00
def y : Joined < [ "-" ] , "y" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<symbol>" > ,
HelpText < "This option is obsolete in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_obsolete > ;
2020-06-16 03:36:32 +08:00
def sectobjectsymbols : MultiArg < [ "-" ] , "sectobjectsymbols" , 2 > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<segname> <sectname>" > ,
HelpText < "This option is obsolete in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_obsolete > ;
2020-06-16 03:36:32 +08:00
def nofixprebinding : Flag < [ "-" ] , "nofixprebinding" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is obsolete in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_obsolete > ;
2020-06-16 03:36:32 +08:00
def noprebind_all_twolevel_modules : Flag < [ "-" ] , "noprebind_all_twolevel_modules" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is obsolete in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_obsolete > ;
2020-06-16 03:36:32 +08:00
def prebind_all_twolevel_modules : Flag < [ "-" ] , "prebind_all_twolevel_modules" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is obsolete in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_obsolete > ;
2020-06-16 03:36:32 +08:00
def prebind_allow_overlap : Flag < [ "-" ] , "prebind_allow_overlap" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is obsolete in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_obsolete > ;
2020-06-16 03:36:32 +08:00
def noprebind : Flag < [ "-" ] , "noprebind" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is obsolete in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_obsolete > ;
2020-06-16 03:36:32 +08:00
def sect_diff_relocs : Separate < [ "-" ] , "sect_diff_relocs" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<treatment>" > ,
HelpText < "This option is obsolete in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_obsolete > ;
2020-06-16 03:36:32 +08:00
def A : Separate < [ "-" ] , "A" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<basefile>" > ,
HelpText < "This option is obsolete in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_obsolete > ;
2020-06-16 03:36:32 +08:00
def b : Flag < [ "-" ] , "b" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is obsolete in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_obsolete > ;
2020-06-16 03:36:32 +08:00
def Sn : Flag < [ "-" ] , "Sn" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is obsolete in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_obsolete > ;
2020-06-16 03:36:32 +08:00
def Si : Flag < [ "-" ] , "Si" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is obsolete in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_obsolete > ;
2020-06-16 03:36:32 +08:00
def Sp : Flag < [ "-" ] , "Sp" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is obsolete in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_obsolete > ;
2020-06-16 03:36:32 +08:00
def X : Flag < [ "-" ] , "X" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is obsolete in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_obsolete > ;
2020-06-16 03:36:32 +08:00
def s : Flag < [ "-" ] , "s" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is obsolete in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_obsolete > ;
2020-06-16 03:36:32 +08:00
def m : Flag < [ "-" ] , "m" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is obsolete in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_obsolete > ;
2020-06-16 03:36:32 +08:00
def Y : Separate < [ "-" ] , "Y" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<number>" > ,
HelpText < "This option is obsolete in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_obsolete > ;
2020-06-16 03:36:32 +08:00
def nomultidefs : Flag < [ "-" ] , "nomultidefs" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is obsolete in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_obsolete > ;
2020-06-16 03:36:32 +08:00
def multiply_defined_unused : Separate < [ "-" ] , "multiply_defined_unused" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<treatment>" > ,
HelpText < "This option is obsolete in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_obsolete > ;
2020-06-16 03:36:32 +08:00
def multiply_defined : Separate < [ "-" ] , "multiply_defined" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<treatment>" > ,
HelpText < "This option is obsolete in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_obsolete > ;
2020-06-16 03:36:32 +08:00
def private_bundle : Flag < [ "-" ] , "private_bundle" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is obsolete in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_obsolete > ;
2020-06-16 03:36:32 +08:00
def seg_addr_table_filename : Separate < [ "-" ] , "seg_addr_table_filename" > ,
2021-03-21 13:10:04 +08:00
MetaVarName < "<path>" > ,
HelpText < "This option is obsolete in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_obsolete > ;
2020-06-16 03:36:32 +08:00
def sectorder_detail : Flag < [ "-" ] , "sectorder_detail" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is obsolete in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_obsolete > ;
2020-06-16 03:36:32 +08:00
def no_compact_linkedit : Flag < [ "-" ] , "no_compact_linkedit" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is obsolete in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_obsolete > ;
2020-06-16 03:36:32 +08:00
def dependent_dr_info : Flag < [ "-" ] , "dependent_dr_info" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is obsolete in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_obsolete > ;
2020-06-16 03:36:32 +08:00
def no_dependent_dr_info : Flag < [ "-" ] , "no_dependent_dr_info" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is obsolete in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_obsolete > ;
2020-06-16 03:36:32 +08:00
def seglinkedit : Flag < [ "-" ] , "seglinkedit" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is obsolete in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_obsolete > ;
2020-06-16 03:36:32 +08:00
def noseglinkedit : Flag < [ "-" ] , "noseglinkedit" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is obsolete in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_obsolete > ;
2020-06-16 03:36:32 +08:00
def fvmlib : Flag < [ "-" ] , "fvmlib" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is obsolete in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_obsolete > ;
2020-06-16 03:36:32 +08:00
def run_init_lazily : Flag < [ "-" ] , "run_init_lazily" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is obsolete in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_obsolete > ;
2021-03-06 07:42:22 +08:00
def prebind : Flag < [ "-" ] , "prebind" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is obsolete in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_obsolete > ;
2021-03-06 07:42:22 +08:00
def twolevel_namespace_hints : Flag < [ "-" ] , "twolevel_namespace_hints" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is obsolete in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_obsolete > ;
2021-03-06 07:42:22 +08:00
def slow_stubs : Flag < [ "-" ] , "slow_stubs" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is obsolete in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_obsolete > ;
2020-06-16 03:36:32 +08:00
def grp_undocumented : OptionGroup < "undocumented" > , HelpText < "UNDOCUMENTED" > ;
def add_linker_option : Flag < [ "-" ] , "add_linker_option" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is undocumented in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_undocumented > ;
2020-06-16 03:36:32 +08:00
def add_source_version : Flag < [ "-" ] , "add_source_version" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is undocumented in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_undocumented > ;
2020-06-16 03:36:32 +08:00
def no_source_version : Flag < [ "-" ] , "no_source_version" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is undocumented in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_undocumented > ;
2020-06-16 03:36:32 +08:00
def add_split_seg_info : Flag < [ "-" ] , "add_split_seg_info" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is undocumented in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_undocumented > ;
2020-06-16 03:36:32 +08:00
def allow_dead_duplicates : Flag < [ "-" ] , "allow_dead_duplicates" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is undocumented in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_undocumented > ;
2020-06-16 03:36:32 +08:00
def allow_simulator_linking_to_macosx_dylibs : Flag < [ "-" ] , "allow_simulator_linking_to_macosx_dylibs" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is undocumented in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_undocumented > ;
2020-06-16 03:36:32 +08:00
def bitcode_process_mode : Flag < [ "-" ] , "bitcode_process_mode" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is undocumented in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_undocumented > ;
2020-06-16 03:36:32 +08:00
def bitcode_verify : Flag < [ "-" ] , "bitcode_verify" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is undocumented in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_undocumented > ;
2020-06-16 03:36:32 +08:00
def classic_linker : Flag < [ "-" ] , "classic_linker" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is undocumented in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_undocumented > ;
2020-06-16 03:36:32 +08:00
def data_in_code_info : Flag < [ "-" ] , "data_in_code_info" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is undocumented in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_undocumented > ;
2020-06-16 03:36:32 +08:00
def no_data_in_code_info : Flag < [ "-" ] , "no_data_in_code_info" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is undocumented in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_undocumented > ;
2020-06-16 03:36:32 +08:00
def debug_snapshot : Flag < [ "-" ] , "debug_snapshot" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is undocumented in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_undocumented > ;
2020-06-16 03:36:32 +08:00
def demangle : Flag < [ "-" ] , "demangle" > ,
2021-03-21 13:10:04 +08:00
HelpText < "Demangle symbol names in diagnostics" > ;
2020-06-16 03:36:32 +08:00
def dyld_env : Flag < [ "-" ] , "dyld_env" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is undocumented in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_undocumented > ;
2020-06-16 03:36:32 +08:00
def encryptable : Flag < [ "-" ] , "encryptable" > ,
2021-04-22 01:35:12 +08:00
HelpText < "Generate the LC_ENCRYPTION_INFO load command" > ,
Group < grp_undocumented > ;
def no_encryption : Flag < [ "-" ] , "no_encryption" > ,
HelpText < "Do not generate the LC_ENCRYPTION_INFO load command" > ,
2021-03-21 13:10:04 +08:00
Group < grp_undocumented > ;
2020-06-16 03:36:32 +08:00
def executable_path : Flag < [ "-" ] , "executable_path" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is undocumented in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_undocumented > ;
2020-06-16 03:36:32 +08:00
def fixup_chains : Flag < [ "-" ] , "fixup_chains" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is undocumented in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_undocumented > ;
2020-06-16 03:36:32 +08:00
def fixup_chains_section : Flag < [ "-" ] , "fixup_chains_section" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is undocumented in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_undocumented > ;
2020-06-16 03:36:32 +08:00
def flto_codegen_only : Flag < [ "-" ] , "flto-codegen-only" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is undocumented in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_undocumented > ;
2020-06-16 03:36:32 +08:00
def force_load_swift_libs : Flag < [ "-" ] , "force_load_swift_libs" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is undocumented in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_undocumented > ;
2020-06-16 03:36:32 +08:00
def force_symbol_not_weak : Flag < [ "-" ] , "force_symbol_not_weak" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is undocumented in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_undocumented > ;
2020-06-16 03:36:32 +08:00
def force_symbols_coalesce_list : Flag < [ "-" ] , "force_symbols_coalesce_list" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is undocumented in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_undocumented > ;
2020-06-16 03:36:32 +08:00
def force_symbols_not_weak_list : Flag < [ "-" ] , "force_symbols_not_weak_list" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is undocumented in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_undocumented > ;
2020-06-16 03:36:32 +08:00
def force_symbols_weak_list : Flag < [ "-" ] , "force_symbols_weak_list" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is undocumented in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_undocumented > ;
2020-06-16 03:36:32 +08:00
def force_symbol_weak : Flag < [ "-" ] , "force_symbol_weak" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is undocumented in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_undocumented > ;
2020-06-16 03:36:32 +08:00
def function_starts : Flag < [ "-" ] , "function_starts" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is undocumented in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_undocumented > ;
2020-06-16 03:36:32 +08:00
def i : Flag < [ "-" ] , "i" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is undocumented in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_undocumented > ;
2020-06-16 03:36:32 +08:00
def ignore_auto_link : Flag < [ "-" ] , "ignore_auto_link" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is undocumented in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_undocumented > ;
2020-06-16 03:36:32 +08:00
def ignore_optimization_hints : Flag < [ "-" ] , "ignore_optimization_hints" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is undocumented in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_undocumented > ;
2020-06-16 03:36:32 +08:00
def init_offsets : Flag < [ "-" ] , "init_offsets" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is undocumented in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_undocumented > ;
2020-06-16 03:36:32 +08:00
def keep_dwarf_unwind : Flag < [ "-" ] , "keep_dwarf_unwind" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is undocumented in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_undocumented > ;
2020-06-16 03:36:32 +08:00
def no_keep_dwarf_unwind : Flag < [ "-" ] , "no_keep_dwarf_unwind" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is undocumented in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_undocumented > ;
2020-06-16 03:36:32 +08:00
def kext : Flag < [ "-" ] , "kext" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is undocumented in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_undocumented > ;
2020-06-16 03:36:32 +08:00
def kext_objects_dir : Flag < [ "-" ] , "kext_objects_dir" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is undocumented in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_undocumented > ;
2020-06-16 03:36:32 +08:00
def no_kext_objects : Flag < [ "-" ] , "no_kext_objects" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is undocumented in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_undocumented > ;
2020-06-16 03:36:32 +08:00
def kexts_use_stubs : Flag < [ "-" ] , "kexts_use_stubs" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is undocumented in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_undocumented > ;
2020-06-16 03:36:32 +08:00
def no_compact_unwind : Flag < [ "-" ] , "no_compact_unwind" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is undocumented in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_undocumented > ;
2020-06-16 03:36:32 +08:00
def no_dtrace_dof : Flag < [ "-" ] , "no_dtrace_dof" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is undocumented in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_undocumented > ;
2020-06-16 03:36:32 +08:00
def no_new_main : Flag < [ "-" ] , "no_new_main" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is undocumented in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_undocumented > ;
2020-08-13 07:57:55 +08:00
def objc_abi_version : Separate < [ "-" ] , "objc_abi_version" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is undocumented in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_undocumented > ;
2020-06-16 03:36:32 +08:00
def pause : Flag < [ "-" ] , "pause" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is undocumented in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_undocumented > ;
2020-06-16 03:36:32 +08:00
def random_uuid : Flag < [ "-" ] , "random_uuid" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is undocumented in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_undocumented > ;
2020-06-16 03:36:32 +08:00
def simulator_support : Flag < [ "-" ] , "simulator_support" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is undocumented in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_undocumented > ;
2020-06-16 03:36:32 +08:00
def snapshot_dir : Flag < [ "-" ] , "snapshot_dir" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is undocumented in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_undocumented > ;
2020-06-16 03:36:32 +08:00
def source_version : Flag < [ "-" ] , "source_version" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is undocumented in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_undocumented > ;
2020-06-16 03:36:32 +08:00
def threaded_starts_section : Flag < [ "-" ] , "threaded_starts_section" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is undocumented in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_undocumented > ;
2020-06-16 03:36:32 +08:00
def verbose_optimization_hints : Flag < [ "-" ] , "verbose_optimization_hints" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is undocumented in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_undocumented > ;
2020-06-16 03:36:32 +08:00
def version_load_command : Flag < [ "-" ] , "version_load_command" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is undocumented in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_undocumented > ;
2020-06-16 03:36:32 +08:00
def grp_ignored : OptionGroup < "ignored" > , HelpText < "IGNORED" > ;
def M : Flag < [ "-" ] , "M" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is ignored in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_ignored > ;
2020-06-16 03:36:32 +08:00
def new_linker : Flag < [ "-" ] , "new_linker" > ,
2021-03-21 13:10:04 +08:00
HelpText < "This option is ignored in ld64" > ,
Flags < [ HelpHidden ] > ,
Group < grp_ignored > ;