PR96463: Optimise svld1rq from vectors for little endian AArch64 targets.
[official-gcc.git] / gcc / config / darwin.opt
blobcc7d14c2e4d4a8529a1297d798f9b1b14bb67018
1 ; Processor-independent options for Darwin.
3 ; Copyright (C) 2005-2022 Free Software Foundation, Inc.
5 ; This file is part of GCC.
7 ; GCC is free software; you can redistribute it and/or modify it under
8 ; the terms of the GNU General Public License as published by the Free
9 ; Software Foundation; either version 3, or (at your option) any later
10 ; version.
12 ; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
13 ; WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 ; FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
15 ; for more details.
17 ; You should have received a copy of the GNU General Public License
18 ; along with GCC; see the file COPYING3.  If not see
19 ; <http://www.gnu.org/licenses/>.
21 ; We have a lot of Driver options, many of which are obsolete or very very
22 ; rarely used so, to keep this file easier to manage:
24 ; Please place all Non-driver options first (in alphabetical order), followed
25 ; by Driver-only options.
27 ; Non-driver options.
29 dependency-file
30 C ObjC C++ ObjC++ Separate Alias(MF) MissingArgError(missing filename after %qs)
32 fapple-kext
33 Target C++ Var(flag_apple_kext)
34 Generate code for darwin loadable kernel extensions.
36 iframework
37 Target RejectNegative C ObjC C++ ObjC++ Joined Separate
38 -iframework <dir>       Add <dir> to the end of the system framework include path.
40 mconstant-cfstrings
41 Target Var(darwin_constant_cfstrings) Init(1)
42 Generate compile-time CFString objects.
44 Wnonportable-cfstrings
45 Target Var(darwin_warn_nonportable_cfstrings) Init(1) Warning
46 Warn if constant CFString objects contain non-portable characters.
48 ; Use new-style pic stubs if this is true, x86 only so far.
49 matt-stubs
50 Target Var(darwin_macho_att_stub) Init(1)
51 Generate AT&T-style stubs for Mach-O.
53 mdynamic-no-pic
54 Target Common Mask(MACHO_DYNAMIC_NO_PIC)
55 Generate code suitable for executables (NOT shared libs).
57 mfix-and-continue
58 Target Var(darwin_fix_and_continue)
59 Generate code suitable for fast turn around debugging.
61 mkernel
62 Target Var(flag_mkernel)
63 Generate code for the kernel or loadable kernel extensions.
65 ; The Init here is for the convenience of GCC developers, so that cc1
66 ; and cc1plus don't crash if no -mmacosx-version-min is passed.  The
67 ; driver will always pass a -mmacosx-version-min, so in normal use the
68 ; Init is never used.
69 mmacosx-version-min=
70 Target RejectNegative Joined Var(darwin_macosx_version_min) Init(DEF_MIN_OSX_VERSION)
71 The earliest macOS version on which this program will run.
73 ; Really, only relevant to PowerPC which has a 4 byte bool by default.
74 mone-byte-bool
75 Target RejectNegative Var(darwin_one_byte_bool)
76 Set sizeof(bool) to 1.
78 msymbol-stubs
79 Target Var(darwin_symbol_stubs) Init(0)
80 Force generation of external symbol indirection stubs.
82 ; Some code-gen may be improved / adjusted if the linker is sufficiently modern.
83 mtarget-linker=
84 Target RejectNegative Joined Alias(mtarget-linker)
86 mtarget-linker
87 Target RejectNegative Joined Separate Var(darwin_target_linker) Init(LD64_VERSION)
88 -mtarget-linker <version>       Specify that ld64 <version> is the toolchain linker for the current invocation.
90 ; Driver options.
92 all_load
93 Driver RejectNegative
94 Load all members of archive libraries, rather than only those that satisfy undefined symbols.
96 allowable_client
97 Driver RejectNegative Separate
98 -allowable_client <name>        The output dylib is private to the client <name>.
100 arch
101 Driver RejectNegative Separate
102 -arch <name>    Generate output for architecture <name>.
104 arch_errors_fatal
105 Driver RejectNegative
106 Mismatches between file architecture and one specified by \"-arch\" are errors instead of warnings.
108 asm_macosx_version_min=
109 Driver RejectNegative Joined
110 The earliest macOS version on which this program will run (formatted for the assembler).
112 bind_at_load
113 Driver RejectNegative
114 Generate an output executable that binds symbols on load, rather than lazily.
116 bundle
117 Driver RejectNegative
118 Generate a Mach-O bundle (file type MH_BUNDLE).
120 bundle_loader
121 Driver RejectNegative Separate
122 -bundle_loader <executable>     Treat <executable> (that will be loading this bundle) as if it was one of the dynamic libraries the bundle is linked against for symbol resolution.
124 client_name
125 Driver RejectNegative Separate
126 -client_name <name>     Enable the executable being built to link against a private dylib (using allowable_client).
128 compatibility_version
129 Driver RejectNegative Separate
130 -compatibility_version <number> Set the version for the client interface.  Client programs must record a value less than or equal to <number>, or the binding will fail at runtime.
132 current_version
133 Driver RejectNegative Separate
134 -current_version <number>       Set the current version for the library to <number>.
136 dead_strip
137 Driver RejectNegative
138 Remove code and data that is unreachable from any exported symbol (including the entry point).
140 dylib_file
141 Driver RejectNegative Separate
142 -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\"
144 dylinker
145 Driver RejectNegative
146 Produce a Mach-O dylinker (file type MH_DYLINKER), only used for building dyld.
148 dylinker_install_name
149 Driver RejectNegative Separate
150 -dylinker_install_name <path>   Only used for building dyld.
152 dynamic
153 Driver RejectNegative
154 The default (and opposite of -static), implied by user mode executables, shared libraries and bundles.
156 dynamiclib
157 Driver RejectNegative
158 Produce a Mach-O shared library (file type MH_DYLIB), synonym for \"-shared\".
160 exported_symbols_list
161 Driver RejectNegative Separate
162 -exported_symbols_list <filename>       Export global symbols in <filename> in linked output file; any symbols not mentioned will be treated as \"hidden\".
164 filelist
165 Driver RejectNegative Separate
166 Supply a list of objects to be linked from a file, rather than the command line.
168 findirect-virtual-calls
169 Driver RejectNegative
170 Used for generating code for some older kernel revisions.
172 flat_namespace
173 Driver RejectNegative
174 Ignore the normal two-level namespace; resolve symbols in command line order and do not record which library provided the resolved symbol.
176 force_cpusubtype_ALL
177 Driver RejectNegative
178 For the assembler (and linker) permit any architecture sub-variant to be used without error.
180 force_flat_namespace
181 Driver RejectNegative
182 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.
184 framework
185 Driver RejectNegative Separate
186 -framework <name>       The linker should search for the framework <name> in the framework search path.
188 fterminated-vtables
189 Driver RejectNegative
190 Used for generating code for some older kernel revisions.
192 gfull
193 Driver RejectNegative
194 Abbreviation for \"-g -fno-eliminate-unused-debug-symbols\".
196 gused
197 Driver RejectNegative
198 Abbreviation for \"-g -feliminate-unused-debug-symbols\".
200 headerpad_max_install_names
201 Driver RejectNegative
202 Automatically adds space for longer path names in load commands (up to MAXPATHLEN).
204 image_base
205 Driver RejectNegative Separate
206 -image_base <address>   Specify <address> as the base address for a dylib or bundle.
208 init
209 Driver RejectNegative Separate
210 -init <symbol_name>     The symbol <symbol_name> will be used as the first initialiser for a dylib.
212 install_name
213 Driver RejectNegative Separate
214 -install_name <name>    Set the install name for a dylib.
216 keep_private_externs
217 Driver RejectNegative
218 Usually \"private extern\" (hidden) symbols are made local when linking, this command suppresses that such that they remain exported.
220 multi_module
221 Driver RejectNegative
222 (Obsolete after 10.4) Multi modules are ignored at runtime since macOS 10.4.
224 multiply_defined
225 Driver RejectNegative Separate
226 (Obsolete after 10.4) -multiply_defined <treatment>     Provided a mechanism for warning about symbols defined in multiple dylibs.
228 multiply_defined_unused
229 Driver RejectNegative Separate
230 (Obsolete after 10.4) -multiply_defined_unused <treatment>      Provided a mechanism for warning about symbols defined in the current executable also being defined in linked dylibs.
232 no_dead_strip_inits_and_terms
233 Driver RejectNegative
234 (Obsolete) Current linkers never dead-strip these items, so the option is not needed.
236 nodefaultexport
237 Driver RejectNegative
238 Do not add a default symbol exports to modules or dynamic libraries.
240 nofixprebinding
241 Driver RejectNegative
242 (Obsolete after 10.3.9) Set MH_NOPREFIXBINDING, in an executable.
244 nomultidefs
245 Driver RejectNegative
246 (Obsolete after 10.4)   Set MH_NOMULTIDEFS in an umbrella framework.
248 noprebind
249 Driver RejectNegative Negative(prebind)
250 (Obsolete) LD_PREBIND is no longer supported.
252 noseglinkedit
253 Driver RejectNegative Negative(seglinkedit)
254 (Obsolete) This is the default.
256 object
257 Driver RejectNegative
259 pagezero_size
260 Driver RejectNegative Separate
261 -pagezero_size <size>   Allows setting the page 0 size to 4kb when required.
263 prebind
264 Driver RejectNegative Negative(noprebind)
265 (Obsolete) LD_PREBIND is no longer supported.
267 prebind_all_twolevel_modules
268 Driver RejectNegative
269 (Obsolete) LD_PREBIND is no longer supported.
271 preload
272 Driver RejectNegative
273 Produces a Mach-O file suitable for embedded/ROM use.
275 private_bundle
276 Driver RejectNegative
277 (Obsolete) Allowed linking to proceed with \"-flat_namespace\" when a linked bundle contained a symbol also exported from the main executable.
279 pthread
280 Driver RejectNegative
282 rdynamic
283 Driver RejectNegative
284 Synonym for \"-export-dynamic\" for linker versions that support it.
286 read_only_relocs
287 Driver RejectNegative Separate
288 -read_only_relocs <treatment>   Allow relocations in read-only pages (not recommended).
290 sectalign
291 Driver RejectNegative Separate Args(3)
292 -sectalign <segname> <sectname> <value> Set section <sectname> in segment <segname> to have alignment <value> which must be an integral power of two expressed in hexadecimal form.
294 sectcreate
295 Driver RejectNegative Separate Args(3)
296 -sectcreate <segname> <sectname> <file> Create section <sectname> in segment <segname> from the contents of <file>.
298 sectobjectsymbols
299 Driver RejectNegative Separate Args(2)
300 (Obsolete) -sectobjectsymbols <segname> <sectname>      Setting a local symbol at the start of a section is no longer supported.
302 sectorder
303 Driver RejectNegative Separate Args(3)
304 (Obsolete) -sectorder <segname> <sectname> <orderfile>  Replaced by a more general option \"-order_file\".
306 seg_addr_table
307 Driver RejectNegative Separate
308 -seg_addr_table <file>  Specify the base addresses for dynamic libraries; <file> contains a line for each library.
310 ; This is only usable by the ld_classic linker.
311 seg_addr_table_filename
312 Driver RejectNegative Separate
313 (Obsolete, ld_classic only) -seg_addr_table_filename <path>.
315 seg1addr
316 Driver RejectNegative Separate
317 Synonym for \"image_base\".
319 segaddr
320 Driver RejectNegative Separate Args(2)
321 -segaddr <name> <address>       Set the base address of segment <name> to <address> which must be aligned to a page boundary (currently 4kb).
323 ; This is only usable by the ld_classic linker.
324 segcreate
325 Driver RejectNegative Separate Args(3)
326 (Obsolete, ld_classic only) -sectcreate <segname> <sectname> <file>     Allowed creation of a section from a file.
328 seglinkedit
329 Driver RejectNegative Negative(noseglinkedit)
330 (Obsolete) Object files with LINKEDIT sections are no longer supported.
332 segprot
333 Driver RejectNegative Separate Args(3)
334 -segprot <segname> <max_prot> <init_prot>       The virtual memory protections for segment <segname> have maximum and initial values <max_prot> and <init_prot> respectively.  The specified values may contain \"r\", \"w\", \"x\" or \"-\" the latter meaning \"no access\".
336 segs_read_only_addr
337 Driver RejectNegative Separate
338 -segs_read_only_addr <address>  Specify that <address> is the base address of the read-only segments of a dylib.
340 segs_read_write_addr
341 Driver RejectNegative Separate
342 -segs_read_write_addr <address> Specify that <address> is the base address address of the read-write segments of a dylib.
344 single_module
345 Driver RejectNegative
346 (Obsolete)      This is the default.
348 sub_library
349 Driver RejectNegative Separate
350 -sub_library <name>     Library named <name> will be re-exported (only useful for dylibs).
352 sub_umbrella
353 Driver RejectNegative Separate
354 -sub_umbrella <name>    Framework named <name> will be re-exported (only useful for dylibs).
356 twolevel_namespace
357 Driver RejectNegative
358 This is the default.
360 twolevel_namespace_hints
361 Driver RejectNegative
362 Add extra information to the executable that can speed up dynamic loading (provided that dependent libraries are unchanged).
364 umbrella
365 Driver RejectNegative
366 -umbrella <framework>   The specified framework will be re-exported.
368 undefined
369 Driver RejectNegative Separate
370 -undefined <treatment>  Specify the handling for undefined symbols (default is error).
372 unexported_symbols_list
373 Driver RejectNegative Separate
374 -unexported_symbols_list <filename>     Do not export the global symbols listed in <filename>.
376 weak_reference_mismatches
377 Driver RejectNegative Separate
378 -weak_reference_mismatches <treatment>  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.
380 whatsloaded
381 Driver RejectNegative
382 Logs which object files the linker loads.
384 whyload
385 Driver RejectNegative
386 Logs which symbol(s) caused an object to be loaded.
388 ;(Obsolete, ignored)    Strip symbols starting with "L", this is the default.
390 Driver RejectNegative
393 Driver RejectNegative Joined
394 (Obsolete, ignored)     Old support similar to \"-whyload\".
396 Mach
397 Driver RejectNegative
398 (Obsolete and unhandled by ld64, ignored)       ld should produce an executable (only handled by ld_classic).