Menu

#125 pdlcore.c fails to build on IRIX and AIX

critical
closed-fixed
nobody
core (120)
5
2008-06-16
2005-10-27
Anonymous
No

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.

Discussion

  • James Dykes

    James Dykes - 2008-03-07

    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

     
  • Craig DeForest

    Craig DeForest - 2008-06-16

    Logged In: YES
    user_id=20200
    Originator: NO

    I removed the offending '//' style comment from pdlcore.c.PL.

     
  • Craig DeForest

    Craig DeForest - 2008-06-16
    • status: open --> closed-fixed
     

Log in to post a comment.