[Stackless-checkins] r52039 - in stackless/branches/release25-maint: Mac/BuildScript/build-installer.py Mac/BuildScript/resources/ReadMe.txt Mac/BuildScript/resources/Welcome.rtf Stackless/platf/switch_ppc_macosx.h Stackless/platf/switch_x86_unix.h configure configure.in

richard.tew python-checkins at python.org
Fri Sep 29 16:16:02 CEST 2006


Author: richard.tew
Date: Fri Sep 29 16:16:01 2006
New Revision: 52039

Modified:
   stackless/branches/release25-maint/Mac/BuildScript/build-installer.py
   stackless/branches/release25-maint/Mac/BuildScript/resources/ReadMe.txt
   stackless/branches/release25-maint/Mac/BuildScript/resources/Welcome.rtf
   stackless/branches/release25-maint/Stackless/platf/switch_ppc_macosx.h
   stackless/branches/release25-maint/Stackless/platf/switch_x86_unix.h
   stackless/branches/release25-maint/configure
   stackless/branches/release25-maint/configure.in
Log:
Patch from Jeff Senn.  Provides more flexible support for MacOS X, where different versions of GCC may or may not cause the frame pointer to be used (and need to be preserved by the Stackless stack switching routines).

Modified: stackless/branches/release25-maint/Mac/BuildScript/build-installer.py
==============================================================================
--- stackless/branches/release25-maint/Mac/BuildScript/build-installer.py	(original)
+++ stackless/branches/release25-maint/Mac/BuildScript/build-installer.py	Fri Sep 29 16:16:01 2006
@@ -628,7 +628,7 @@
     version = getVersion()
 
     print "Running configure..."
-    runCommand("%s -C --enable-framework --enable-universalsdk=%s LDFLAGS='-g -L%s/libraries/usr/local/lib' OPT='-g -O3 -I%s/libraries/usr/local/include' 2>&1"%(
+    runCommand("%s -C --enable-framework --enable-stacklessfewerregisters --enable-universalsdk=%s LDFLAGS='-g -L%s/libraries/usr/local/lib' OPT='-g -O3 -I%s/libraries/usr/local/include' 2>&1"%(
         shellQuote(os.path.join(SRCDIR, 'configure')),
         shellQuote(SDKPATH), shellQuote(WORKDIR)[1:-1],
         shellQuote(WORKDIR)[1:-1]))
@@ -877,7 +877,7 @@
 
     makeMpkgPlist(os.path.join(pkgroot, 'Info.plist'))
     pl = Plist(
-                IFPkgDescriptionTitle="Universal MacPython",
+                IFPkgDescriptionTitle="Universal Stackless MacPython",
                 IFPkgDescriptionVersion=getVersion(),
             )
 
@@ -911,13 +911,13 @@
         shutil.rmtree(outdir)
 
     imagepath = os.path.join(outdir,
-                    'python-%s-macosx'%(getFullVersion(),))
+                    'stackless-%s-macosx'%(getFullVersion(),))
     if INCLUDE_TIMESTAMP:
         imagepath = imagepath + '%04d-%02d-%02d'%(time.localtime()[:3])
     imagepath = imagepath + '.dmg'
 
     os.mkdir(outdir)
-    runCommand("hdiutil create -volname 'Univeral MacPython %s' -srcfolder %s %s"%(
+    runCommand("hdiutil create -volname 'Universal Stackless MacPython %s' -srcfolder %s %s"%(
             getFullVersion(),
             shellQuote(os.path.join(WORKDIR, 'installer')),
             shellQuote(imagepath)))

Modified: stackless/branches/release25-maint/Mac/BuildScript/resources/ReadMe.txt
==============================================================================
--- stackless/branches/release25-maint/Mac/BuildScript/resources/ReadMe.txt	(original)
+++ stackless/branches/release25-maint/Mac/BuildScript/resources/ReadMe.txt	Fri Sep 29 16:16:01 2006
@@ -1,3 +1,12 @@
+This is the Stackless (http://www.stackless.com/)
+version of Python.  It will replace the non-stackless 
+Python of the same version.  Other than additional
+features it should be compatible with normal Python.
+
+Everything below this point is from the original 
+Python ReadMe.txt
+----------------------------
+
 This package will install MacPython $FULL_VERSION for Mac OS X
 $MACOSX_DEPLOYMENT_TARGET for the following 
 architecture(s): $ARCHITECTURES.

Modified: stackless/branches/release25-maint/Mac/BuildScript/resources/Welcome.rtf
==============================================================================
--- stackless/branches/release25-maint/Mac/BuildScript/resources/Welcome.rtf	(original)
+++ stackless/branches/release25-maint/Mac/BuildScript/resources/Welcome.rtf	Fri Sep 29 16:16:01 2006
@@ -4,7 +4,7 @@
 \paperw11900\paperh16840\margl1440\margr1440\vieww9920\viewh10660\viewkind0
 \pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
 
-\f0\fs24 \cf0 This package will install 
+\f0\fs24 \cf0 This package will install the "Stackless" variant of 
 \f1\b MacPython $FULL_VERSION
 \f0\b0  for 
 \f1\b Mac OS X $MACOSX_DEPLOYMENT_TARGET
@@ -15,4 +15,4 @@
 See the ReadMe file for more information.\
 \
 \
-This package will by default update your shell profile to ensure that this version of Python is on the search path of your shell. Please deselect the "Shell profile updater" package on the package customization screen  if you want to avoid this modification. }
\ No newline at end of file
+This package will by default update your shell profile to ensure that this version of Python is on the search path of your shell. Please deselect the "Shell profile updater" package on the package customization screen  if you want to avoid this modification. }

Modified: stackless/branches/release25-maint/Stackless/platf/switch_ppc_macosx.h
==============================================================================
--- stackless/branches/release25-maint/Stackless/platf/switch_ppc_macosx.h	(original)
+++ stackless/branches/release25-maint/Stackless/platf/switch_ppc_macosx.h	Fri Sep 29 16:16:01 2006
@@ -32,9 +32,15 @@
 
 #define STACK_MAGIC 3
 
+#if STACKLESS_FRHACK
 #define REGS_TO_SAVE "r13", "r14", "r15", "r16", "r17", "r18", "r19", "r20", \
        "r21", "r22", "r23", "r24", "r25", "r26", "r27", "r28", "r29", \
        "cr2", "cr3", "cr4"
+#else
+#define REGS_TO_SAVE "r13", "r14", "r15", "r16", "r17", "r18", "r19", "r20", \
+       "r21", "r22", "r23", "r24", "r25", "r26", "r27", "r28", "r29", "r31", \
+       "cr2", "cr3", "cr4"
+#endif
 
 static int
 slp_switch(void)

Modified: stackless/branches/release25-maint/Stackless/platf/switch_x86_unix.h
==============================================================================
--- stackless/branches/release25-maint/Stackless/platf/switch_x86_unix.h	(original)
+++ stackless/branches/release25-maint/Stackless/platf/switch_x86_unix.h	Fri Sep 29 16:16:01 2006
@@ -31,10 +31,14 @@
 slp_switch(void)
 {
 	register int *stackref, stsizediff;
+#if STACKLESS_FRHACK
+	__asm__ volatile ("" : : : "esi", "edi");
+#else
 	__asm__ volatile ("" : : : "ebx", "esi", "edi");
+#endif
 	__asm__ ("movl %%esp, %0" : "=g" (stackref));
 	{
-		SLP_SAVE_STATE(stackref, stsizediff);
+ 		SLP_SAVE_STATE(stackref, stsizediff);
 		__asm__ volatile (
 		    "addl %0, %%esp\n"
 		    "addl %0, %%ebp\n"
@@ -44,9 +48,14 @@
 		SLP_RESTORE_STATE();
 		return 0;
 	}
+#if STACKLESS_FRHACK
+	__asm__ volatile ("" : : : "esi", "edi");
+#else
 	__asm__ volatile ("" : : : "ebx", "esi", "edi");
+#endif
 }
 
+
 #endif
 
 /*

Modified: stackless/branches/release25-maint/configure
==============================================================================
--- stackless/branches/release25-maint/configure	(original)
+++ stackless/branches/release25-maint/configure	Fri Sep 29 16:16:01 2006
@@ -312,7 +312,7 @@
 # include <unistd.h>
 #endif"
 
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS VERSION SOVERSION CONFIG_ARGS UNIVERSALSDK PYTHONFRAMEWORK PYTHONFRAMEWORKDIR PYTHONFRAMEWORKPREFIX PYTHONFRAMEWORKINSTALLDIR FRAMEWORKINSTALLFIRST FRAMEWORKINSTALLLAST FRAMEWORKALTINSTALLFIRST FRAMEWORKALTINSTALLLAST FRAMEWORKUNIXTOOLSPREFIX MACHDEP SGI_ABI EXTRAPLATDIR EXTRAMACHDEPPATH CONFIGURE_MACOSX_DEPLOYMENT_TARGET EXPORT_MACOSX_DEPLOYMENT_TARGET CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX MAINCC CPP EGREP BUILDEXEEXT LIBRARY LDLIBRARY DLLLIBRARY BLDLIBRARY LDLIBRARYDIR INSTSONAME RUNSHARED LINKCC RANLIB ac_ct_RANLIB AR SVNVERSION INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN OPT BASECFLAGS OTHER_LIBTOOL_OPT LIBTOOL_CR!
 UFT SO LDSHARED BLDSHARED CCSHARED LINKFORSHARED CFLAGSFORSHARED SHLIBS USE_SIGNAL_MODULE SIGNAL_OBJS USE_THREAD_MODULE LDLAST THREADOBJ DLINCLDIR DYNLOADFILE MACHDEP_OBJS TRUE LIBOBJS HAVE_GETHOSTBYNAME_R_6_ARG HAVE_GETHOSTBYNAME_R_5_ARG HAVE_GETHOSTBYNAME_R_3_ARG HAVE_GETHOSTBYNAME_R HAVE_GETHOSTBYNAME LIBM LIBC UNICODE_OBJS THREADHEADERS SRCDIRS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS VERSION SOVERSION CONFIG_ARGS UNIVERSALSDK STACKLESS_FRHACK PYTHONFRAMEWORK PYTHONFRAMEWORKDIR PYTHONFRAMEWORKPREFIX PYTHONFRAMEWORKINSTALLDIR FRAMEWORKINSTALLFIRST FRAMEWORKINSTALLLAST FRAMEWORKALTINSTALLFIRST FRAMEWORKALTINSTALLLAST FRAMEWORKUNIXTOOLSPREFIX MACHDEP SGI_ABI EXTRAPLATDIR EXTRAMACHDEPPATH CONFIGURE_MACOSX_DEPLOYMENT_TARGET EXPORT_MACOSX_DEPLOYMENT_TARGET CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX MAINCC CPP EGREP BUILDEXEEXT LIBRARY LDLIBRARY DLLLIBRARY BLDLIBRARY LDLIBRARYDIR INSTSONAME RUNSHARED LINKCC RANLIB ac_ct_RANLIB AR SVNVERSION INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN OPT BASECFLAGS OTHER_LIBTO!
 OL_OPT LIBTOOL_CRUFT SO LDSHARED BLDSHARED CCSHARED LINKFORSHARED CFLAGSFORSHARED SHLIBS USE_SIGNAL_MODULE SIGNAL_OBJS USE_THREAD_MODULE LDLAST THREADOBJ DLINCLDIR DYNLOADFILE MACHDEP_OBJS TRUE LIBOBJS HAVE_GETHOSTBYNAME_R_6_ARG HAVE_GETHOSTBYNAME_R_5_ARG HAVE_GETHOSTBYNAME_R_3_ARG HAVE_GETHOSTBYNAME_R HAVE_GETHOSTBYNAME LIBM LIBC UNICODE_OBJS THREADHEADERS SRCDIRS LTLIBOBJS'
 ac_subst_files=''
 
 # Initialize some variables set by options.
@@ -847,6 +847,8 @@
   --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
   --enable-universalsdk[SDKDIR]
                           Build agains Mac OS X 10.4u SDK (ppc/i386)
+  --enable-stacklessfewerregisters
+                          save fewer registers building c-stack switching
   --enable-framework[=INSTALLDIR]
                           Build (MacOSX|Darwin) framework
   --enable-shared         disable/enable building shared python library
@@ -1428,6 +1430,13 @@
 
 fi;
 
+# Check whether --enable-stacklessfewerregisters or --disable-stacklessfewerregisters was given.
+if test "${enable_stacklessfewerregisters+set}" = set; then
+  enableval="$enable_stacklessfewerregisters"
+  STACKLESS_FRHACK=1
+else
+   STACKLESS_FRHACK=0
+fi;
 
 # Check whether --enable-framework or --disable-framework was given.
 if test "${enable_framework+set}" = set; then
@@ -3888,6 +3897,7 @@
     then
       BASECFLAGS="$BASECFLAGS -fno-strict-aliasing"
     fi
+    BASECFLAGS="$BASECFLAGS -DSTACKLESS_FRHACK=${STACKLESS_FRHACK}"
     case $ac_sys_system in
 	SCO_SV*)
 	    BASECFLAGS="$BASECFLAGS -m486 -DSCO5"
@@ -22743,6 +22753,7 @@
 s, at SOVERSION@,$SOVERSION,;t t
 s, at CONFIG_ARGS@,$CONFIG_ARGS,;t t
 s, at UNIVERSALSDK@,$UNIVERSALSDK,;t t
+s, at STACKLESS_FRHACK@,$STACKLESS_FRHACK,;t t
 s, at PYTHONFRAMEWORK@,$PYTHONFRAMEWORK,;t t
 s, at PYTHONFRAMEWORKDIR@,$PYTHONFRAMEWORKDIR,;t t
 s, at PYTHONFRAMEWORKPREFIX@,$PYTHONFRAMEWORKPREFIX,;t t

Modified: stackless/branches/release25-maint/configure.in
==============================================================================
--- stackless/branches/release25-maint/configure.in	(original)
+++ stackless/branches/release25-maint/configure.in	Fri Sep 29 16:16:01 2006
@@ -83,6 +83,11 @@
 ])
 AC_SUBST(UNIVERSALSDK)
 
+AC_ARG_ENABLE(stacklessfewerregisters,
+	AC_HELP_STRING(--enable-stacklessfewerregisters, save fewer registers building c-stack switching),
+[STACKLESS_FRHACK=1],[ STACKLESS_FRHACK=0 ])
+AC_SUBST(STACKLESS_FRHACK)
+
 dnl quadrigraphs "@<:@" and "@:>@" produce "[" and "]" in the output
 AC_ARG_ENABLE(framework,
               AC_HELP_STRING(--enable-framework@<:@=INSTALLDIR@:>@, Build (MacOSX|Darwin) framework),
@@ -814,6 +819,7 @@
     then
       BASECFLAGS="$BASECFLAGS -fno-strict-aliasing"
     fi
+    BASECFLAGS="${BASECFLAGS} -DSTACKLESS_FRHACK=${STACKLESS_FRHACK}"
     case $ac_sys_system in
 	SCO_SV*)
 	    BASECFLAGS="$BASECFLAGS -m486 -DSCO5"

_______________________________________________
Stackless-checkins mailing list
Stackless-checkins at stackless.com
http://www.stackless.com/mailman/listinfo/stackless-checkins



More information about the Stackless-checkins mailing list