Subject: | gcmp() no longer returns -1 on 64 bit systems |
Moin,
# cat gcmp.pl
#!/usr/bin/perl -w
use Math::Pari qw/gcmp PARI/;
my $one = PARI(10);
my $two = PARI(20);
print gcmp($one,$two),"\n";
# perl gcmp.pl
4294967295
This used to print -1. I tried
perl Makefile.PL machine=none
but this did not change anything (except that perl Makefile.PL no longer
warns about an unknown architecture).
te@linux:~/incoming/perl/Math-Pari-2.010709> perl Makefile.PL
Filtered out versions too new...
Setting up Math::Pari with Perl 5.008008 on linux version 2.6.16;
cc=cc, gccversion=4.1.0 (SUSE Linux), ccflags='-D_REENTRANT
-D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBUGGING -fno-strict-aliasing -pipe
-Wdeclaration-after-statement -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
ld=cc, ldflags=' -L/usr/local/lib64', optimize='-O2
-fmessage-length=0 -Wall -D_FORTIFY_SOURCE=2 -g -Wall -pipe'.
Found GP/PARI build directory in ../pari-2.1.7
(integer-formatted version 2001007).
...Will not overwrite libPARI/paricfg.h... (remove it manually if needed)
You may also want to remove libPARI/paricfg.h if your configuration
changed
from the time of the first build in this directory...
...Processor of family `x86_64' detected
#### Do not know how to build for assembler `x86_64_64'. ####
#### Reversing to assembler-less type `port'. ####
#### ####
#### If you think your processor's assembler is supported ####
#### by PARI, edit libPARI/Makefile.PL and report. ####
#### ####
#### Alternatively, specify machine=YOURTYPE or machine=none ####
#### on the ####
#### perl Makefile.PL ####
#### command line. ####
#### Recognized types: ####
#### alpha hppa m86k none sparcv7 sparcv8 sparcv8_micro ####
#### sparcv8_super ix86 (ppc ia64 after 2.2.7) ####
...I will use portable assembler-less build
...Assembler is GNU assembler
Writing Makefile for Math::PARI::libPARI
Writing Makefile for Math::Pari
Next try:
te@linux:~/incoming/perl/Math-Pari-2.010709> perl Makefile.PL machine=none
Filtered out versions too new...
Setting up Math::Pari with Perl 5.008008 on linux version 2.6.16;
cc=cc, gccversion=4.1.0 (SUSE Linux), ccflags='-D_REENTRANT
-D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBUGGING -fno-strict-aliasing -pipe
-Wdeclaration-after-statement -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
ld=cc, ldflags=' -L/usr/local/lib64', optimize='-O2
-fmessage-length=0 -Wall -D_FORTIFY_SOURCE=2 -g -Wall -pipe'.
Found GP/PARI build directory in ../pari-2.1.7
(integer-formatted version 2001007).
...Generating libPARI/paricfg.h ...
Scanning header files...
...ulong
...getrusage
...CLK_TCK not defined
Creating libPARI/paricfg.h...
...Processor of family `x86_64' detected
...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
# perl -V
Summary of my perl5 (revision 5 version 8 subversion 8) configuration:
Platform:
osname=linux, osvers=2.6.16, archname=x86_64-linux-thread-multi
uname='linux dvorak 2.6.16 #1 smp mon apr 10 04:51:13 utc 2006
x86_64 x86_64 x86_64 gnulinux '
config_args='-ds -e -Dprefix=/usr -Dvendorprefix=/usr
-Dinstallusrbinperl -Dusethreads -Di_db -Di_dbm -Di_ndbm -Di_gdbm
-Duseshrplib=true -Doptimize=-O2 -fmessage-length=0 -Wall
-D_FORTIFY_SOURCE=2 -g -Wall -pipe'
hint=recommended, useposix=true, d_sigaction=define
usethreads=define use5005threads=undef 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='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS
-DDEBUGGING -fno-strict-aliasing -pipe -Wdeclaration-after-statement
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
optimize='-O2 -fmessage-length=0 -Wall -D_FORTIFY_SOURCE=2 -g -Wall
-pipe',
cppflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBUGGING
-fno-strict-aliasing -pipe -Wdeclaration-after-statement'
ccversion='', gccversion='4.1.0 (SUSE Linux)', gccosandvers=''
intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t',
lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='cc', ldflags =' -L/usr/local/lib64'
libpth=/lib64 /usr/lib64 /usr/local/lib64
libs=-lm -ldl -lcrypt -lpthread
perllibs=-lm -ldl -lcrypt -lpthread
libc=/lib64/libc-2.4.so, so=so, useshrplib=true, libperl=libperl.so
gnulibc_version='2.4'
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E
-Wl,-rpath,/usr/lib/perl5/5.8.8/x86_64-linux-thread-multi/CORE'
cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib64'
Characteristics of this binary (from libperl):
Compile-time options: DEBUGGING MULTIPLICITY PERL_IMPLICIT_CONTEXT
PERL_MALLOC_WRAP THREADS_HAVE_PIDS USE_64_BIT_ALL
USE_64_BIT_INT USE_ITHREADS USE_LARGE_FILES
USE_PERLIO USE_REENTRANT_API
Built under linux
Compiled at Apr 22 2006 23:33:01
@INC:
/usr/lib/perl5/5.8.8/x86_64-linux-thread-multi
/usr/lib/perl5/5.8.8
/usr/lib/perl5/site_perl/5.8.8/x86_64-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.8
/usr/lib/perl5/site_perl
/usr/lib/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.8
/usr/lib/perl5/vendor_perl
.