diff options
author | Geoffrey Keating <geoffk@apple.com> | 2004-10-30 20:22:54 +0000 |
---|---|---|
committer | Geoffrey Keating <geoffk@gcc.gnu.org> | 2004-10-30 20:22:54 +0000 |
commit | 46bfe5e30e858fe285762859370a6a90bd1c18ba (patch) | |
tree | 024668bf7912420a23f15a0cbf868b713c6d69e0 /gcc/doc/invoke.texi | |
parent | 61168ff146d478146e397e1f1d0666b6b1d80d75 (diff) | |
download | gcc-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.texi | 21 |
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 |