barrem01 has asked for the wisdom of the Perl Monks concerning the following question:

I'm trying to install MATH::Pari on Solaris 10
cpan install failed
I went into the .cpan/build directory and poked around.
That suggested I poke around in the the pari2.1.7 subdirectory.
Eventually, after much g & g (google and guess), I hit on the idea of ./Configure -a and selecting no optimization and building static.
I got a working executable in /usr/local/bin/gp-2.1 (!)
Now just go up a directory and compile the cpan module.
# perl Makefile.PL paridir=pari-2.1.7 Setting up Math::Pari with Perl 5.008008 on solaris version 2.10; cc=gcc, gccversion=3.4.6, ccflags='-fno-strict-aliasing -pipe -Wdec +laration-after-statement -I/usr/local/include -I/opt/gnu/include -D_L +ARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', ld=gcc, ldflags=' -L/usr/local/lib -L/opt/gnu/lib ', optimize='-O'. Found GP/PARI build directory in pari-2.1.7 (integer-formatted version 2001007). ...Generating libPARI/paricfg.h ... Scanning header files... ...ulong ...getrusage Creating libPARI/paricfg.h... ...Processor of family `sparcv9' detected Checking if your kit is complete... Looks good ...Processor of family `sparcv9' detected ...I will use assembler build of type 'sparcv8_micro'. ...Assembler is GNU assembler Writing Makefile for Math::PARI::libPARI Writing Makefile for Math::Pari # make cp libPARI.dumb.pod blib/lib/Math/libPARI.dumb.pod cp PariInit.pm blib/lib/Math/PariInit.pm cp Pari.pm blib/lib/Math/Pari.pm cp libPARI.pod blib/lib/Math/libPARI.pod cd libPARI && make LIBPERL_A="libperl.a" LINKTYPE="dynamic" OPTIMIZE=" +-O" PREFIX="/usr/local" PASTHRU_DEFINE="" PASTHRU_INC="" make[1]: Entering directory `/opt/rhome/barrem01/.cpan/build/Math-Pari +-2.010709-44Ifmc/libPARI' /opt/local/bin/perl -wle0 > pariinl.h /opt/local/bin/perl -pe1 ../pari-2.1.7/src/kernel/sparcv8/level0.h ../ +pari-2.1.7/src/kernel/none/level1.h >> pariin +l.h gcc -c -I ../pari-2.1.7/src -I../pari-2.1.7/src/headers -I../pari-2.1 +.7/src/graph -I. -fno-strict-aliasing -pipe -Wdeclaration-after-state +ment -I/usr/local/include -I/opt/gnu/include -D_LARGEFILE_SOURCE -D_F +ILE_OFFSET_BITS=64 -O -DVERSION=\"\" -DXS_VERSION=\"\" -fPIC -Derr= +pari_err -DSOLARIS -DASMINLINE -DGCC_INLINE -DDYNAMIC_PLOTTING -o es. +o ../pari-2.1.7/src/language/es.c gcc -c -I ../pari-2.1.7/src -I../pari-2.1.7/src/headers -I../pari-2.1 +.7/src/graph -I. -fno-strict-aliasing -pipe -Wdeclaration-after-state +ment -I/usr/local/include -I/opt/gnu/include -D_LARGEFILE_SOURCE -D_F +ILE_OFFSET_BITS=64 -O -DVERSION=\"\" -DXS_VERSION=\"\" -fPIC -Derr= +pari_err -DSOLARIS -DASMINLINE -DGCC_INLINE -DDYNAMIC_PLOTTING -o bas +e5.o ../pari-2.1.7/src/basemath/base5.c gcc -c -I ../pari-2.1.7/src -I../pari-2.1.7/src/headers -I../pari-2.1 +.7/src/graph -I. -fno-strict-aliasing -pipe -Wdeclaration-after-state +ment -I/usr/local/include -I/opt/gnu/include -D_LARGEFILE_SOURCE -D_F +ILE_OFFSET_BITS=64 -O -DVERSION=\"\" -DXS_VERSION=\"\" -fPIC -Derr= +pari_err -DSOLARIS -DASMINLINE -DGCC_INLINE -DDYNAMIC_PLOTTING -o bib +li1.o ../pari-2.1.7/src/basemath/bibli1.c gcc -c -I ../pari-2.1.7/src -I../pari-2.1.7/src/headers -I../pari-2.1 +.7/src/graph -I. -fno-strict-aliasing -pipe -Wdeclaration-after-state +ment -I/usr/local/include -I/opt/gnu/include -D_LARGEFILE_SOURCE -D_F +ILE_OFFSET_BITS=64 -O -DVERSION=\"\" -DXS_VERSION=\"\" -fPIC -Derr= +pari_err -DSOLARIS -DASMINLINE -DGCC_INLINE -DDYNAMIC_PLOTTING -o buc +h2.o ../pari-2.1.7/src/basemath/buch2.c gcc -c -I ../pari-2.1.7/src -I../pari-2.1.7/src/headers -I../pari-2.1 +.7/src/graph -I. -fno-strict-aliasing -pipe -Wdeclaration-after-state +ment -I/usr/local/include -I/opt/gnu/include -D_LARGEFILE_SOURCE -D_F +ILE_OFFSET_BITS=64 -O -DVERSION=\"\" -DXS_VERSION=\"\" -fPIC -Derr= +pari_err -DSOLARIS -DASMINLINE -DGCC_INLINE -DDYNAMIC_PLOTTING -o ini +t.o ../pari-2.1.7/src/language/init.c gcc -c -I ../pari-2.1.7/src -I../pari-2.1.7/src/headers -I../pari-2.1 +.7/src/graph -I. -fno-strict-aliasing -pipe -Wdeclaration-after-state +ment -I/usr/local/include -I/opt/gnu/include -D_LARGEFILE_SOURCE -D_F +ILE_OFFSET_BITS=64 -O -DVERSION=\"\" -DXS_VERSION=\"\" -fPIC -Derr= +pari_err -DSOLARIS -DASMINLINE -DGCC_INLINE -DDYNAMIC_PLOTTING -o gen +1.o ../pari-2.1.7/src/basemath/gen1.c ./pariinl.h: In function `gmul': ./pariinl.h:887: error: asm-specifier for variable `hiremainder' confl +icts with asm clobber list make[1]: *** [gen1.o] Error 1 make[1]: Leaving directory `/opt/rhome/barrem01/.cpan/build/Math-Pari- +2.010709-44Ifmc/libPARI' make: *** [libPARI/libPARI.a] Error 2
Can anyone A) solve my install problem?
B) tell me why the executable runs but the perl module based on the same code doesn't compile?
C) tell me what an asm-specifier is?
D) tell me what an asm clobber list is?
E) shed any other light on my problem?

And please hurry, I didn't have that much hair when I started.

Thanks guys and girls.

- Mike
P.S.
# rm libPARI/paricfg.h
# perl Makefile.PL paridir=pari-2.1.7 LINKTYPE=static
# make static
resulted in the same error.

Replies are listed 'Best First'.
Re: Compiling MATH::Pari on Solaris 10
by Anonymous Monk on Sep 14, 2007 at 22:45 UTC
    1) Download and unpack Math::Pari from CPAN.

    2) cd to the subdirectory pari-2.1.7

    3) run ./Configure -s && make all && make install

    4) Now back to the main directory for Math::Pari.

    5) Run: perl Makefile.PL Configure machine=none

      Thank you for your reply. I was not able to follow your directions exactly:
      # wget http://search.cpan.org/CPAN/authors/id/I/IL/ILYAZ/modules/Math- +Pari-2.010709.tar.gz # gunzip Math-Pari-2.010709.tar.gz # tar -xf Math-Pari-2.010709.tar # cd Math-Pari-2.010709 # cd pari-2.1.7 bash: cd: pari-2.1.7: No such file or directory
      I searched for the pari application on goggle found it, but it was up to version 2.3.2 In the archives I found version 2.1.7 and downloaded it.
      # wget http://pari.math.u-bordeaux.fr/pub/pari/unix/OLD/pari-2.1.7.tgz # gunzip pari-2.1.7.tgz # tar -xf pari-2.1.7.tar # ./Configure -s
      # make all cd Osolaris-sparcv9; make all make[1]: Entering directory `/opt/rhome/barrem01/Math-Pari-2.010709/pa +ri-2.1.7/Osolaris-sparcv9' /usr/ccs/bin/as -P -I. -D__GNUC__ -T -o kernel.o ../src/kernel/sparcv8 +/level0_sparcv8_micro.S cat ../src/kernel/sparcv8/level0.h ../src/kernel/none/level1.h > parii +nl.h /opt/local/bin/gcc -c -O3 -DGCC_INLINE -Wall -Wno-implicit -fomit-fram +e-pointer -I. -I../src/headers -o mp.o ../src/kernel/none/mp.c ../src/kernel/none/mp.c: In function `addrr': ../src/kernel/none/mp.c:598: error: asm-specifier for variable `overfl +ow' conflicts with asm clobber list ../src/kernel/none/mp.c:634: confused by earlier errors, bailing out make[1]: *** [mp.o] Error 1 make[1]: Leaving directory `/opt/rhome/barrem01/Math-Pari-2.010709/par +i-2.1.7/Osolaris-sparcv9' make: *** [all] Error 2
      Stuck at step 3 in these instructions, whereas I got a compiled and running pari application when I used Configure -ask
      Have you got any other suggestions?

      - Mike