; Processor-independent options for Darwin.
; Copyright (C) 2005-2022 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.
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 initialiser 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.
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).