This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

improve Darwin subtype doc


Joseph pointed out I should have used @samp rather than @var, and on
re-reading what I wrote I decided that a few improvements could be
made.

Tested with 'make info' on a cross to i686-darwin from powerpc-darwin
(it's the tree I happened to have lying around).

-- 
- Geoffrey Keating <geoffk@apple.com>

===File ~/patches/gcc-darwin-bettersubtypedoc.patch=========
2004-10-30  Geoffrey Keating  <geoffk@apple.com>

	* doc/invoke.texi (Darwin Options): Improve description of
	how the subtype is chosen.

Index: doc/invoke.texi
===================================================================
RCS file: /cvs/gcc/gcc/gcc/doc/invoke.texi,v
retrieving revision 1.553
diff -u -p -u -p -r1.553 invoke.texi
--- doc/invoke.texi	30 Oct 2004 02:48:49 -0000	1.553
+++ doc/invoke.texi	30 Oct 2004 20:19:48 -0000
@@ -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.
-
-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
+@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 (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
============================================================


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]