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]

PING: PATCH Re: [DARWIN]: Add -mdynamic-no-pic to Darwin-specific options


Ping:

http://gcc.gnu.org/ml/gcc-patches/2004-08/msg01485.html

This change adds the flag "-mdynamic-no-pic" when compiling gcc itself on Darwin, improving the efficiency of gcc's code and thus improving compile times. On our compiler timing test projects, this change improved compile times by 3-5%. gcc still bootstraps after this change, and the flag was correctly applied to gcc but not to libraries.

See the original message for full details of the change, and see

http://gcc.gnu.org/ml/gcc-patches/2004-08/msg01165.html

for details of why this flag is needed on Mac OS X.

This version includes changes suggested by Mike Stump and Andrew Pinski. The compiler bootstraps on Darwin, and (for Apple folks) builds correctly using Apple's internal build tools.

Ok to submit to mainline?

Robert


In addition to these changes, configure was regenerated with autoconf version 2.13. I also added
the file config/mh-ppc-darwin with the following contents:


# The -mdynamic-no-pic ensures that the compiler executable is built without
# position-independent-code -- the usual default on Darwin. This fix speeds
# compiles by 3-5%.


BOOT_CFLAGS=-g -O2 -mdynamic-no-pic

Index: ChangeLog
===================================================================
RCS file: /cvs/gcc/gcc/ChangeLog,v
retrieving revision 1.536.2.46.2.4
diff -u -b -d -r1.536.2.46.2.4 ChangeLog
--- ChangeLog 23 Aug 2004 19:20:30 -0000 1.536.2.46.2.4
+++ ChangeLog 31 Aug 2004 19:35:26 -0000
@@ -1,3 +1,11 @@
+2004-08-31 Robert Bowdidge <bowdidge@apple.com>
+
+ * Makefile.in: Move BOOT_CFLAGS above host makefile fragment include.
+ * configure.in: add test for powerpc-*-darwin* to specify makefile frag
+ * configure: regenerate
+ * config/mh-ppc-darwin: create file, override BOOT_CFLAGS for
+ -mdynamic-no-pic
+
2004-08-19 Michael Koch <konqueror@gmx.de>


 	* gcc/doc/install.texi: Update entry about automake for libjava.
Index: Makefile.in
===================================================================
RCS file: /cvs/gcc/gcc/Makefile.in,v
retrieving revision 1.104.2.35.2.4
diff -u -b -d -r1.104.2.35.2.4 Makefile.in
--- Makefile.in	23 Aug 2004 19:20:31 -0000	1.104.2.35.2.4
+++ Makefile.in	31 Aug 2004 19:35:27 -0000
@@ -486,6 +486,11 @@
 	@echo Please reconfigure without --enable-bootstrap
 @endif gcc-bootstrap

+# Flags to pass to stage2 and later makes. -- define here so fragments can
+# override them.
+BOOT_CFLAGS= -g -O2
+
+
# The first rule in the file had better be this one. Don't put any above it.
# This lives here to allow makefile fragments to contain dependencies.
@default_target@:
@@ -28137,7 +28142,6 @@
objext = .o


 # Flags to pass to stage2 and later makes.
-BOOT_CFLAGS= -g -O2
 POSTSTAGE1_FLAGS_TO_PASS = \
 	CC="$${CC}" CC_FOR_BUILD="$${CC_FOR_BUILD}" \
 	STAGE_PREFIX=$$r/stage-gcc/ \
Index: configure.in
===================================================================
RCS file: /cvs/gcc/gcc/configure.in,v
retrieving revision 1.161.2.40.2.4
diff -u -b -d -r1.161.2.40.2.4 configure.in
--- configure.in	23 Aug 2004 19:20:37 -0000	1.161.2.40.2.4
+++ configure.in	31 Aug 2004 19:35:27 -0000
@@ -945,6 +945,9 @@
     tentative_cc="/usr/cygnus/progressive/bin/gcc"
     host_makefile_frag="config/mh-lynxrs6k"
     ;;
+  powerpc-*-darwin*)
+    host_makefile_frag="config/mh-ppc-darwin"
+    ;;
   *-*-lynxos*)
     # /bin/cc is less than useful for our purposes.  Always use GCC
     tentative_cc="/bin/gcc"


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