in reply to Problem Compiling Perl 5.20.1 on AIX

Your -Dcc cannot have a regex.

You do not have - by accident - $CC also set or (through a symlink) pointing to a different cc.

Use -Duse64bitall instead of -Duse64bitint.

$ env OBJECT_MODE=64 ./Configure -Dusethreads -Duse64bitall \ -Dprefix=/db/sched1/common/perl5/perl-5.20.1 -des

should do the trick. If you really want to specify your compiler, do it without regex or in the env:

$ export OBJECT_MODE=64 $ export CC=/usr/vac/bin/cc99_r $ ./Configure -Dusethreads -Duse64bitall \ -Dprefix=/db/sched1/common/perl5/perl-5.20.1 -des

Enjoy, Have FUN! H.Merijn

Replies are listed 'Best First'.
Re^2: Problem Compiling Perl 5.20.1 on AIX
by ChuckP (Novice) on Dec 05, 2014 at 16:06 UTC

    Thanks for the help!! Sory about the confusion on the regex, but it was to show that I've used several xlc aliases (c89_r, c99_r,cc_r, etc) and that I got the same results each time. I copied and pasted your example and got the following error:

    List of earlier versions to include in @INC? [none] <malloc/malloc.h> NOT found. <malloc.h> NOT found. Checking to see how big your pointers are... cc: 1501-228 (W) input file undefined not found (I can't seem to compile the test program. Guessing...) What is the size of a pointer (in bytes)? [4] *** You have chosen a maximally 64-bit build, *** but your pointers are only 4 bytes wide. *** Please rerun Configure without -Duse64bitall. *** Since you have quads, you could possibly try with -Duse64bitint. *** Cannot continue, aborting.

    Where do I set the size of the pointers? Also, do I need to set a env var like SHLIB_PATH? So Configure can find the malloc.h? I set the env vars as follows:

    $ export OBJECT_MODE=64 $ export CC=/usr/vac/bin/c99_r

    This is why I switched to using the '-Duse64bitint' flag. This is my first time I've ever used the xlc compiler and the docs from ibm seem to be incomplete. At a previous job, I compiled perl 5.12 and 5.14 with gcc on linux and only had to try it 2 to 3 times tops on the perl 5.12. I saved the env in make_opts.inc config file. Unfortunately, this an IBM shop and they won't let me have gcc, gawk, gtar, etc. I appreciate your help! Thanks!

      Unfortunately indeed. Try to read the INSTALL document and do not use make_opts.inc, but Policy.sh


      Enjoy, Have FUN! H.Merijn

        Hi Tux, I think I found the problem. I snipped the cppsym c code from the Configure script and recompiled it and got a few symbols out of 792 possibilities. Few of the *64* Symbols are available and I think this is the problem. I'm not sure if an option was missed when the package was installed. If not, I Here's the list:

        $ ./cppsym _AIX _AIX32 _AIX41 _AIX43 _ALL_SOURCE _ANSI_C_SOURCE _BIG_ENDIAN __BIG_ENDIAN__ _IBMR2 _LARGE_FILE_API _LONG_LONG _LP64 __LP64__ _POSIX_C_SOURCE _POSIX_SOURCE _POWER _XOPEN_SOURCE _XOPEN_SOURCE_EXTENDED __unix __unix__

        Any light you can shed on this would be greatly appreciated!