On AIX the file dynload_aix.c is used to load shared
modules. This code uses the load() and loadbind() calls
to load and bind a shared module. These functions do
not work with C++ extensions. Since AIX 4.2 the
dlopen() and dlsym() calls are available and should be
used in preference because they also work with C++
modules. The patch changes the configure(.in) script to
prefer the usage of dynload_shlib.c when the dlopen()
function is available (configure checks this).
Another problem is the definition of _XOPEN_SOURCE =
600 in the configure(.in) script. On AIX 4, some
typedefs are only available when _XOPEN_SOURCE has a
value of 500, but are used even if _XOPEN_SOURCE has
another value. This seems to be a bug in the AIX
include files. If _XOPEN_SOURCE is undefined, the AIX
include files define it with the value 500 and
everything works as expected. So the patch sets
"define_xopen_source=no" for AIX 4 in configure(.in)
The attached patch contains the changes for
configure.in and configure but normally only
configure.in needs to be patched and then configure
should be recreated with autoconf.
|