Jason Moxham wrote:
>
> ----- Original Message ----- From: "Jason Moxham"
> <[email protected]>
> To: "mpir-devel" <[email protected]>
> Sent: Monday, June 29, 2009 8:46 PM
> Subject: [mpir-devel] Re: Fwd: [sage-devel] Strange problem on t2 - pari
> fails to build, but fine on my home machine.
>
>
>>
>> On T2 we had pass for these options
>> --enable-cxx --enable-gmpcompat
>> which I think is how sage builds mpir , and this was under gcc/g++ , and
>> also Sun's cc and their linker
>> /usr/ccs/bin/sparcv9/ld
>>
>> Can you run make check on the MPIR build ?
>>
>> Thanks
>> Jason
Thank you Jason for the suggestion to run the mpir test suite.
The mpir test suite runs fine. In fact, I'm pretty certain mpir is not
to blame at all.
I posted the output from Sage (not all 94,000 lines) on
comp.unix.solaris to seek assistance. Someone noticed the flag -fPIC had
not been used when compiling the pari object files. It should have been
on the SPARC processor. From the gcc manual:
----------------------------------------------------------------
-fPIC
If supported for the target machine, emit position-independent
code, suitable for dynamic linking and avoiding any limit on the size of
the global offset table. This option makes a difference on the m68k,
PowerPC and SPARC.
----------------------------------------------------------------
Looking in the spkg-install for Sage, I see this little bit of code:
# PARI doesn't set PIC correctly on Solaris, so we do this.
if [ `uname` = "SunOS" ]; then
CFLAGS=$CFLAGS" -fPIC"
export CFLAGS
fi
So someone has tried to add -fPIC to CFLAGS, but it seems not to have
propagated properly, as the object files are not being compiled with
-fPIC. I suspect the missing flag is the issue, though I have not
confirmed it yet.
It's not clear why pari should build on my Sun Blade 2000, but not on
't2' My Sun has a SPARC processors too - I'm not using Solaris x86
except on my laptop.
I just tried the option -fPIC to gcc on a linux box and gcc just accepts
it without any complaints at all. If passing the flag only on Solaris
SPARC is going to be difficult, I might as well just pass it on all
systems, as it appears to be ignored.
Dave
>> ----- Original Message ----- From: "William Stein" <[email protected]>
>> To: "mpir-devel" <[email protected]>
>> Sent: Monday, June 29, 2009 5:42 PM
>> Subject: [mpir-devel] Fwd: [sage-devel] Strange problem on t2 - pari
>> fails
>> to build, but fine on my home machine.
>>
>>
>>
>> I'm sending this on to mpir-devel, since the errors all have "gmp" in
>> them...
>>
>>
>> ---------- Forwarded message ----------
>> From: Dr. David Kirkby <[email protected]>
>> Date: Mon, Jun 29, 2009 at 6:37 PM
>> Subject: [sage-devel] Strange problem on t2 - pari fails to build, but
>> fine on my home machine.
>> To: [email protected]
>>
>>
>>
>> Well, is is a bit of an odd one.
>>
>> I built gcc 4.4.0 to use the Sun linker & assembler on my home machine
>> (Sun Blade 2000, Solaris 10 update 6) and it built 61 packages without
>> any issues I have not yet fixed. (see list at the bottom).
>>
>> On 't2', I only get 6 packages built before pari generates more than
>> 94,000 error messages!! Is that a record number?
>>
>> On 't2', I get these built ok:
>>
>> dir-0.1
>> prereq-0.3
>> bzip2-1.0.5
>> sage_scripts-4.1.alpha2
>> conway_polynomials-0.2
>> mpir-1.2.p4
>> termcap-1.3.1.p0
>> readline-5.2.p6
>>
>> This is quite odd, as the two machines are both quite similar
>>
>> * Both run Solaris 10 though mine at home is running a later version
>> (update 6, October 2008) than t2 (update 4, August 2007).
>>
>> * Both are multi-processor machines (thought t2 has 16 cores, my box
>> only 2 processors)
>>
>> * Both use gcc 4.4.0, each configured with the Sun linker and assembler.
>>
>>
>> Building and install PARI
>> make[2]: Entering directory
>> `/tmp/tmp/sage-4.1.alpha2/spkg/build/pari-2.3.3.p0/src'
>> Making gp in Osolaris-none
>> make[3]: Entering directory
>> `/tmp/tmp/sage-4.1.alpha2/spkg/build/pari-2.3.3.p0/src/Osolaris-none'
>> ../config/genkernel ../src/kernel/none/asm0.h > parilvl0.h
>> cat ../src/kernel/gmp/tune.h ../src/kernel/gmp/int.h
>> ../src/kernel/none/level1.h > parilvl1.h
>> cat parilvl0.h parilvl1.h > pariinl.h
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -I../src/language
>> -I/tmp/tmp/sage-4.1.alpha2/local/include -o gp.o ../src/gp/gp.c
>> cd ../src/desc && /usr/bin/perl merge_822 ../functions/*/* >
>> def-solaris-none-20099.tmp
>> mv ../src/desc/def-solaris-none-20099.tmp ../src/desc/pari.desc
>> cd ../src/desc && /usr/bin/perl gen_proto gp pari.desc >
>> gp_init-solaris-none-20099.tmp
>> mv ../src/desc/gp_init-solaris-none-20099.tmp ../src/gp/gp_init.h
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -I../src/graph -o gp_init.o ../src/gp/gp_init.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -I../src/language
>> -I/tmp/tmp/sage-4.1.alpha2/local/include -o gp_rl.o ../src/gp/gp_rl.c
>> cd ../src/desc && /usr/bin/perl gen_proto highlevel pari.desc >
>> highlvl-solaris-none-20099.tmp
>> mv ../src/desc/highlvl-solaris-none-20099.tmp ../src/gp/highlvl.h
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -DDL_DFLT_NAME=NULL -o highlvl.o ../src/gp/highlvl.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o whatnow.o ../src/gp/whatnow.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -I../src/graph -o plotport.o ../src/graph/plotport.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o plotnull.o ../src/graph/plotnull.c
>> cat ../src/kernel/gmp/mp.c ../src/kernel/none/cmp.c
>> ../src/kernel/none/gcdll.c ../src/kernel/none/ratlift.c
>> ../src/kernel/none/invmod.c ../src/kernel/gmp/gcd.c
>> ../src/kernel/none/mp_indep.c ../src/kernel/none/add.c > mp.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -I/tmp/tmp/sage-4.1.alpha2/local/include -o mp.o mp.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o mpinl.o ../src/kernel/none/mpinl.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o Flx.o ../src/basemath/Flx.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o Qfb.o ../src/basemath/Qfb.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o RgX.o ../src/basemath/RgX.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o alglin1.o ../src/basemath/alglin1.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o alglin2.o ../src/basemath/alglin2.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o arith1.o ../src/basemath/arith1.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o arith2.o ../src/basemath/arith2.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o base1.o ../src/basemath/base1.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o base2.o ../src/basemath/base2.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o base3.o ../src/basemath/base3.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o base4.o ../src/basemath/base4.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o base5.o ../src/basemath/base5.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o bibli1.o ../src/basemath/bibli1.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o bibli2.o ../src/basemath/bibli2.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o buch1.o ../src/basemath/buch1.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o buch2.o ../src/basemath/buch2.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o buch3.o ../src/basemath/buch3.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o buch4.o ../src/basemath/buch4.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o galconj.o ../src/basemath/galconj.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o gen1.o ../src/basemath/gen1.cgcc -c -O3 -Wall
>> -fno-strict-aliasing -fomit-frame-pointer -I. -I../src/headers -o
>> gen2.o ../src/basemath/gen2.cgcc -c -O3 -Wall -fno-strict-aliasing
>> -fomit-frame-pointer -I. -I../src/headers -o gen3.o
>> ../src/basemath/gen3.cgcc -c -O3 -Wall -fno-strict-aliasing
>> -fomit-frame-pointer -I. -I../src/headers -o ifactor1.o
>> ../src/basemath/ifactor1.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o perm.o ../src/basemath/perm.cgcc -c -O3 -Wall
>> -fno-strict-aliasing -fomit-frame-pointer -I. -I../src/headers -o
>> polarit1.o ../src/basemath/polarit1.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o polarit2.o ../src/basemath/polarit2.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o polarit3.o ../src/basemath/polarit3.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o rootpol.o ../src/basemath/rootpol.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o subcyclo.o ../src/basemath/subcyclo.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o subgroup.o ../src/basemath/subgroup.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o trans1.o ../src/basemath/trans1.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o trans2.o ../src/basemath/trans2.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o trans3.o ../src/basemath/trans3.c
>> cd ../src/desc && /usr/bin/perl gen_member pari.desc >
>> members-solaris-none-20099.tmp
>> mv ../src/desc/members-solaris-none-20099.tmp ../src/language/members.h
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o anal.o ../src/language/anal.cgcc -c -O3 -Wall
>> -fno-strict-aliasing -fomit-frame-pointer -I. -I../src/headers -o
>> compat.o ../src/language/compat.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o default.o ../src/language/default.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o errmsg.o ../src/language/errmsg.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o es.o ../src/language/es.c
>> cd ../src/desc && /usr/bin/perl gen_proto basic pari.desc >
>> init-solaris-none-20099.tmp
>> mv ../src/desc/init-solaris-none-20099.tmp ../src/language/init.h
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o init.o ../src/language/init.cgcc -c -O3 -Wall
>> -fno-strict-aliasing -fomit-frame-pointer -I. -I../src/headers -o
>> intnum.o ../src/language/intnum.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o members.o ../src/language/members.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o sumiter.o ../src/language/sumiter.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o aprcl.o ../src/modules/aprcl.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o elldata.o ../src/modules/elldata.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o elliptic.o ../src/modules/elliptic.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o galois.o ../src/modules/galois.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o groupid.o ../src/modules/groupid.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o kummer.o ../src/modules/kummer.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o mpqs.o ../src/modules/mpqs.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o nffactor.o ../src/modules/nffactor.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o part.o ../src/modules/part.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o stark.o ../src/modules/stark.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o subfield.o ../src/modules/subfield.c
>> gcc -c -O3 -Wall -fno-strict-aliasing -fomit-frame-pointer -I.
>> -I../src/headers -o thue.o ../src/modules/thue.c
>> rm -f libpari-gmp.so.2.3.3
>> gcc -o libpari-gmp.so.2.3.3 -shared -O3 -Wall -fno-strict-aliasing
>> -fomit-frame-pointer -Wl,-G,-h,libpari-gmp.so.2 mp.o mpinl.o Flx.o
>> Qfb.o RgX.o alglin1.o alglin2.o arith1.o arith2.o base1.o base2.o
>> base3.o base4.o base5.o bibli1.o bibli2.o buch1.o buch2.o buch3.o
>> buch4.o galconj.o gen1.o gen2.o gen3.o ifactor1.o perm.o polarit1.o
>> polarit2.o polarit3.o rootpol.o subcyclo.o subgroup.o trans1.o trans2.o
>> trans3.o anal.o compat.o default.o errmsg.o es.o init.o intnum.o
>> members.o sumiter.o aprcl.o elldata.o elliptic.o galois.o groupid.o
>> kummer.o mpqs.o nffactor.o part.o stark.o subfield.o thue.o -lc -lm
>> -L/tmp/tmp/sage-4.1.alpha2/local/lib -lgmp
>> Text relocation remains referenced
>> against symbol offset in file
>> <unknown> 0x76c alglin2.o
>> <unknown> 0x770 alglin2.o
>> <unknown> 0x774 alglin2.o
>>
>> <SNIP out over 94,000 errors>
>>
>> __gmpn_mul_1 0xdea0 mp.o
>> __gmpn_mul_1 0xdf24 mp.o
>> __gmpn_mul_1 0xdfa8 mp.o
>> __gmpn_mul_1 0xe02c mp.o
>> __gmpn_mul_1 0xfa84 mp.o
>> __gmpn_mul_1 0xfb14 mp.o
>> __gmpn_mul_1 0xfd28 mp.o
>> __gmpn_mul_1 0xfdac mp.o
>> __gmpn_mul_1 0xfe2c mp.o
>> __gmpn_mul_1 0xfea8 mp.o
>> __gmpn_mul_1 0xff20 mp.o
>> __gmpn_mul_1 0xff98 mp.o
>> __gmpn_rshift 0x48f4 mp.o
>> __gmpn_rshift 0xe710 mp.o
>> __gmpn_rshift 0xec7c mp.o
>> __gmpn_gcd 0x9b2c mp.o
>> __gmpn_gcdext 0xbd90 mp.o
>> __gmpn_gcdext 0xcef4 mp.o
>> __gmpn_add_n 0xb888 mp.o
>> __gmpn_sub_n 0xb3d8 mp.o
>> __gmpn_mod_1 0x21dc mp.o
>> __gmpn_mod_1 0x9640 mp.o
>> __gmpn_mod_1 0xe220 mp.o
>> ld: fatal: relocations remain against allocatable but non-writable
>> sections
>> collect2: ld returned 1 exit status
>> make[3]: *** [libpari-gmp.so.2.3.3] Error 1
>> make[3]: Leaving directory
>> `/tmp/tmp/sage-4.1.alpha2/spkg/build/pari-2.3.3.p0/src/Osolaris-none'
>> make[2]: *** [gp] Error 2
>> make[2]: Leaving directory
>> `/tmp/tmp/sage-4.1.alpha2/spkg/build/pari-2.3.3.p0/src'
>> Error building GP
>>
>> Just for the record, on my home machine, which uses a later version of
>> Solaris 10, but identical versions of Sage and gcc, I got this many
>> packages installed before problems.
>>
>> Anyway, this is an issue which appears to be unique to t2, so will not
>> to be resolved.
>>
>> dir-0.1
>> prereq-0.3
>> bzip2-1.0.5
>> sage_scripts-4.1.alpha2
>> conway_polynomials-0.2
>> mpir-1.2.p4
>> termcap-1.3.1.p0
>> readline-5.2.p6
>> pari-2.3.3.p0
>> ntl-5.4.2.p8
>> eclib-20080310.p7
>> graphs-20070722
>> elliptic_curves-0.1
>> extcode-4.1.alpha2
>> flint-1.3.0.p1
>> zlib-1.2.3.p4
>> sqlite-3.5.3.p4
>> libgpg_error-1.6.p0
>> libgcrypt-1.4.3.p0
>> opencdk-0.6.6
>> gnutls-2.2.1.p1
>> libpng-1.2.35
>> python-2.6.2.p0
>> freetype-2.3.5.p0
>> gd-2.0.35.p1
>> gdmodule-0.56.p5
>> fortran-20071120.p5
>> lapack-20071123.p0
>> atlas-3.8.3.p5
>> gsl-1.10.p1
>> iml-1.0.1.p11
>> ipython-0.9.1.p0
>> givaro-3.2.13rc2
>> linbox-1.1.6
>> f2c-20070816.p1
>> blas-20070724
>> numpy-1.3.0
>> matplotlib-0.98.5.3rc0-svn6910.p3
>> mercurial-1.1.2
>> mpfr-2.4.1
>> mpfi-1.3.4-cvs20071125.p7
>> pexpect-2.0.p3
>> pycrypto-2.0.1.p3
>> pynac-0.1.8.p1
>> cython-0.11.1.p0
>> sympy-0.6.4
>> zodb3-3.7.0.p1
>> networkx-0.99.p1-fake_really-0.36
>> quaddouble-2.2.p9
>> python_gnutls-1.1.4.p3
>> twisted-8.2.0
>> singular-3-1-0-2-20090618
>> scons-1.2.0
>> symmetrica-2.0.p4
>> libfplll-3.0.12.p0
>> boost-cropped-1.34.1
>> polybori-0.5rc.p8
>> rpy-1.0.1.p2
>> r-2.6.1.p22
>> rubiks-20070912.p8
>> libm4ri-20090617
>> ecm-6.2.1.p0
>> zn_poly-0.9.p1
>> ghmm-20080813.p0
>> pyprocessing-0.52
>> docutils-0.5
>> setuptools-0.6c9
>> jinja-1.2
>>
>>
>>
>>
>>
>>
>>
>>
>> --
>> William Stein
>> Associate Professor of Mathematics
>> University of Washington
>> http://wstein.org
>>
>>
>>
>> >>
>
>
--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---