|
|
|
This file describes some things to be aware of when building SIP (and PyTQt)
|
|
|
|
under AIX.
|
|
|
|
|
|
|
|
I had success building SIP V3/V4 (and PyTQt) on AIX 4.3.3 and on AIX 5.1 with
|
|
|
|
VisualAge C++ and with gcc.
|
|
|
|
|
|
|
|
VisualAge C++ was version 6.0 but it should also work with version 5.x.
|
|
|
|
The GNU compiler was version 3.3.2 downloaded as a binary from
|
|
|
|
http://aixpdslib.seas.ucla.edu/aixpdslib.html
|
|
|
|
|
|
|
|
The TQt-Version was 3.2.3 but it should also work with previous versions.
|
|
|
|
|
|
|
|
If you are using Python version 2.3.3 or higher, SIP (and PyTQt) should build
|
|
|
|
out of the box without any changes.
|
|
|
|
|
|
|
|
If you are using a Python version before 2.3.3, you have to patch Python,
|
|
|
|
because until this version, Python uses the system calls load() and
|
|
|
|
loadbind() to load and bind shared objects. These system calls cannot load
|
|
|
|
and bind C++ shared objects properly (constructors and destructors for static
|
|
|
|
classes are not called with these system calls). Since AIX version 4.2 the
|
|
|
|
system calls dlopen() and dlsym() are available and should be used in
|
|
|
|
preference.
|
|
|
|
|
|
|
|
The following patch changes the configure script of Python to use dlopen()
|
|
|
|
and dlsym() if they are available. It also fixes a bug with the definition of
|
|
|
|
_XOPEN_SOURCE:
|
|
|
|
|
|
|
|
---8<-------------------------------------------------------------------->8---
|
|
|
|
diff -uNr Python-2.3.2.orig/configure Python-2.3.2/configure
|
|
|
|
--- Python-2.3.2.orig/configure 2003-09-27 10:58:55.000000000 +0200
|
|
|
|
+++ Python-2.3.2/configure 2003-10-28 11:33:58.000000000 +0100
|
|
|
|
@@ -1452,6 +1452,11 @@
|
|
|
|
# but used in struct sockaddr.sa_family. Reported by Tim Rice.
|
|
|
|
SCO_SV/3.2)
|
|
|
|
define_xopen_source=no;;
|
|
|
|
+ # On AIX 4, mbstate_t is defined only when _XOPEN_SOURCE == 500 but used in
|
|
|
|
+ # wcsnrtombs() and mbsnrtowcs() even if _XOPEN_SOURCE is not defined or
|
|
|
|
+ # has another value. By not (re)defining it, the defaults come in place.
|
|
|
|
+ AIX/4)
|
|
|
|
+ define_xopen_source=no;;
|
|
|
|
esac
|
|
|
|
|
|
|
|
if test $define_xopen_source = yes
|
|
|
|
@@ -12965,7 +12970,12 @@
|
|
|
|
if test -z "$DYNLOADFILE"
|
|
|
|
then
|
|
|
|
case $ac_sys_system/$ac_sys_release in
|
|
|
|
- AIX*) DYNLOADFILE="dynload_aix.o";;
|
|
|
|
+ AIX*) # Use dynload_shlib.c and dlopen() if we have it.
|
|
|
|
+ if test "$ac_cv_func_dlopen" = yes
|
|
|
|
+ then DYNLOADFILE="dynload_shlib.o"
|
|
|
|
+ else DYNLOADFILE="dynload_aix.o"
|
|
|
|
+ fi
|
|
|
|
+ ;;
|
|
|
|
BeOS*) DYNLOADFILE="dynload_beos.o";;
|
|
|
|
hp*|HP*) DYNLOADFILE="dynload_hpux.o";;
|
|
|
|
Darwin/*) DYNLOADFILE="dynload_next.o";;
|
|
|
|
---8<-------------------------------------------------------------------->8---
|
|
|
|
|
|
|
|
Note: I did not mix the compilers when building TQt, Python, SIP and PyTQt. At
|
|
|
|
least TQt, SIP and PyTQt must be built with the same compiler because of
|
|
|
|
different name mangling schemes.
|
|
|
|
|
|
|
|
If you have any problems or questions on building SIP or PyTQt on AIX, either
|
|
|
|
send an email to ulrich.berning@desys.de or use the PyKDE mailing list.
|
|
|
|
|
|
|
|
Ulrich Berning
|
|
|
|
DESYS GmbH
|