From 0780e470dcba9d9b7307cbce7dcddd6053efaf53 Mon Sep 17 00:00:00 2001 From: Jack Jansen Date: Mon, 20 Jan 2003 10:47:48 +0000 Subject: [PATCH] On MacOSX, added -prebind option to link phase for executable (and framework, if applicable). This speeds up startup time by up to 50%. --- Makefile.pre.in | 2 ++ configure | 8 ++++++-- configure.in | 6 +++++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/Makefile.pre.in b/Makefile.pre.in index 63f03c4508d..361d8b28961 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -107,6 +107,8 @@ PYTHONFRAMEWORK= @PYTHONFRAMEWORK@ PYTHONFRAMEWORKDIR= @PYTHONFRAMEWORKDIR@ PYTHONFRAMEWORKPREFIX= @PYTHONFRAMEWORKPREFIX@ PYTHONFRAMEWORKINSTALLDIR= @PYTHONFRAMEWORKINSTALLDIR@ +# Options to enable prebinding (for fast startup) +OTHER_LIBTOOL_OPT = -prebind -seg1addr 0x10000000 # Environment to run shared python without installed libraries RUNSHARED= @RUNSHARED@ diff --git a/configure b/configure index 39c9892fa4c..df432d81f0b 100755 --- a/configure +++ b/configure @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.in Revision: 1.384 . +# From configure.in Revision: 1.385 . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.53 for python 2.3. # @@ -9443,7 +9443,11 @@ then # -u _PyMac_Error is needed to pull in the mac toolbox glue, which is # not used by the core itself but which needs to be in the core so # that dynamically loaded extension modules have access to it. - LINKFORSHARED="$extra_undefs -framework System" + # -prebind causes the executable to assume dynamic libraries are at their + # preferred address, which speeds up startup. We specify it here + # in stead of in LDFLAGS because it does not seem to work for bundle + # plugins (as of OSX 10.2). + LINKFORSHARED="$extra_undefs -framework System -prebind" if test "$enable_framework" then LINKFORSHARED="$LINKFORSHARED -framework Python" diff --git a/configure.in b/configure.in index 9ec081aeb03..c8ba86bb4c3 100644 --- a/configure.in +++ b/configure.in @@ -1164,7 +1164,11 @@ then # -u _PyMac_Error is needed to pull in the mac toolbox glue, which is # not used by the core itself but which needs to be in the core so # that dynamically loaded extension modules have access to it. - LINKFORSHARED="$extra_undefs -framework System" + # -prebind causes the executable to assume dynamic libraries are at their + # preferred address, which speeds up startup. We specify it here + # in stead of in LDFLAGS because it does not seem to work for bundle + # plugins (as of OSX 10.2). + LINKFORSHARED="$extra_undefs -framework System -prebind" if test "$enable_framework" then LINKFORSHARED="$LINKFORSHARED -framework Python"