[reportlab-users] PyRXP compiles under Sun 64-bit with warnings, but segfaults or core dump on running

Jett Logic jettlogic at gmail.com
Thu Nov 23 08:30:15 EST 2006


Hi,

I'm working on a Solaris 9 system where I have to compile things in
64-bit mode, with only the Sun Studio 9 compiler available.

Compiling pyRXP 1.12 (with 64-bit Python 2.5 and "cc -mt -xcode=pic32
-xarch=v9") results in a a slew of warnings about type conversions
involving int and long in pyRXP.c and pyRXPU.c After installing,
"import pyRXP; pyRXP.Parser()" fails with a segmentation fault, and
pyRXPU.Parser() with a "bus error - core dumped".

REQUEST: as a workaround are there any cc compiler options I could use
to make pyRXP.c compile correctly, given that it's confused about the
lengths of int and long under 64-bit compilation? ("#define int long"
and it compiles without error but fails on import)

Below, the compilation warnings if any devs wish to debug it on 64-bit
solaris:


> "pyRXP.c", line 846: warning: argument #2 is incompatible with prototype:

> prototype: pointer to long : "/export/home/medscan/local64/include/python2.5/dictobject.h", line 101

> argument : pointer to int

> "pyRXP.c", line 877: warning: assignment type mismatch:

> pointer to function(int) returning pointer to struct _object {long ob_refcnt, pointer to struct _typeobject {..} ob_type} "=" pointer to function(long) returning pointer to struct _object {long ob_refcnt, pointer to struct _typeobject {..} ob_type}

> "pyRXP.c", line 878: warning: assignment type mismatch:

> pointer to function(pointer to struct _object {long ob_refcnt, pointer to struct _typeobject {..} ob_type}, int, pointer to struct _object {long ob_refcnt, pointer to struct _typeobject {..} ob_type}) returning int "=" pointer to function(pointer to struct _object {long ob_refcnt, pointer to struct _typeobject {..} ob_type}, long, pointer to struct _object {long ob_refcnt, pointer to struct _typeobject {..} ob_type}) returning int

> "pyRXP.c", line 879: warning: assignment type mismatch:

> pointer to function(pointer to struct _object {long ob_refcnt, pointer to struct _typeobject {..} ob_type}, int) returning pointer to struct _object {long ob_refcnt, pointer to struct _typeobject {..} ob_type} "=" pointer to function(pointer to struct _object {long ob_refcnt, pointer to struct _typeobject {..} ob_type}, long) returning pointer to struct _object {long ob_refcnt, pointer to struct _typeobject {..} ob_type}

> "pyRXP.c", line 882: warning: assignment type mismatch:

> pointer to function(int) returning pointer to struct _object {long ob_refcnt, pointer to struct _typeobject {..} ob_type} "=" pointer to function(long) returning pointer to struct _object {long ob_refcnt, pointer to struct _typeobject {..} ob_type}

> "pyRXP.c", line 883: warning: assignment type mismatch:

> pointer to function(pointer to struct _object {long ob_refcnt, pointer to struct _typeobject {..} ob_type}, int, pointer to struct _object {long ob_refcnt, pointer to struct _typeobject {..} ob_type}) returning int "=" pointer to function(pointer to struct _object {long ob_refcnt, pointer to struct _typeobject {..} ob_type}, long, pointer to struct _object {long ob_refcnt, pointer to struct _typeobject {..} ob_type}) returning int

> "pyRXP.c", line 884: warning: assignment type mismatch:

> pointer to function(pointer to struct _object {long ob_refcnt, pointer to struct _typeobject {..} ob_type}, int) returning pointer to struct _object {long ob_refcnt, pointer to struct _typeobject {..} ob_type} "=" pointer to function(pointer to struct _object {long ob_refcnt, pointer to struct _typeobject {..} ob_type}, long) returning pointer to struct _object {long ob_refcnt, pointer to struct _typeobject {..} ob_type}

> "pyRXP.c", line 1003: warning: argument #2 is incompatible with prototype:

> prototype: pointer to long : "/export/home/medscan/local64/include/python2.5/dictobject.h", line 101

> argument : pointer to int

> "build/_pyRXPU/pyRXPU.c", line 846: warning: argument #2 is incompatible with prototype:

> prototype: pointer to long : "/export/home/medscan/local64/include/python2.5/dictobject.h", line 101

> argument : pointer to int

> "build/_pyRXPU/pyRXPU.c", line 877: warning: assignment type mismatch:

> pointer to function(int) returning pointer to struct _object {long ob_refcnt, pointer to struct _typeobject {..} ob_type} "=" pointer to function(long) returning pointer to struct _object {long ob_refcnt, pointer to struct _typeobject {..} ob_type}

> "build/_pyRXPU/pyRXPU.c", line 878: warning: assignment type mismatch:

> pointer to function(pointer to struct _object {long ob_refcnt, pointer to struct _typeobject {..} ob_type}, int, pointer to struct _object {long ob_refcnt, pointer to struct _typeobject {..} ob_type}) returning int "=" pointer to function(pointer to struct _object {long ob_refcnt, pointer to struct _typeobject {..} ob_type}, long, pointer to struct _object {long ob_refcnt, pointer to struct _typeobject {..} ob_type}) returning int

> "build/_pyRXPU/pyRXPU.c", line 879: warning: assignment type mismatch:

> pointer to function(pointer to struct _object {long ob_refcnt, pointer to struct _typeobject {..} ob_type}, int) returning pointer to struct _object {long ob_refcnt, pointer to struct _typeobject {..} ob_type} "=" pointer to function(pointer to struct _object {long ob_refcnt, pointer to struct _typeobject {..} ob_type}, long) returning pointer to struct _object {long ob_refcnt, pointer to struct _typeobject {..} ob_type}

> "build/_pyRXPU/pyRXPU.c", line 882: warning: assignment type mismatch:

> pointer to function(int) returning pointer to struct _object {long ob_refcnt, pointer to struct _typeobject {..} ob_type} "=" pointer to function(long) returning pointer to struct _object {long ob_refcnt, pointer to struct _typeobject {..} ob_type}

> "build/_pyRXPU/pyRXPU.c", line 883: warning: assignment type mismatch:

> pointer to function(pointer to struct _object {long ob_refcnt, pointer to struct _typeobject {..} ob_type}, int, pointer to struct _object {long ob_refcnt, pointer to struct _typeobject {..} ob_type}) returning int "=" pointer to function(pointer to struct _object {long ob_refcnt, pointer to struct _typeobject {..} ob_type}, long, pointer to struct _object {long ob_refcnt, pointer to struct _typeobject {..} ob_type}) returning int

> "build/_pyRXPU/pyRXPU.c", line 884: warning: assignment type mismatch:

> pointer to function(pointer to struct _object {long ob_refcnt, pointer to struct _typeobject {..} ob_type}, int) returning pointer to struct _object {long ob_refcnt, pointer to struct _typeobject {..} ob_type} "=" pointer to function(pointer to struct _object {long ob_refcnt, pointer to struct _typeobject {..} ob_type}, long) returning pointer to struct _object {long ob_refcnt, pointer to struct _typeobject {..} ob_type}

> "build/_pyRXPU/pyRXPU.c", line 1003: warning: argument #2 is incompatible with prototype:

> prototype: pointer to long : "/export/home/medscan/local64/include/python2.5/dictobject.h", line 101

> argument : pointer to int




More information about the reportlab-users mailing list