[JDEV] RE: AIX compilation of jabber server.
David Clissold
cliss at austin.ibm.com
Fri Feb 2 16:32:51 CST 2001
OK -- I have an answer for the module loading failure on AIX.
dlopen() would not load most of these 1.4 .so modules because they
were importing one or more symbols that were not resolved at the
time they were loaded. The 1.2 ones worked simply because they
didn't have this problem.
Looking at all the symbols that are imported by all the .so files,
I found 3 symbols that were not exported from anywhere. All 3
symbols are indeed in the jabberd executable itself. But, all 3
start with an underscore ... and "-bexpall" exports all symbols
except those that begin with an underscore. Apparently these were
not there in 1.2. So the answer is just that we need to explicitly
export these from the main executable. Unfortunately, that seems
to mean creating an export file on the fly.
So, here is my new modification to the "configure" script:
##############################################
AIX)
#create an export file:
cat <<EOF >jabberd/jabberd.exp
#!
_mio_xml_parser
_pool_new
_pool_new_heap
EOF
CFLAGS="$CFLAGS -DMAXDNAME=1025"
MCFLAGS="$MCFLAGS -Wl,-G"
XLDFLAGS="$XLDFLAGS -Wl,-brtl,-bexpall,-bE:jabberd.exp";;
##############################################
That is, I have added the export file with the needed symbols,
and I have added the "-bE:jabberd.exp" flag. It's a little uglier, but
every one of the modules now loads successfully for me.
However, I now have another problem to investigate.
If I use the default "jabber.xml" file (from 1.4pre2) exactly as is,
all modules load successfully, but shortly thereafter jabberd dies
with a "Signal 65535" error. This does not happen with just
a basic xml file that loads only pthsock_client.so, or only xdb_file.so,
for example.
David Clissold
cliss at austin.ibm.com
More information about the JDev
mailing list