[xmlsec] xmlsec: compilation on IBM AIX 4.3 , core dump

non_given@msn.com non_given@msn.com
Thu, 29 May 2003 16:56:28 +0000


Hi, just wanted to add some additional information to this
topic. (having truble with email server, I hope you don't
get multiple copies of this).

I tried to compile xmlsec1-1.0.1 on AIX 5.1 using cc
(VisualAge v6.0.0.0 according to lslpp -l) and got the
following error:

        source='app.c' object='app.lo' libtool=yes 
depfile='.deps/app.Plo' tmpdepfile='.deps/app.TPlo' 
depmode=aix /bin/sh ../../depcomp  /bin/sh ../../libtool
--mode=compile cc -DHAVE_CONFIG_H -I. -I. -I../..  -I../..
 -I../../include  -DXMLSEC_NO_XSLT=1   
-I/usr/local/include    -I/usr/local/include/libxml2  -Wall
-ansi      -g  -DXMLSEC_NO_XSLT=1 -c -o app.lo `test -f
'app.c' || echo './'`app.c
mkdir .libs
cc -DHAVE_CONFIG_H -I. -I. -I../.. -I../.. -I../../include
-DXMLSEC_NO_XSLT=1 -I/usr/local/include
-I/usr/local/include/libxml2 -Wall -ansi -g
-DXMLSEC_NO_XSLT=1 -c -M app.c  -DPIC
cc: 1501-210 command option Wall contains an incorrect
subargument
make: 1254-004 The error code from the last command is 1.

The AIX compiler doesn't like the -Wall option in
src/openssl/Makefile
INCLUDES = \
        [...]
        $(LIBXML_CFLAGS) \
        -Wall -ansi \
        $(NULL)

If I remove the -Wall it does compile but I get some
warnings and all the tests done during "make check"
core dump.

        source='app.c' object='app.lo' libtool=yes 
depfile='.deps/app.Plo' tmpdepfile='.deps/app.TPlo' 
depmode=aix /bin/sh ../../depcomp  /bin/sh ../../libtool
--mode=compile cc -DHAVE_CONFIG_H -I. -I. -I../..  -I../..
 -I../../include  -DXMLSEC_NO_XSLT=1   
-I/usr/local/include    -I/usr/local/include/libxml2  -ansi
     -g  -DXMLSEC_NO_XSLT=1 -c -o app.lo `test -f 'app.c'
|| echo './'`app.c
rm -f .libs/app.lo
cc -DHAVE_CONFIG_H -I. -I. -I../.. -I../.. -I../../include
-DXMLSEC_NO_XSLT=1 -I/usr/local/include
-I/usr/local/include/libxml2 -ansi -g -DXMLSEC_NO_XSLT=1 -c
-M app.c  -DPIC
1506-755 (W) The -a option is not supported in this release.
mv -f app.o .libs/app.lo
mv -f .libs/app.lo app.o
(cd . && ln -s app.o app.lo)

make check
[...]
--- testKeys started (20030529_143130) ---
    Creating new keys                                   
./tests/testKeys.sh[27]: 23616 Segmentation fault(coredump)
 Fail
--- testKeys finished ---


Doing testkeys.sh manually:
 testKeys.sh . /usr/local/bin/xmlsec1
--- testKeys started (20030529_150846) ---
    Creating new keys                                   
testKeys.sh[27]: 18840 Segmentation fault(coredump)
 Fail
--- testKeys finished ---
--- detailed log is written to 
/tmp/testKeys.20030529_150846-23744.log ---

dbx /usr/local/bin/xmlsec1 core
Type 'help' for help.
reading symbolic information ...
[using memory image in core]

Segmentation fault in glink.xmlSecError at 0xd23ddcc0 ($t1)
0xd23ddcc0 (xmlSecError+0x8) 800c0000        lwz   r0,0x0(r12)
(dbx) where
glink.xmlSecError() at 0xd23ddcc0
xmlSecOpenSSLAppLoadRANDFile(0x2ff223b0), line 839 in "app.c"
xmlSecOpenSSLAppInit(0x0), line 45 in "app.c"
xmlSecAppCryptoInit(0x0), line 25 in "crypto.c"
xmlSecAppInit(), line 1857 in "xmlsec.c"
main(argc = 17, argv = 0x2ff22960), line 795 in "xmlsec.c"
(dbx) quit

cat /tmp/testKeys.20030529_150846-23744.log
--- testKeys started (20030529_150846) ---
--- testKeys finished ---

I'm using OpenSSL 0.9.7b also built on this platform.

It looks like part of the problem might be some handling of
errors coming from openSSL.
I was able to determine that I was not getting and random
seed data. Although openssl 
appeared to pass all it's tests if I tried to do some
functions it failed.

openssl rand 5
unable to load 'random state'
This means that the random number generator has not been seeded
with much random data.
Consider setting the RANDFILE environment variable to point
at a file that
'random' data can be kept in (the file will be overwritten).
23638:error:24064064:random number
generator:SSLEAY_RAND_BYTES:PRNG not
seeded:md_rand.c:503:You need to read the OpenSSL FAQ,
http://www.openssl.org/support/faq.html

If I created a $HOME/.rnd file with some random data in it
openssl rand 5 works but the xmlsec test still core dumps.


 testKeys.sh . /usr/local/bin/xmlsec1
--- testKeys started (20030529_162506) ---
    Creating new keys                                   
testKeys.sh[27]: 23340 Segmentation fault(coredump)
 Fail
--- testKeys finished ---
--- detailed log is written to 
/tmp/testKeys.20030529_162506-23620.log ---


% dbx /usr/local/bin/xmlsec1 core
Type 'help' for help.
reading symbolic information ...
[using memory image in core]

Segmentation fault in glink.xmlSecErrorsGetMsg at
0xd2736b80 ($t1)
0xd2736b80 (xmlSecErrorsGetMsg+0x8) 800c0000        lwz  
r0,0x0(r12)
(dbx) where
glink.xmlSecErrorsGetMsg() at 0xd2736b80
xmlSecOpenSSLErrorsInit(), line 202 in "crypto.c"
xmlSecOpenSSLInit(), line 38 in "crypto.c"
xmlSecAppCryptoInit(0x0), line 33 in "crypto.c"
xmlSecAppInit(), line 1857 in "xmlsec.c"
main(argc = 17, argv = 0x2ff22920), line 795 in "xmlsec.c"
(dbx) quit

>Hi, Matt!
>
>I have no idea why it does not compile on AIX. AFAIK, the
only thing 
>required is ANSI C.
>Do you have any compiler output?
>
>Aleksey
>
>
>Matt wrote:
>
>Hello,
>
>I have compiled and used xmlsec on Linux without any problem,
>but it doesn't compile under AIX 4.3 with cc.
>
>Do you know how to compile it successfully ?
>Is it necessary to use gcc?
>What changes should I apply to the Makefile?
>
>Thank you.
>
>Regards,
>Matt