; Processor-independent options for Darwin. ; Copyright (C) 2005-2024 Free Software Foundation, Inc. ; ; This file is part of GCC. ; ; GCC is free software; you can redistribute it and/or modify it under ; the terms of the GNU General Public License as published by the Free ; Software Foundation; either version 3, or (at your option) any later ; version. ; ; GCC is distributed in the hope that it will be useful, but WITHOUT ANY ; WARRANTY; without even the implied warranty of MERCHANTABILITY or ; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ; for more details. ; ; You should have received a copy of the GNU General Public License ; along with GCC; see the file COPYING3. If not see ; . ; We have a lot of Driver options, many of which are obsolete or very very ; rarely used so, to keep this file easier to manage: ; Please place all Non-driver options first (in alphabetical order), followed ; by Driver-only options. ; Non-driver options. dependency-file C ObjC C++ ObjC++ Separate Alias(MF) MissingArgError(missing filename after %qs) fapple-kext Target C++ Var(flag_apple_kext) Generate code for darwin loadable kernel extensions. fconstant-cfstrings ObjC ObjC++ Alias(mconstant-cfstrings) Generate compile-time CFString objects. iframework Target RejectNegative C ObjC C++ ObjC++ Joined Separate -iframework Add to the end of the system framework include path. mconstant-cfstrings Target Var(darwin_constant_cfstrings) Init(1) Generate compile-time CFString objects. Wnonportable-cfstrings Target Var(darwin_warn_nonportable_cfstrings) Init(1) Warning Warn if constant CFString objects contain non-portable characters. ; Use new-style pic stubs if this is true, x86 only so far. matt-stubs Target Var(darwin_macho_att_stub) Init(1) Generate AT&T-style stubs for Mach-O. mdynamic-no-pic Target Common Mask(MACHO_DYNAMIC_NO_PIC) Generate code suitable for executables (NOT shared libs). mfix-and-continue Target Var(darwin_fix_and_continue) Generate code suitable for fast turn around debugging. mkernel Target Var(flag_mkernel) Generate code for the kernel or loadable kernel extensions. ; The Init here is for the convenience of GCC developers, so that cc1 ; and cc1plus don't crash if no -mmacosx-version-min is passed. The ; driver will always pass a -mmacosx-version-min, so in normal use the ; Init is never used. mmacosx-version-min= Target RejectNegative Joined Var(darwin_macosx_version_min) Init(DEF_MIN_OSX_VERSION) The earliest macOS version on which this program will run. ; Really, only relevant to PowerPC which has a 4 byte bool by default. mone-byte-bool Target RejectNegative Var(darwin_one_byte_bool) Set sizeof(bool) to 1. msymbol-stubs Target Var(darwin_symbol_stubs) Init(0) Force generation of external symbol indirection stubs. ; Some code-gen may be improved / adjusted if the linker is sufficiently modern. mtarget-linker= Target RejectNegative Joined Alias(mtarget-linker) mtarget-linker Target RejectNegative Joined Separate Var(darwin_target_linker) Init(LD64_VERSION) -mtarget-linker Specify that ld64 is the toolchain linker for the current invocation. ; Driver options. all_load Driver RejectNegative Load all members of archive libraries, rather than only those that satisfy undefined symbols. allowable_client Driver RejectNegative Separate -allowable_client The output dylib is private to the client . arch Driver RejectNegative Separate -arch Generate output for architecture . arch_errors_fatal Driver RejectNegative Mismatches between file architecture and one specified by \"-arch\" are errors instead of warnings. asm_macosx_version_min= Driver RejectNegative Joined The earliest macOS version on which this program will run (formatted for the assembler). bind_at_load Driver RejectNegative Generate an output executable that binds symbols on load, rather than lazily. bundle Driver RejectNegative Generate a Mach-O bundle (file type MH_BUNDLE). bundle_loader Driver RejectNegative Separate -bundle_loader Treat (that will be loading this bundle) as if it was one of the dynamic libraries the bundle is linked against for symbol resolution. client_name Driver RejectNegative Separate -client_name Enable the executable being built to link against a private dylib (using allowable_client). compatibility_version Driver RejectNegative Separate -compatibility_version Set the version for the client interface. Client programs must record a value less than or equal to , or the binding will fail at runtime. current_version Driver RejectNegative Separate -current_version Set the current version for the library to . dead_strip Driver RejectNegative Remove code and data that is unreachable from any exported symbol (including the entry point). dylib_file Driver RejectNegative Separate -dylib_file install_name:file_name This allows linking of a dylib with \"install_name\" but to be found in a different install position \"file_name\" dylinker Driver RejectNegative Produce a Mach-O dylinker (file type MH_DYLINKER), only used for building dyld. dylinker_install_name Driver RejectNegative Separate -dylinker_install_name Only used for building dyld. dynamic Driver RejectNegative The default (and opposite of -static), implied by user mode executables, shared libraries and bundles. dynamiclib Driver RejectNegative Produce a Mach-O shared library (file type MH_DYLIB), synonym for \"-shared\". exported_symbols_list Driver RejectNegative Separate -exported_symbols_list Export global symbols in in linked output file; any symbols not mentioned will be treated as \"hidden\". filelist Driver RejectNegative Separate Supply a list of objects to be linked from a file, rather than the command line. findirect-virtual-calls Driver RejectNegative Used for generating code for some older kernel revisions. flat_namespace Driver RejectNegative Ignore the normal two-level namespace; resolve symbols in command line order and do not record which library provided the resolved symbol. force_cpusubtype_ALL Driver RejectNegative For the assembler (and linker) permit any architecture sub-variant to be used without error. force_flat_namespace Driver RejectNegative Set the output object such that, on loading, dyld will ignore any two-level namespace information and resolve symbols in the discovery order for loaded libs. framework Driver RejectNegative Separate -framework The linker should search for the framework in the framework search path. fterminated-vtables Driver RejectNegative Used for generating code for some older kernel revisions. gfull Driver RejectNegative Abbreviation for \"-g -fno-eliminate-unused-debug-symbols\". gused Driver RejectNegative Abbreviation for \"-g -feliminate-unused-debug-symbols\". headerpad_max_install_names Driver RejectNegative Automatically adds space for longer path names in load commands (up to MAXPATHLEN). image_base Driver RejectNegative Separate -image_base
Specify
as the base address for a dylib or bundle. init Driver RejectNegative Separate -init The symbol will be used as the first initializer for a dylib. install_name Driver RejectNegative Separate -install_name Set the install name for a dylib. keep_private_externs Driver RejectNegative Usually \"private extern\" (hidden) symbols are made local when linking, this command suppresses that such that they remain exported. multi_module Driver RejectNegative (Obsolete after 10.4) Multi modules are ignored at runtime since macOS 10.4. multiply_defined Driver RejectNegative Separate (Obsolete after 10.4) -multiply_defined Provided a mechanism for warning about symbols defined in multiple dylibs. multiply_defined_unused Driver RejectNegative Separate (Obsolete after 10.4) -multiply_defined_unused Provided a mechanism for warning about symbols defined in the current executable also being defined in linked dylibs. no_dead_strip_inits_and_terms Driver RejectNegative (Obsolete) Current linkers never dead-strip these items, so the option is not needed. nodefaultexport Driver RejectNegative Do not add a default symbol exports to modules or dynamic libraries. nodefaultrpaths Driver RejectNegative Do not add default run paths (for the compiler library directories) to executables, modules or dynamic libraries. nofixprebinding Driver RejectNegative (Obsolete after 10.3.9) Set MH_NOPREFIXBINDING, in an executable. nomultidefs Driver RejectNegative (Obsolete after 10.4) Set MH_NOMULTIDEFS in an umbrella framework. noprebind Driver RejectNegative Negative(prebind) (Obsolete) LD_PREBIND is no longer supported. noseglinkedit Driver RejectNegative Negative(seglinkedit) (Obsolete) This is the default. object Driver RejectNegative pagezero_size Driver RejectNegative Separate -pagezero_size Allows setting the page 0 size to 4kb when required. prebind Driver RejectNegative Negative(noprebind) (Obsolete) LD_PREBIND is no longer supported. prebind_all_twolevel_modules Driver RejectNegative (Obsolete) LD_PREBIND is no longer supported. preload Driver RejectNegative Produces a Mach-O file suitable for embedded/ROM use. private_bundle Driver RejectNegative (Obsolete) Allowed linking to proceed with \"-flat_namespace\" when a linked bundle contained a symbol also exported from the main executable. pthread Driver RejectNegative rdynamic Driver RejectNegative Synonym for \"-export-dynamic\" for linker versions that support it. read_only_relocs Driver RejectNegative Separate -read_only_relocs Allow relocations in read-only pages (not recommended). sectalign Driver RejectNegative Separate Args(3) -sectalign Set section in segment to have alignment which must be an integral power of two expressed in hexadecimal form. sectcreate Driver RejectNegative Separate Args(3) -sectcreate Create section in segment from the contents of . sectobjectsymbols Driver RejectNegative Separate Args(2) (Obsolete) -sectobjectsymbols Setting a local symbol at the start of a section is no longer supported. sectorder Driver RejectNegative Separate Args(3) (Obsolete) -sectorder Replaced by a more general option \"-order_file\". seg_addr_table Driver RejectNegative Separate -seg_addr_table Specify the base addresses for dynamic libraries; contains a line for each library. ; This is only usable by the ld_classic linker. seg_addr_table_filename Driver RejectNegative Separate (Obsolete, ld_classic only) -seg_addr_table_filename . seg1addr Driver RejectNegative Separate Synonym for \"image_base\". segaddr Driver RejectNegative Separate Args(2) -segaddr
Set the base address of segment to
which must be aligned to a page boundary (currently 4kb). ; This is only usable by the ld_classic linker. segcreate Driver RejectNegative Separate Args(3) (Obsolete, ld_classic only) -sectcreate Allowed creation of a section from a file. seglinkedit Driver RejectNegative Negative(noseglinkedit) (Obsolete) Object files with LINKEDIT sections are no longer supported. segprot Driver RejectNegative Separate Args(3) -segprot The virtual memory protections for segment have maximum and initial values and respectively. The specified values may contain \"r\", \"w\", \"x\" or \"-\" the latter meaning \"no access\". segs_read_only_addr Driver RejectNegative Separate -segs_read_only_addr
Specify that
is the base address of the read-only segments of a dylib. segs_read_write_addr Driver RejectNegative Separate -segs_read_write_addr
Specify that
is the base address address of the read-write segments of a dylib. single_module Driver RejectNegative (Obsolete) This is the default. sub_library Driver RejectNegative Separate -sub_library Library named will be re-exported (only useful for dylibs). sub_umbrella Driver RejectNegative Separate -sub_umbrella Framework named will be re-exported (only useful for dylibs). twolevel_namespace Driver RejectNegative This is the default. twolevel_namespace_hints Driver RejectNegative Add extra information to the executable that can speed up dynamic loading (provided that dependent libraries are unchanged). umbrella Driver RejectNegative -umbrella The specified framework will be re-exported. undefined Driver RejectNegative Separate -undefined Specify the handling for undefined symbols (default is error). unexported_symbols_list Driver RejectNegative Separate -unexported_symbols_list Do not export the global symbols listed in . weak_reference_mismatches Driver RejectNegative Separate -weak_reference_mismatches Specifies what to do if a symbol import conflicts between file (weak in one and not in another) the default is to treat the symbol as non-weak. whatsloaded Driver RejectNegative Logs which object files the linker loads. whyload Driver RejectNegative Logs which symbol(s) caused an object to be loaded. ;(Obsolete, ignored) Strip symbols starting with "L", this is the default. X Driver RejectNegative y Driver RejectNegative Joined (Obsolete, ignored) Old support similar to \"-whyload\". Mach Driver RejectNegative (Obsolete and unhandled by ld64, ignored) ld should produce an executable (only handled by ld_classic).