• Michael Stahl's avatar
    python3: add module for internal Python 3 build (not active yet) · 8a6c5b2f
    Michael Stahl yazdı
    The module builds here on Fedora 17 and with MSVC2008.
    MacOS X is unfinished and probably breaks, which is why the module
    is disabled now.
    
    These patches from module python were dropped:
    
    Integrated upstream:
    - Python.mipsel-py4305.patch
    - Python-2.6.1-py4768.patch
    - Python-2.6.1-py2422.patch (modified, use --with-valgrind)
    - Python-2.6.1-urllib.patch
    - Python-2.6.1-py8067.patch
    
    Obsolete:
    - Python-2.6.1-svn-1.7.patch (migrated to non-toy HG now)
    - Python-parallel-make.patch
    - Python-2.6.1-nohardlink.patch (no idea why that would be needed,
                                     NFS should support hard links)
    - Python-2.6.1-sysbase.patch (Solaris 11 setsolar specific patch)
    - Python-2.6.1-cross.berkeleydb.patch (berekeleydb removal)
    - Python-2.6.2-bdb48.patch
    - Python-2.6.1-vc10.patch (upstream supports vc10)
    
    An attempt to cross compile with mingw that proved unsucessful according
    to dtardon; there is upstream work on this topic that is possibly
    already in 3.3: http://bugs.python.org/issue8067
    - Python-2.6.2-cross.patch
    - Python-2.6.2-cross.fix-configure.patch
    
    Change-Id: Iba9a3cab955983e173e12110f93a6f381d86f9ce
    8a6c5b2f
python-3.3.0-aix.patch.1 6.09 KB
build with GCC on AIX

diff -ru python3.old_/configure python3/configure
--- python3.old_/configure	2012-09-29 10:00:50.000000000 +0200
+++ python3/configure	2012-11-13 19:28:25.869753237 +0100
@@ -3426,8 +3426,6 @@
 else
 
 	case $ac_sys_system in
-	AIX*)   CC=${CC:-xlc_r}
-		without_gcc=;;
 	*)	without_gcc=no;;
 	esac
 fi
@@ -5541,10 +5539,18 @@
 	      PY3LIBRARY=libpython3.so
 	  fi
           ;;
-    Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*|OpenBSD*)
+    Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*|OpenBSD*|AIX*)
 	  LDLIBRARY='libpython$(LDVERSION).so'
-	  BLDLIBRARY='-L. -lpython$(LDVERSION)'
-	  RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
+	  case $ac_sys_system in
+	    AIX*)
+	      BLDLIBRARY='-Wl,-brtl -L. -lpython$(LDVERSION)'
+	      RUNSHARED=LIBPATH=`pwd`:${LIBPATH}
+	      ;;
+	    *)
+	      BLDLIBRARY='-L. -lpython$(LDVERSION)'
+	      RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
+	      ;;
+	  esac
 	  INSTSONAME="$LDLIBRARY".$SOVERSION
 	  if test "$with_pydebug" != yes
           then
@@ -6174,7 +6180,7 @@
 		# debug builds.
 		OPT="-g -O0 -Wall $STRICT_PROTO"
 	    else
-		OPT="-g $WRAP -O3 -Wall $STRICT_PROTO"
+		OPT="$WRAP -O0 -Wall $STRICT_PROTO"
 	    fi
 	    ;;
 	*)
@@ -8306,8 +8312,13 @@
 then
 	case $ac_sys_system/$ac_sys_release in
 	AIX*)
-		BLDSHARED="\$(srcdir)/Modules/ld_so_aix \$(CC) -bI:\$(srcdir)/Modules/python.exp"
-		LDSHARED="\$(BINLIBDEST)/config/ld_so_aix \$(CC) -bI:\$(BINLIBDEST)/config/python.exp"
+		if test "$GCC" = "yes"; then
+		  LDSHARED='$(CC) -shared'
+		  BLDSHARED='$(CC) -Wl,-brtl -shared'
+		else
+		  BLDSHARED="\$(srcdir)/Modules/ld_so_aix \$(CC) -bI:\$(srcdir)/Modules/python.exp"
+		  LDSHARED="\$(BINLIBDEST)/config/ld_so_aix \$(CC) -bI:\$(BINLIBDEST)/config/python.exp"
+		fi
 		;;
 	IRIX/5*) LDSHARED="ld -shared";;
 	IRIX*/6*) LDSHARED="ld ${SGI_ABI} -shared -all";;
diff -ru python3.old_/configure.ac python3/configure.ac
--- python3.old_/configure.ac	2012-09-29 10:00:50.000000000 +0200
+++ python3/configure.ac	2012-11-13 19:28:36.273753536 +0100
@@ -545,8 +545,6 @@
 		without_gcc=$withval;;
 	esac], [
 	case $ac_sys_system in
-	AIX*)   CC=${CC:-xlc_r}
-		without_gcc=;;
 	*)	without_gcc=no;;
 	esac])
 AC_MSG_RESULT($without_gcc)
@@ -910,10 +908,18 @@
 	      PY3LIBRARY=libpython3.so
 	  fi
           ;;
-    Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*|OpenBSD*)
+    Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*|OpenBSD*|AIX*)
 	  LDLIBRARY='libpython$(LDVERSION).so'
-	  BLDLIBRARY='-L. -lpython$(LDVERSION)'
-	  RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
+	  case $ac_sys_system in
+	    AIX*)
+	      BLDLIBRARY='-Wl,-brtl -L. -lpython$(LDVERSION)'
+	      RUNSHARED=LIBPATH=`pwd`:${LIBPATH}
+	      ;;
+	    *)
+	      BLDLIBRARY='-L. -lpython$(LDVERSION)'
+	      RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
+	      ;;
+	  esac
 	  case $ac_sys_system in
 	      FreeBSD*)
 		SOVERSION=`echo $SOVERSION|cut -d "." -f 1`
@@ -1866,8 +1872,13 @@
 then
 	case $ac_sys_system/$ac_sys_release in
 	AIX*)
-		BLDSHARED="\$(srcdir)/Modules/ld_so_aix \$(CC) -bI:\$(srcdir)/Modules/python.exp"
-		LDSHARED="\$(BINLIBDEST)/config/ld_so_aix \$(CC) -bI:\$(BINLIBDEST)/config/python.exp"
+		if test "$GCC" = "yes"; then
+			LDSHARED='$(CC) -shared'
+			BLDSHARED='$(CC) -Wl,-brtl -shared'
+		else
+			BLDSHARED="\$(srcdir)/Modules/ld_so_aix \$(CC) -bI:\$(srcdir)/Modules/python.exp"
+			LDSHARED="\$(BINLIBDEST)/config/ld_so_aix \$(CC) -bI:\$(BINLIBDEST)/config/python.exp"
+		fi
 		;;
 	IRIX/5*) LDSHARED="ld -shared";;
 	IRIX*/6*) LDSHARED="ld ${SGI_ABI} -shared -all";;
diff -ru python3.old_/Makefile.pre.in python3/Makefile.pre.in
--- python3.old_/Makefile.pre.in	2012-09-29 10:00:41.000000000 +0200
+++ python3/Makefile.pre.in	2012-11-13 19:10:10.733742599 +0100
@@ -493,7 +493,10 @@
 
 libpython$(LDVERSION).so: $(LIBRARY_OBJS)
 	if test $(INSTSONAME) != $(LDLIBRARY); then \
-		$(BLDSHARED) -Wl,-h$(INSTSONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \
+		if [ "`echo $(MACHDEP) | sed 's/^\(...\).*/\1/'`" != "aix" ]; then \
+			SONAME="-Wl,-h$(INSTSONAME)"; \
+		fi; \
+		$(BLDSHARED) $(SONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \
 		$(LN) -f $(INSTSONAME) $@; \
 	else \
 		$(BLDSHARED) -o $@ $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \
@@ -1106,6 +1109,8 @@
 	export PATH; PATH="`pwd`:$$PATH"; \
 	export PYTHONPATH; PYTHONPATH="`pwd`/Lib"; \
 	export DYLD_FRAMEWORK_PATH; DYLD_FRAMEWORK_PATH="`pwd`"; \
+	export LD_LIBRARY_PATH; LD_LIBRARY_PATH="`pwd`${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"; \
+	export LIBPATH; LIBPATH="`pwd`${LIBPATH:+:$LIBPATH}"; \
 	export EXE; EXE="$(BUILDEXE)"; \
 	cd $(srcdir)/Lib/$(PLATDIR); $(RUNSHARED) ./regen
 
diff -ru python3.old_/Modules/_ctypes/libffi/fficonfig.py.in python3/Modules/_ctypes/libffi/fficonfig.py.in
--- python3.old_/Modules/_ctypes/libffi/fficonfig.py.in	2012-09-29 10:00:42.000000000 +0200
+++ python3/Modules/_ctypes/libffi/fficonfig.py.in	2012-11-13 19:09:25.252740861 +0100
@@ -16,7 +16,7 @@
     'M32R': ['src/m32r/sysv.S', 'src/m32r/ffi.c'],
     'M68K': ['src/m68k/ffi.c', 'src/m68k/sysv.S'],
     'POWERPC': ['src/powerpc/ffi.c', 'src/powerpc/sysv.S', 'src/powerpc/ppc_closure.S', 'src/powerpc/linux64.S', 'src/powerpc/linux64_closure.S'],
-    'POWERPC_AIX': ['src/powerpc/ffi.c', 'src/powerpc/aix.S', 'src/powerpc/aix_closure.S'],
+    'POWERPC_AIX': ['src/powerpc/ffi_darwin.c', 'src/powerpc/aix.S', 'src/powerpc/aix_closure.S'],
     'POWERPC_FREEBSD': ['src/powerpc/ffi.c', 'src/powerpc/sysv.S', 'src/powerpc/ppc_closure.S'],
     'ARM': ['src/arm/sysv.S', 'src/arm/ffi.c'],
     'LIBFFI_CRIS': ['src/cris/sysv.S', 'src/cris/ffi.c'],
diff -ru python3.old_/Modules/Setup.dist python3/Modules/Setup.dist
--- python3.old_/Modules/Setup.dist	2012-09-29 10:00:42.000000000 +0200
+++ python3/Modules/Setup.dist	2012-11-13 19:09:25.251740860 +0100
@@ -177,7 +177,7 @@
 #_bisect _bisectmodule.c	# Bisection algorithms
 #_heapq _heapqmodule.c	# Heap queue algorithm
 
-#unicodedata unicodedata.c    # static Unicode character database
+unicodedata unicodedata.c    # static Unicode character database
 
 
 # Modules with some UNIX dependencies -- on by default: