Error building Math::Pari on AIX 7.1

M

Michael Wulff

Hello,

I am trying to compile Math::pari in a Perl 5.14.2 environment on AIX
7.1 TL01 64 Bit using vac compiler v11.1.0.8. After some diffilculties
I finally managed to compile GP/PARI using the options

env LD=/usr/ccs/bin/ld ./Configure --static

and `make gp-sta'

(See also thread http://pari.math.u-bordeaux.fr/archives/pari-users-1202/msg00017.html
in pari users list.)

When buiding Math::pari I first got an error that mpinl.h was not
found. I could fix this copying this header file into the build
directory:

cp /usr/local/include/pari/mpinl.h ../pari-2.5.1/src/headers

But now I run into the following error:

xlc_r -q64 -c -I ../../pari-2.5.1/src -I ../../pari-2.5.1/src/
headers -I ../../pari-2.5.1/src/graph -I . -D_ALL_SOURCE -
D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=-1 -qnoansialias -
DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT -qlanglvl=extended -q64 -
DUSE_64_BIT_ALL -q64 -O -DVERSION=\"\" -DXS_VERSION=\"\" -
Derr=pari_err -DDYNAMIC_PLOTTING -o polarit1.o ../../pari-2.5.1/src/
basemath/polarit1.c
xlc_r -q64 -c -I ../../pari-2.5.1/src -I ../../pari-2.5.1/src/
headers -I ../../pari-2.5.1/src/graph -I . -D_ALL_SOURCE -
D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=-1 -qnoansialias -
DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT -qlanglvl=extended -q64 -
DUSE_64_BIT_ALL -q64 -O -DVERSION=\"\" -DXS_VERSION=\"\" -
Derr=pari_err -DDYNAMIC_PLOTTING -o paricfg.o ../../pari-2.5.1/src/
language/paricfg.c
"../../pari-2.5.1/src/language/paricfg.c", line 21.31: 1506-221 (S)
Initializer must be a valid constant expression.
"../../pari-2.5.1/src/language/paricfg.c", line 22.33: 1506-221 (S)
Initializer must be a valid constant expression.
"../../pari-2.5.1/src/language/paricfg.c", line 24.34: 1506-221 (S)
Initializer must be a valid constant expression.
make: 1254-004 The error code from the last command is 1.


Stop.
make: 1254-004 The error code from the last command is 2.


Stop.


I get the same error when executing `perl Makefile.PL LIBPARI="-L/lib -
lpari"'

Any ideas?

Here are the outputs from perl Makefile.PL and perl -V:

# perl Makefile.PL
Filtered out versions too new...
Setting up Math::pari with Perl 5.014002 on aix version 7.1.0.0;
cc=xlc_r -q64, gccversion=, cccdlflags=' ',
ccflags='-D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=-1
-qnoansialias -DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT -
qlanglvl=extended -q64 -DUSE_64_BIT_ALL -q64',
optimize='-O',
ld=ld, ldflags='-brtl -bdynamic -b64'.
Found GP/PARI build directory in ../pari-2.5.1
(integer-formatted version 2005001).
....Generating libPARI/paricfg.h ...
Scanning header files...
....ulong
....getrusage
....CLK_TCK not defined
Creating libPARI/paricfg.h...
sh: gp: not found
....Processor of family `port' detected
Checking if your kit is complete...
Looks good
....Processor of family `port' detected
....I will use portable assembler-less build
....Assembler is not GNU assembler
Writing Makefile for Math::pARI::libPARI
Writing MYMETA.yml
Writing Makefile for Math::pari
Writing MYMETA.yml


# perl -V
Summary of my perl5 (revision 5 version 14 subversion 2)
configuration:

Platform:
osname=aix, osvers=7.1.0.0, archname=aix-thread-multi-64all
uname='aix pstest7 1 7 00f6cffd4c00 '
config_args='-d -Dcc=xlc_r -Duseshrplib -Duse64bitall -
Dusethreads'
hint=recommended, useposix=true, d_sigaction=define
useithreads=define, usemultiplicity=define
useperlio=define, d_sfio=undef, uselargefiles=define,
usesocks=undef
use64bitint=define, use64bitall=define, uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='xlc_r -q64', ccflags ='-D_ALL_SOURCE -D_ANSI_C_SOURCE -
D_POSIX_SOURCE -qmaxmem=-1 -qnoansialias -DUSE_NATIVE_DLOPEN -
DNEED_PTHREAD_INIT -qlanglvl=extended -q64 -DUSE_64_BIT_ALL -q64',
optimize='-O',
cppflags='-D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -
qmaxmem=-1 -qnoansialias -DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT -
qlanglvl=extended'
ccversion='11.1.0.8', gccversion='', gccosandvers=''
intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=87654321
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=8
ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t',
lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='ld', ldflags ='-brtl -bdynamic -b64'
libpth=/lib /usr/lib /usr/ccs/lib /usr/lib64
libs=-lbind -lnsl -ldbm -ldl -lld -lm -lcrypt -lpthreads -lc
perllibs=-lbind -lnsl -ldl -lld -lm -lcrypt -lpthreads -lc
libc=, so=a, useshrplib=true, libperl=libperl.a
gnulibc_version=''
Dynamic Linking:
dlsrc=dl_aix.xs, dlext=so, d_dlsymun=undef, ccdlflags=' -bE:/usr/
local/lib/perl5/5.14.2/aix-thread-multi-64all/CORE/perl.exp'
cccdlflags=' ', lddlflags='-b64 -bhalt:4 -G -bI:$(PERL_INC)/
perl.exp -bE:$(BASEEXT).exp -bnoentry -lpthreads -lc -lm'


Characteristics of this binary (from libperl):
Compile-time options: MULTIPLICITY PERL_DONT_CREATE_GVSV
PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP
PERL_PRESERVE_IVUV USE_64_BIT_ALL
USE_64_BIT_INT
USE_ITHREADS USE_LARGE_FILES USE_PERLIO
USE_PERL_ATOF
USE_REENTRANT_API
Built under aix
Compiled at Jan 26 2012 11:11:04
@INC:
/usr/local/lib/perl5/site_perl/5.14.2/aix-thread-multi-64all
/usr/local/lib/perl5/site_perl/5.14.2
/usr/local/lib/perl5/5.14.2/aix-thread-multi-64all
/usr/local/lib/perl5/5.14.2
 
R

Rainer Weikusat

Michael Wulff said:
I am trying to compile Math::pari in a Perl 5.14.2 environment on AIX
7.1 TL01 64 Bit using vac compiler v11.1.0.8. After some diffilculties
I finally managed to compile GP/PARI using the options
[...]

I run into the following error:

xlc_r -q64 -c -I ../../pari-2.5.1/src -I ../../pari-2.5.1/src/
headers -I ../../pari-2.5.1/src/graph -I . -D_ALL_SOURCE -
D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=-1 -qnoansialias -
DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT -qlanglvl=extended -q64 -
DUSE_64_BIT_ALL -q64 -O -DVERSION=\"\" -DXS_VERSION=\"\" -
Derr=pari_err -DDYNAMIC_PLOTTING -o polarit1.o ../../pari-2.5.1/src/
basemath/polarit1.c
xlc_r -q64 -c -I ../../pari-2.5.1/src -I ../../pari-2.5.1/src/
headers -I ../../pari-2.5.1/src/graph -I . -D_ALL_SOURCE -
D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=-1 -qnoansialias -
DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT -qlanglvl=extended -q64 -
DUSE_64_BIT_ALL -q64 -O -DVERSION=\"\" -DXS_VERSION=\"\" -
Derr=pari_err -DDYNAMIC_PLOTTING -o paricfg.o ../../pari-2.5.1/src/
language/paricfg.c
"../../pari-2.5.1/src/language/paricfg.c", line 21.31: 1506-221 (S)
Initializer must be a valid constant expression.
"../../pari-2.5.1/src/language/paricfg.c", line 22.33: 1506-221 (S)
Initializer must be a valid constant expression.
"../../pari-2.5.1/src/language/paricfg.c", line 24.34: 1506-221 (S)
Initializer must be a valid constant expression.

You will need to have a look at the mentioned lines of this file in
order to determine what's wrong. As far as the message goes, this
should be a variable intialization using something the compiler you
are using does not consider to be a constant (C) expression but
without knowing that this non-expression happens to be, there's litte
which can be said to that.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,962
Messages
2,570,134
Members
46,690
Latest member
MacGyver

Latest Threads

Top