http://www.perlmonks.org?node_id=863377

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

I'm manually installing Math::Pari.

Perl Makefile.pl works fine with the paridir, although I'm suspicisous with one of the warnings in ###

# perl Makefile.PL paridir=/root/Download/pari-2.3.5 machine=none Setting up Math::Pari with Perl 5.010000 on linux version 2.6.31; cc=cc, gccversion=4.4.1 [gcc-4_4-branch revision 150839], cccdlflag +s='-fPIC', ccflags='-D_REENTRANT -D_GNU_SOURCE -DPERL_USE_SAFE_PUTENV -DDEBUGG +ING -fno-strict-aliasing -pipe -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BIT +S=64', optimize='-fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack- +protector -funwind-tables -fasynchronous-unwind-tables -g -Wall -pipe +', ld=cc, ldflags=' -L/usr/local/lib64'. Found GP/PARI build directory in /root/Download/pari-2.3.5 (integer-formatted version 2003005). ### Math::Pari support of GP/PARI library version 2.3.* is not fully ### finished. For non-PS plotting functions, one must downgrade to +2.1.7. ### Moreover, the test t/55_intnum.t takes significant time to compl +ete. ...Will not overwrite libPARI/paricfg.h... (remove it manually if nee +ded) You may also want to remove libPARI/paricfg.h if your configuration + changed from the time of the first build in this directory... ...Via command-line: processor family `none' ...I will use portable assembler-less build ...Assembler is GNU assembler Writing Makefile for Math::PARI::libPARI Writing Makefile for Math::Pari
The module install failed at "make". Error message is below:
linux-7huw:/home/helen/Download/Math-Pari-2.0305_01080604 # 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=" +-fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -f +unwind-tables -fasynchronous-unwind-tables -g -Wall -pipe" PREFIX="/u +sr" PASTHRU_DEFINE="" PASTHRU_INC="" make[1]: Entering directory `/home/helen/Download/Math-Pari-2.0305_010 +80604/libPARI' /usr/bin/perl -wle "print q(#ifndef ASMINLINE)" > pariinl.h /usr/bin/perl -pe1 /root/Download/pari-2.3.5/src/kernel/none/addll.h / +root/Download/pari-2.3.5/src/kernel/none/mulll.h /root/Download/pari- +2.3.5/src/kernel/none/bfffo.h /root/Download/pari-2.3.5/src/kernel/no +ne/divll.h >> pariinl.h /usr/bin/perl -wle "print q(#endif)" >> pariinl.h /usr/bin/perl -pe1 /root/Download/pari-2.3.5/src/kernel/x86_64/asm0.h +/root/Download/pari-2.3.5/src/kernel/none/tune.h /root/Download/pari- +2.3.5/src/kernel/none/int.h /root/Download/pari-2.3.5/src/kernel/none +/level1.h >> pariinl.h cc -c -I /root/Download/pari-2.3.5/src -I /root/Download/pari-2.3.5/s +rc/headers -I /root/Download/pari-2.3.5/src/graph -I . -D_REENTRANT - +D_GNU_SOURCE -DPERL_USE_SAFE_PUTENV -DDEBUGGING -fno-strict-aliasing +-pipe -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fmessage-length=0 - +O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasyn +chronous-unwind-tables -g -Wall -pipe -DVERSION=\"\" -DXS_VERSION=\ +"\" -fPIC -Derr=pari_err -DASMINLINE -DGCC_INLINE -DDYNAMIC_PLOTTING +-o es.o /root/Download/pari-2.3.5/src/language/es.c /root/Download/pari-2.3.5/src/language/es.c: In function âos_readâ: /root/Download/pari-2.3.5/src/language/es.c:2835: warning: ignoring re +turn value of âreadâ, declared with attribute warn_unused_result ...... ...... cc -c -I /root/Download/pari-2.3.5/src -I /root/Download/pari-2.3.5/s +rc/headers -I /root/Download/pari-2.3.5/src/graph -I . -D_REENTRANT - +D_GNU_SOURCE -DPERL_USE_SAFE_PUTENV -DDEBUGGING -fno-strict-aliasing +-pipe -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fmessage-length=0 - +O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasyn +chronous-unwind-tables -g -Wall -pipe -DVERSION=\"\" -DXS_VERSION=\ +"\" -fPIC -Derr=pari_err -DASMINLINE -DGCC_INLINE -DDYNAMIC_PLOTTING +-o base3.o /root/Download/pari-2.3.5/src/basemath/base3.c cc1: out of memory allocating 488 bytes after a total of 3327733760 by +tes make[1]: *** [base3.o] Error 1 make[1]: Leaving directory `/home/helen/Download/Math-Pari-2.0305_0108 +0604/libPARI' make: *** [libPARI/libPARI.a] Error 2
# gcc -v Using built-in specs. Target: x86_64-suse-linux Configured with: ../configure --prefix=/usr --infodir=/usr/share/info +--mandir=/usr/share/man --libdir=/usr/lib64 --libexecdir=/usr/lib64 - +-enable-languages=c,c++,objc,fortran,obj-c++,java,ada --enable-checki +ng=release --with-gxx-include-dir=/usr/include/c++/4.4 --enable-ssp - +-disable-libssp --with-bugurl=http://bugs.opensuse.org/ --with-pkgver +sion='SUSE Linux' --disable-libgcj --disable-libmudflap --with-slibdi +r=/lib64 --with-system-zlib --enable-__cxa_atexit --enable-libstdcxx- +allocator=new --disable-libstdcxx-pch --enable-version-specific-runti +me-libs --program-suffix=-4.4 --enable-linux-futex --without-system-l +ibunwind --with-arch-32=i586 --with-tune=generic --build=x86_64-suse- +linux Thread model: posix gcc version 4.4.1 [gcc-4_4-branch revision 150839] (SUSE Linux)
I have seen the similar error "out of memory allocating ** bytes after a total of ** bytes" when I compiled gp/pari library. A workaround that 'change -O3 flag' in pari2.5.3/configure/src/get_cc" worked. Now I see this error again when install Math::Pari, but I don't know what to do....

Replies are listed 'Best First'.
Re: Math::Pari install problem
by sanju7 (Acolyte) on Oct 04, 2010 at 18:21 UTC

    Are you sure the compat libraries are properly installed already like libcompat* or similar --I would just check it as part of my checklist before running "make test". Also the output is not complete so there might be something else as well its not clear to me just with the last few line of output you have posted.

    I would look at the available libraries for any missing requirements. Install them first then run "make test".

Re: Math::Pari install problem
by Khen1950fx (Canon) on Oct 04, 2010 at 18:15 UTC
    I usually do
    make realclean perl Makefile.PL machine=none make install
    Using machine=none avoids a lot of assembler problems.
      Ok thanks. The error message change to : cc1: out of memory allocating 488 bytes after a total of 3327733760 bytes

      Hello, I got this problem:

      Did not find GP/PARI build directory around. Do you want to me to fetch GP/PARI automatically? (If you do not, you will need to fetch it manually, and/or direct me + to the directory with GP/PARI source via the command-line option parid +ir=/dir) Make sure you have a large scrollback buffer to see the messages, or ` +tee' the STDOUT/STDERR to a file. Fetch? (y/n, press Enter) Well, as you wish... (...) One can rerun Makefile.PL after fetching GP/PARI archive (e.g., pari-2 +.1.7.tgz, or pari-2.3.4.tar.gz) manually to the current directory, or a (grand)p +arent directory of the current directory. [Keep in mind that the numbers "inside version" of Math::Pari module correspond to the last versions of GP/PARI it was tested with (addi +tionally, 2.0108* works best with the last 2.1.* version, 2.1.7). As an alternative to having archive in CWD or its (grand)parent, sp +ecify pari_tgz=PATH_TO_TAR_GZ option to Makefile.PL. There is no need to extract the archive, or build GP/PARI; but if y +ou have it extracted [and patched, if needed], you may specify paridir=PATH_TO_DIST_DIR option to Makefile.PL instead of `pari_tgz'. However, in this case the files WON'T be auto-patched. As a last-resort solution, there is also a possibility to use an al +ready compiled PARI library. See the documentation in README and INSTALL + files.] Could not find GP/PARI build directory, please run Makefile.PL with paridir=/directory option. Warning: No success on command[/usr/bin/perl Makefile.PL INSTALLDIRS=s +ite] CPAN: YAML loaded ok (v0.73) ILYAZ/modules/Math-Pari-2.01080605.tar.gz /usr/bin/perl Makefile.PL INSTALLDIRS=site -- NOT OK Running make test Make had some problems, won't test Running make install Make had some problems, won't install Could not read metadata file. Falling back to other methods to determi +ne prerequisites Failed during this command: ILYAZ/modules/Math-Pari-2.01080605.tar.gz : writemakefile NO '/usr +/bin/perl Makefile.PL INSTALLDIRS=site' returned status 2304

      Where is that Makefile.PL? I've installed perl modules via cpan, so I dont know where to set this option paridir=/directory option. Help!!!!

      Hello, I got this problem:

      Did not find GP/PARI build directory around. Do you want to me to fetch GP/PARI automatically? (If you do not, you will need to fetch it manually, and/or direct me + to the directory with GP/PARI source via the command-line option parid +ir=/dir) Make sure you have a large scrollback buffer to see the messages, or ` +tee' the STDOUT/STDERR to a file. Fetch? (y/n, press Enter) Well, as you wish... (...) One can rerun Makefile.PL after fetching GP/PARI archive (e.g., pari-2 +.1.7.tgz, or pari-2.3.4.tar.gz) manually to the current directory, or a (grand)p +arent directory of the current directory. [Keep in mind that the numbers "inside version" of Math::Pari module correspond to the last versions of GP/PARI it was tested with (addi +tionally, 2.0108* works best with the last 2.1.* version, 2.1.7). As an alternative to having archive in CWD or its (grand)parent, sp +ecify pari_tgz=PATH_TO_TAR_GZ option to Makefile.PL. There is no need to extract the archive, or build GP/PARI; but if y +ou have it extracted [and patched, if needed], you may specify paridir=PATH_TO_DIST_DIR option to Makefile.PL instead of `pari_tgz'. However, in this case the files WON'T be auto-patched. As a last-resort solution, there is also a possibility to use an al +ready compiled PARI library. See the documentation in README and INSTALL + files.] Could not find GP/PARI build directory, please run Makefile.PL with paridir=/directory option. Warning: No success on command[/usr/bin/perl Makefile.PL INSTALLDIRS=s +ite] CPAN: YAML loaded ok (v0.73) ILYAZ/modules/Math-Pari-2.01080605.tar.gz /usr/bin/perl Makefile.PL INSTALLDIRS=site -- NOT OK Running make test Make had some problems, won't test Running make install Make had some problems, won't install Could not read metadata file. Falling back to other methods to determi +ne prerequisites Failed during this command: ILYAZ/modules/Math-Pari-2.01080605.tar.gz : writemakefile NO '/usr +/bin/perl Makefile.PL INSTALLDIRS=site' returned status 2304

      Where is that Makefile.PL? I've installed perl modules via cpan, so I dont know where to set this option paridir=/directory option. Help!!!!