build with GCC on AIX diff -ru python3.orig/configure python3/configure --- python3.orig/configure 2015-07-26 17:10:18.218393484 +0200 +++ python3/configure 2015-07-26 17:29:44.460471779 +0200 @@ -3534,8 +3534,6 @@ else case $ac_sys_system in - AIX*) CC=${CC:-xlc_r} - without_gcc=;; *) without_gcc=no;; esac fi @@ -5787,10 +5785,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:+:${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 @@ -8789,8 +8795,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.orig/configure.ac python3/configure.ac --- python3.orig/configure.ac 2015-07-05 18:50:08.000000000 +0200 +++ python3/configure.ac 2015-07-26 17:32:10.445481579 +0200 @@ -587,8 +587,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) @@ -1090,10 +1088,18 @@ PY3LIBRARY=libpython3.so fi ;; - Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*|OpenBSD*) + Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*|OpenBSD*|AIX*)Linux*|GNU*|NetBSD*|FreeBSD*|DragonFly*|OpenBSD*) LDLIBRARY='libpython$(LDVERSION).so' - BLDLIBRARY='-L. -lpython$(LDVERSION)' - RUNSHARED=LD_LIBRARY_PATH=`pwd`${LD_LIBRARY_PATH:+:${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 @@ -2164,8 +2170,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.orig/Makefile.pre.in python3/Makefile.pre.in --- python3.orig/Makefile.pre.in 2015-07-05 18:50:07.000000000 +0200 +++ python3/Makefile.pre.in 2015-07-26 17:34:00.386488960 +0200 @@ -598,14 +598,17 @@ libpython$(LDVERSION).so: $(LIBRARY_OBJS) if test $(INSTSONAME) != $(LDLIBRARY); then \ - $(BLDSHARED) -Wl,-h$(INSTSONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \ + $(BLDSHARED) -o $(INSTSONAME) $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \ $(LN) -f $(INSTSONAME) $@; \ else \ $(BLDSHARED) -o $@ $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \ fi libpython3.so: libpython$(LDVERSION).so - $(BLDSHARED) $(NO_AS_NEEDED) -o $@ -Wl,-h$@ $^ + if [ "`echo $(MACHDEP) | sed 's/^\(...\).*/\1/'`" != "aix" ]; then \ + SONAME="-Wl,-h$@"; \ + fi; \ + $(BLDSHARED) $(NO_AS_NEEDED) -o $@ $(SONAME) $^ libpython$(LDVERSION).dylib: $(LIBRARY_OBJS) $(CC) -dynamiclib -Wl,-single_module $(PY_LDFLAGS) -undefined dynamic_lookup -Wl,-install_name,$(prefix)/lib/libpython$(LDVERSION).dylib -Wl,-compatibility_version,$(VERSION) -Wl,-current_version,$(VERSION) -o $@ $(LIBRARY_OBJS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \ @@ -1299,6 +1305,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)"; \ if [ -n "$(MULTIARCH)" ]; then export MULTIARCH; MULTIARCH=$(MULTIARCH); fi; \ export PYTHON_FOR_BUILD; \ diff -ru python3.orig/Modules/Setup.dist python3/Modules/Setup.dist --- python3.orig/Modules/Setup.dist 2015-07-05 18:50:07.000000000 +0200 +++ python3/Modules/Setup.dist 2015-07-26 17:34:27.951490811 +0200 @@ -181,7 +181,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: