When compiling on IRIX or AIX systems, the build is
aborted with a lot of error messages like
IRIX:
cc -n32 -mips3 -c -D_BSD_TYPES -D_BSD_TIME
-woff 1184,1552 -I/usr/local/include -DLANGUAGE_C -O3
-OPT:Olimit=0:space=ON -DVERSION=\"2.4.2\"
-DXS_VERSION=\"2.4.2\"
"-I/usr/local/perl/5.8.7/lib/5.8.7/IP30-irix/CORE"
pdlcore.c
cc-3316 cc: ERROR File = pdlcore.c, Line = 701
The expression must be a pointer to a complete object
type.
pptr+pdl->dimincs[pdl->ndims-1-plevel]* i *
pdl_howbig(pdl->datatype)
^
AIX:
/usr/vacpp/bin/xlc_r -q32 -c -D_ALL_SOURCE
-D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=-1
-qnoansialias -DUSE_NATIVE_DLOPEN -I/usr/local/include
-q32 -D_LARGE_FILES -qlonglong -DVERSION=\"2.4.2\"
-DXS_VERSION=\"2.4.2\"
"-I/usr/local/perl/5.8.7/lib/5.8.7/aix/CORE" pdlcore.c
"pdlcore.c", line 701.33: 1506-068 (S) Operation
between types "void*" and "int" is not allowed.
make: 1254-004 The error code from the last command is 1.
In Basic/Core/pdlcore.c[.PL] on several places.
The reason is, that sizeof(void) gives errors on these
platforms.
Solution: As the gcc results the sizeof(void) to 1 and
seems to internally typecast the pptr, make an
appropriate typecast for other compilers:
(char*)pptr+pdl->dimincs[pdl->ndims-1-plevel]*i*pdl_howbig(pdl->datatype)
Afterwards, it compiles smoothly.
Logged In: YES
user_id=2030293
Originator: NO
It looks like had trouble compiling on AIX for a different reason than above. The Basic/Core/pdlcore.c code contained C++ style comments (//) which the AIX compile 'cc' could not handle. Normally, though, an additional flag like -qcpluscmt can be added at configuration time, but it did not take at the Makefile for this function. Finally, I just edited the code changing the comments to /* */ and I was able to get past that point. I also saw some discussion regarding the Basic/Core/Config.pm module and another discussion on MakeMaker either of which may play in the configuration problem. I compiled my own local Perl version 5.10.0 and installed PDL 2.4.3. Hope this is helpful. ~jdd
Logged In: YES
user_id=20200
Originator: NO
I removed the offending '//' style comment from pdlcore.c.PL.