libpython3.so is the "ABI compatible" wrapper library around libpython3.5m.so - it is not actually used by anything in LO right now, but let's ensure it has RPATH $ORIGIN just in case. This revealed that the AIX patch in python3 accidentally changed the SONAME of libpython3.5m.so from upstream's libpython3.5m.so.1.0 on ELF platforms, because the SONAME variable was set in the shell command but read as a make variable in the next line, which is actually evaluated earlier. So rename a few files in packages to use the upstream SONAME. Change-Id: I3611f75eee62b0993b853230521a2fa41ac5cd9c
147 lines
5.5 KiB
Groff
147 lines
5.5 KiB
Groff
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:
|