aboutsummaryrefslogtreecommitdiff
path: root/gcc/doc/invoke.texi
diff options
context:
space:
mode:
authorGeoffrey Keating <geoffk@apple.com>2004-10-30 20:22:54 +0000
committerGeoffrey Keating <geoffk@gcc.gnu.org>2004-10-30 20:22:54 +0000
commit46bfe5e30e858fe285762859370a6a90bd1c18ba (patch)
tree024668bf7912420a23f15a0cbf868b713c6d69e0 /gcc/doc/invoke.texi
parent61168ff146d478146e397e1f1d0666b6b1d80d75 (diff)
downloadgcc-46bfe5e30e858fe285762859370a6a90bd1c18ba.zip
gcc-46bfe5e30e858fe285762859370a6a90bd1c18ba.tar.gz
gcc-46bfe5e30e858fe285762859370a6a90bd1c18ba.tar.bz2
invoke.texi (Darwin Options): Improve description of how the subtype is chosen.
* doc/invoke.texi (Darwin Options): Improve description of how the subtype is chosen. From-SVN: r89897
Diffstat (limited to 'gcc/doc/invoke.texi')
-rw-r--r--gcc/doc/invoke.texi21
1 files changed, 17 insertions, 4 deletions
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index a43fd7f..15e7316 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -7190,13 +7190,26 @@ system.
FSF GCC on Darwin does not create ``fat'' object files; it will create
an object file for the single architecture that it was built to
target. Apple's GCC on Darwin does create ``fat'' files if multiple
-@option{-arch} options are used.
+@option{-arch} options are used; it does so by running the compiler or
+linker multiple times and joining the results together with
+@file{lipo}.
-The subtype of the file created (@var{ppc7400} or @var{ppc970} or
-@var{i686}) is determined by the flag that specifies the ISA
-that GCC is targetting, @option{-mcpu} or @option{-march}. The
+The subtype of the file created (like @samp{ppc7400} or @samp{ppc970} or
+@samp{i686}) is determined by the flags that specify the ISA
+that GCC is targetting, like @option{-mcpu} or @option{-march}. The
@option{-force_cpusubtype_ALL} option can be used to override this.
+The Darwin tools vary in their behaviour when presented with an ISA
+mismatch. The assembler, @file{as}, will only permit instructions to
+be used that are valid for the subtype of the file it is generating,
+so you cannot put 64-bit instructions in an @samp{ppc750} object file.
+The linker for shared libraries, @file{/usr/bin/libtool}, will fail
+and print an error if asked to create a shared library with a less
+restrictive subtype than its input files (for instance, trying to put
+a @samp{ppc970} object file in a @samp{ppc7400} library). The linker
+for executables, @file{ld}, will quietly give the executable the most
+restrictive subtype of any of its input files.
+
@table @gcctabopt
@item -F@var{dir}
@opindex F