Targets for building GMP 4.1.3 on Sun Ultra 10 under SunOS 5.7

Paul Leyland paul at leyland.vispa.com
Tue Aug 10 16:35:23 CEST 2004


I recently acquired (free, as in beer) a rather nice Sun Ultra 10.  It's
still in close to its original condition with 256M RAM and a 4.3G disk
loaded up with what it calls SunOS 5.7.  It has joined my collection of
useful antiques (the useless ones are in my loft) and I want to be able
to run CNT applications on it.

I do not have the Solaris CDs, neither do I want to install a newer
and/or different operating system as I prefer to keep my collections in
original condition where possible.   The machine is on the home ethernet
and is well behaved.  However, I'm hitting snags trying to install GMP
4.1.3.   Surely someone must have successfully installed GMP on a system
similar to this as it was a real workhorse in its day.  Anyone here
prepared to lend me a clue for a while?

I have RTFM, Googled for reports of similar behaviour and generally
tried to investigate what is going wrong.

Much more information, in excruciating detail, may be found below.  Even
more information is available on request/


Thanks for any assistance,


Paul

=========================================================================

First, dmesg(1M) reports this inter alia:

Aug  9 14:13:32 gigha.chez-leyland.com unix: SunOS Release 5.7 Version
Generic_106541-04 64-bit [UNIX(R) System V Release 4.0]
Aug  9 14:13:32 gigha.chez-leyland.com unix: Copyright (c) 1983-1999,
Sun Microsystems, Inc.


Other snippets:

bash-2.03# pwd
/usr/local/src/gmp-4.1.3
bash-2.03# arch
sun4
bash-2.03# arch -k
sun4u
bash-2.03# cc -V
cc: WorkShop Compilers 4.2 30 Oct 1996 C 4.2
usage: cc [ options] files.  Use 'cc -flags' for details
bash-2.03# gcc -v
Reading specs from
/usr/local/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/specs
gcc version 2.95.2 19991024 (release)
bash-2.03#


So far, so good.

Then:

bash-2.03# ./config.guess
ultrasparc2i-sun-solaris2.7
bash-2.03# ./configure
checking build system type... ultrasparc2i-sun-solaris2.7
checking host system type... ultrasparc2i-sun-solaris2.7
checking for a BSD compatible install... /usr/local/bin/install -c
checking whether build environment is sane... yes
checking for mawk... no
checking for gawk... gawk
checking whether make sets ${MAKE}... yes
checking whether to enable maintainer-specific portions of Makefiles...
no
checking compiler gcc -g -O2 -m64 -mptr64 -Wa,-xarch=v9 -mcpu=v9 ... no
checking compiler cc -fast -fns=no -fsimple=1 -xarch=v9 ... yes
checking for gcc... cc
checking for C compiler default output... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for executable suffix...
checking for object suffix... o
checking whether we are using the GNU C compiler... no
checking whether cc accepts -g... yes
checking for style of include used by make... GNU
checking dependency style of cc... none
checking for cc option to accept ANSI C... none needed
checking how to run the C preprocessor... cc -E
using ABI="64"
      CC="cc"
      CFLAGS="-fast -fns=no -fsimple=1 -xarch=v9"
      CPPFLAGS=""
      MPN_PATH=" sparc64 generic"
checking for cc option to accept ANSI C... none needed
checking for function prototypes... yes
checking for ANSI C header files... yes
checking for string.h... yes
checking for ar... ar
checking for BSD-compatible nm... /usr/ccs/bin/nm -p
checking for non-GNU ld... /usr/ccs/bin/ld
checking if the linker (/usr/ccs/bin/ld) is GNU ld... no
checking for /usr/ccs/bin/ld option to reload object files... -r
checking whether ln -s works... yes
checking how to recognise dependant libraries... pass_all
checking for dlfcn.h... yes
checking the maximum length of command line arguments... 393217
checking command to parse /usr/ccs/bin/nm -p output from cc object... ok
checking for objdir... .libs
checking for ranlib... ranlib
checking for strip... strip
checking if cc static flag  works... no
checking for cc option to produce PIC... -KPIC
checking if cc PIC flag -KPIC works... yes
checking if cc supports -c -o file.o... no
checking if we can lock with hard links... yes
checking whether the cc linker (/usr/ccs/bin/ld) supports shared
libraries... yes
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... no
checking dynamic linker characteristics... solaris2.7 ld.so
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes

[[ ... Lots of stuff that looks extremely irrelevant for the moment ]]


config.status: config.h is unchanged
config.status: linking ./mpn/generic/add.c to mpn/add.c
config.status: linking ./mpn/generic/add_1.c to mpn/add_1.c
config.status: linking ./mpn/sparc64/add_n.asm to mpn/add_n.asm
config.status: linking ./mpn/generic/sub.c to mpn/sub.c
config.status: linking ./mpn/generic/sub_1.c to mpn/sub_1.c
config.status: linking ./mpn/sparc64/sub_n.asm to mpn/sub_n.asm
config.status: linking ./mpn/sparc64/mul_1.asm to mpn/mul_1.asm
config.status: linking ./mpn/sparc64/addmul_1.asm to mpn/addmul_1.asm
config.status: linking ./mpn/sparc64/submul_1.asm to mpn/submul_1.asm
config.status: linking ./mpn/sparc64/lshift.asm to mpn/lshift.asm
config.status: linking ./mpn/sparc64/rshift.asm to mpn/rshift.asm
config.status: linking ./mpn/generic/dive_1.c to mpn/dive_1.c
config.status: linking ./mpn/generic/diveby3.c to mpn/diveby3.c
config.status: linking ./mpn/generic/divis.c to mpn/divis.c
config.status: linking ./mpn/generic/divrem.c to mpn/divrem.c
config.status: linking ./mpn/generic/divrem_1.c to mpn/divrem_1.c
config.status: linking ./mpn/generic/divrem_2.c to mpn/divrem_2.c
config.status: linking ./mpn/generic/fib2_ui.c to mpn/fib2_ui.c
config.status: linking ./mpn/generic/mod_1.c to mpn/mod_1.c
config.status: linking ./mpn/generic/mod_34lsub1.c to mpn/mod_34lsub1.c
config.status: linking ./mpn/generic/mode1o.c to mpn/mode1o.c
config.status: linking ./mpn/generic/pre_divrem_1.c to
mpn/pre_divrem_1.c
config.status: linking ./mpn/generic/pre_mod_1.c to mpn/pre_mod_1.c
config.status: linking ./mpn/generic/dump.c to mpn/dump.c
config.status: linking ./mpn/generic/mul.c to mpn/mul.c
config.status: linking ./mpn/generic/mul_fft.c to mpn/mul_fft.c
config.status: linking ./mpn/generic/mul_n.c to mpn/mul_n.c
config.status: linking ./mpn/generic/mul_basecase.c to
mpn/mul_basecase.c
config.status: linking ./mpn/generic/sqr_basecase.c to
mpn/sqr_basecase.c
config.status: linking ./mpn/generic/random.c to mpn/random.c
config.status: linking ./mpn/generic/random2.c to mpn/random2.c
config.status: linking ./mpn/generic/pow_1.c to mpn/pow_1.c
config.status: linking ./mpn/generic/rootrem.c to mpn/rootrem.c
config.status: linking ./mpn/generic/sqrtrem.c to mpn/sqrtrem.c
config.status: linking ./mpn/generic/get_str.c to mpn/get_str.c
config.status: linking ./mpn/generic/set_str.c to mpn/set_str.c
config.status: linking ./mpn/generic/scan0.c to mpn/scan0.c
config.status: linking ./mpn/generic/scan1.c to mpn/scan1.c
config.status: linking ./mpn/generic/popcount.c to mpn/popcount.c
config.status: linking ./mpn/generic/hamdist.c to mpn/hamdist.c
config.status: linking ./mpn/generic/cmp.c to mpn/cmp.c
config.status: linking ./mpn/generic/perfsqr.c to mpn/perfsqr.c
config.status: linking ./mpn/generic/bdivmod.c to mpn/bdivmod.c
config.status: linking ./mpn/generic/gcd_1.c to mpn/gcd_1.c
config.status: linking ./mpn/generic/gcd.c to mpn/gcd.c
config.status: linking ./mpn/generic/gcdext.c to mpn/gcdext.c
config.status: linking ./mpn/generic/tdiv_qr.c to mpn/tdiv_qr.c
config.status: linking ./mpn/generic/dc_divrem_n.c to mpn/dc_divrem_n.c
config.status: linking ./mpn/generic/sb_divrem_mn.c to
mpn/sb_divrem_mn.c
config.status: linking ./mpn/generic/jacbase.c to mpn/jacbase.c
config.status: linking ./mpn/sparc64/copyi.asm to mpn/copyi.asm
config.status: linking ./mpn/sparc64/copyd.asm to mpn/copyd.asm
config.status: linking ./mpn/sparc64/sqr_diagonal.asm to
mpn/sqr_diagonal.asm
config.status: linking ./mpn/sparc64/gmp-mparam.h to gmp-mparam.h
bash-2.03#


Ok, so far so good.  No crashes, at least.

Then:



bash-2.03# make
make  all-recursive
make[1]: Entering directory `/usr/local/src/gmp-4.1.3'
Making all in tests
make[2]: Entering directory `/usr/local/src/gmp-4.1.3/tests'
Making all in .
make[3]: Entering directory `/usr/local/src/gmp-4.1.3/tests'
make[3]: Nothing to be done for `all-am'.
make[3]: Leaving directory `/usr/local/src/gmp-4.1.3/tests'
Making all in devel
make[3]: Entering directory `/usr/local/src/gmp-4.1.3/tests/devel'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/usr/local/src/gmp-4.1.3/tests/devel'
Making all in mpn
make[3]: Entering directory `/usr/local/src/gmp-4.1.3/tests/mpn'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/usr/local/src/gmp-4.1.3/tests/mpn'
Making all in mpz
make[3]: Entering directory `/usr/local/src/gmp-4.1.3/tests/mpz'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/usr/local/src/gmp-4.1.3/tests/mpz'
Making all in mpq
make[3]: Entering directory `/usr/local/src/gmp-4.1.3/tests/mpq'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/usr/local/src/gmp-4.1.3/tests/mpq'
Making all in mpf
make[3]: Entering directory `/usr/local/src/gmp-4.1.3/tests/mpf'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/usr/local/src/gmp-4.1.3/tests/mpf'
Making all in rand
make[3]: Entering directory `/usr/local/src/gmp-4.1.3/tests/rand'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/usr/local/src/gmp-4.1.3/tests/rand'
Making all in misc
make[3]: Entering directory `/usr/local/src/gmp-4.1.3/tests/misc'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/usr/local/src/gmp-4.1.3/tests/misc'
Making all in cxx
make[3]: Entering directory `/usr/local/src/gmp-4.1.3/tests/cxx'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/usr/local/src/gmp-4.1.3/tests/cxx'
Making all in mpbsd
make[3]: Entering directory `/usr/local/src/gmp-4.1.3/tests/mpbsd'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/usr/local/src/gmp-4.1.3/tests/mpbsd'
make[2]: Leaving directory `/usr/local/src/gmp-4.1.3/tests'
Making all in mpn
make[2]: Entering directory `/usr/local/src/gmp-4.1.3/mpn'
/bin/sh ../libtool --mode=compile cc -DHAVE_CONFIG_H -I. -I. -I..
-D__GMP_WITHIN_GMP -I.. -DOPERATION_`echo add | sed 's/_$//'`    -fast
-fns=no -fsimple=1 -xarch=v9 -c -o add.lo `test -f add.c || echo
'./'`add.c
cc -DHAVE_CONFIG_H -I. -I. -I.. -D__GMP_WITHIN_GMP -I.. -DOPERATION_add
-fast -fns=no -fsimple=1 -xarch=v9 -c add.c  -KPIC -DPIC
cc: Warning: illegal option -fns=no
cc: Warning: illegal option -xarch=v9
mv -f add.o .libs/add.o
cc -DHAVE_CONFIG_H -I. -I. -I.. -D__GMP_WITHIN_GMP -I.. -DOPERATION_add
-fast -fns=no -fsimple=1 -xarch=v9 -c add.c >/dev/null 2>&1
/bin/sh ../libtool --mode=compile cc -DHAVE_CONFIG_H -I. -I. -I..
-D__GMP_WITHIN_GMP -I.. -DOPERATION_`echo add_1 | sed 's/_$//'`    -fast
-fns=no -fsimple=1 -xarch=v9 -c -o add_1.lo `test -f add_1.c || echo
'./'`add_1.c
cc -DHAVE_CONFIG_H -I. -I. -I.. -D__GMP_WITHIN_GMP -I..
-DOPERATION_add_1 -fast
-fns=no -fsimple=1 -xarch=v9 -c add_1.c  -KPIC -DPIC
cc: Warning: illegal option -fns=no
cc: Warning: illegal option -xarch=v9
mv -f add_1.o .libs/add_1.o
cc -DHAVE_CONFIG_H -I. -I. -I.. -D__GMP_WITHIN_GMP -I..
-DOPERATION_add_1 -fast
-fns=no -fsimple=1 -xarch=v9 -c add_1.c >/dev/null 2>&1
/bin/sh ../libtool --mode=compile --tag=CC ../mpn/m4-ccas --m4="m4" cc
-c -DHAVE_CONFIG_H -I. -I. -I.. -D__GMP_WITHIN_GMP -I..
-DOPERATION_`echo add_n | sed 's/_$//'`    -fast -fns=no -fsimple=1
-xarch=v9 `test -f add_n.asm || echo './'`add_n.asm
../mpn/m4-ccas --m4=m4 cc -c -DHAVE_CONFIG_H -I. -I. -I..
-D__GMP_WITHIN_GMP -I.. -DOPERATION_add_n -fast -fns=no -fsimple=1
-xarch=v9 add_n.asm  -KPIC -DPIC
m4  -DHAVE_CONFIG_H -D__GMP_WITHIN_GMP -DOPERATION_add_n -DPIC add_n.asm
>tmp-add_n.s
 cc -c -DHAVE_CONFIG_H -I. -I. -I.. -D__GMP_WITHIN_GMP -I..
-DOPERATION_add_n -fast -fns=no -fsimple=1 -xarch=v9 tmp-add_n.s -KPIC
-DPIC -o add_n.o
cc: Warning: illegal option -fns=no
cc: Warning: illegal option -xarch=v9
/usr/SUNWspro/SC4.2/bin/fbe: "tmp-add_n.s", line 78: error: cannot use
sparc v8plus instructions in a non-v8plus target binary
/usr/SUNWspro/SC4.2/bin/fbe: "tmp-add_n.s", line 81: error: cannot use
sparc v8plus instructions in a non-v8plus target binary
/usr/SUNWspro/SC4.2/bin/fbe: "tmp-add_n.s", line 82: error: cannot use
sparc v8plus instructions in a non-v8plus target binary
/usr/SUNWspro/SC4.2/bin/fbe: "tmp-add_n.s", line 84: error: cannot use
sparc v8plus instructions in a non-v8plus target binary
/usr/SUNWspro/SC4.2/bin/fbe: "tmp-add_n.s", line 85: error: cannot use
sparc v8plus instructions in a non-v8plus target binary
/usr/SUNWspro/SC4.2/bin/fbe: "tmp-add_n.s", line 87: error: cannot use
sparc v8plus instructions in a non-v8plus target binary
/usr/SUNWspro/SC4.2/bin/fbe: "tmp-add_n.s", line 88: error: cannot use
sparc v8plus instructions in a non-v8plus target binary
/usr/SUNWspro/SC4.2/bin/fbe: "tmp-add_n.s", line 89: error: cannot use
sparc v8plus instructions in a non-v8plus target binary
/usr/SUNWspro/SC4.2/bin/fbe: "tmp-add_n.s", line 90: error: cannot use
sparc v8plus instructions in a non-v8plus target binary
/usr/SUNWspro/SC4.2/bin/fbe: "tmp-add_n.s", line 95: error: cannot use
sparc v8plus instructions in a non-v8plus target binary
/usr/SUNWspro/SC4.2/bin/fbe: "tmp-add_n.s", line 103: error: cannot use
sparc v8plus instructions in a non-v8plus target binary
/usr/SUNWspro/SC4.2/bin/fbe: "tmp-add_n.s", line 107: error: cannot use
sparc v8plus instructions in a non-v8plus target binary
/usr/SUNWspro/SC4.2/bin/fbe: "tmp-add_n.s", line 111: error: cannot use
sparc v8plus instructions in a non-v8plus target binary
/usr/SUNWspro/SC4.2/bin/fbe: "tmp-add_n.s", line 113: error: cannot use
sparc v8plus instructions in a non-v8plus target binary
/usr/SUNWspro/SC4.2/bin/fbe: "tmp-add_n.s", line 123: error: cannot use
sparc v8plus instructions in a non-v8plus target binary
/usr/SUNWspro/SC4.2/bin/fbe: "tmp-add_n.s", line 127: error: cannot use
sparc v8plus instructions in a non-v8plus target binary
/usr/SUNWspro/SC4.2/bin/fbe: "tmp-add_n.s", line 131: error: cannot use
sparc v8plus instructions in a non-v8plus target binary
/usr/SUNWspro/SC4.2/bin/fbe: "tmp-add_n.s", line 133: error: cannot use
sparc v8plus instructions in a non-v8plus target binary
/usr/SUNWspro/SC4.2/bin/fbe: "tmp-add_n.s", line 143: error: cannot use
sparc v8plus instructions in a non-v8plus target binary
/usr/SUNWspro/SC4.2/bin/fbe: "tmp-add_n.s", line 147: error: cannot use
sparc v8plus instructions in a non-v8plus target binary
/usr/SUNWspro/SC4.2/bin/fbe: "tmp-add_n.s", line 151: error: cannot use
sparc v8plus instructions in a non-v8plus target binary
/usr/SUNWspro/SC4.2/bin/fbe: "tmp-add_n.s", line 153: error: cannot use
sparc v8plus instructions in a non-v8plus target binary
/usr/SUNWspro/SC4.2/bin/fbe: "tmp-add_n.s", line 163: error: cannot use
sparc v8plus instructions in a non-v8plus target binary
/usr/SUNWspro/SC4.2/bin/fbe: "tmp-add_n.s", line 168: error: cannot use
sparc v8plus instructions in a non-v8plus target binary
/usr/SUNWspro/SC4.2/bin/fbe: "tmp-add_n.s", line 171: error: cannot use
sparc v8plus instructions in a non-v8plus target binary
/usr/SUNWspro/SC4.2/bin/fbe: "tmp-add_n.s", line 173: error: cannot use
sparc v8plus instructions in a non-v8plus target binary
/usr/SUNWspro/SC4.2/bin/fbe: "tmp-add_n.s", line 178: error: cannot use
sparc v8plus instructions in a non-v8plus target binary
/usr/SUNWspro/SC4.2/bin/fbe: "tmp-add_n.s", line 185: error: cannot use
sparc v8plus instructions in a non-v8plus target binary
/usr/SUNWspro/SC4.2/bin/fbe: "tmp-add_n.s", line 187: error: cannot use
sparc v8plus instructions in a non-v8plus target binary
/usr/SUNWspro/SC4.2/bin/fbe: "tmp-add_n.s", line 193: error: cannot use
sparc v8plus instructions in a non-v8plus target binary
/usr/SUNWspro/SC4.2/bin/fbe: "tmp-add_n.s", line 195: error: cannot use
sparc v8plus instructions in a non-v8plus target binary
/usr/SUNWspro/SC4.2/bin/fbe: "tmp-add_n.s", line 202: error: cannot use
sparc v8plus instructions in a non-v8plus target binary
/usr/SUNWspro/SC4.2/bin/fbe: "tmp-add_n.s", line 204: error: cannot use
sparc v8plus instructions in a non-v8plus target binary
/usr/SUNWspro/SC4.2/bin/fbe: "tmp-add_n.s", line 210: error: cannot use
sparc v8plus instructions in a non-v8plus target binary
/usr/SUNWspro/SC4.2/bin/fbe: "tmp-add_n.s", line 211: error: cannot use
sparc v8plus instructions in a non-v8plus target binary
/usr/SUNWspro/SC4.2/bin/fbe: "tmp-add_n.s", line 214: error: cannot use
sparc v8plus instructions in a non-v8plus target binary
/usr/SUNWspro/SC4.2/bin/fbe: "tmp-add_n.s", line 217: error: cannot use
sparc v8plus instructions in a non-v8plus target binary
/usr/SUNWspro/SC4.2/bin/fbe: "tmp-add_n.s", line 219: error: cannot use
sparc v8plus instructions in a non-v8plus target binary
/usr/SUNWspro/SC4.2/bin/fbe: "tmp-add_n.s", line 228: error: cannot use
sparc v8plus instructions in a non-v8plus target binary
/usr/SUNWspro/SC4.2/bin/fbe: "tmp-add_n.s", line 230: error: cannot use
sparc v8plus instructions in a non-v8plus target binary
/usr/SUNWspro/SC4.2/bin/fbe: "tmp-add_n.s", line 231: error: cannot use
sparc v8plus instructions in a non-v8plus target binary
cc: assembler failed for tmp-add_n.s
make[2]: *** [add_n.lo] Error 1
make[2]: Leaving directory `/usr/local/src/gmp-4.1.3/mpn'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/local/src/gmp-4.1.3'
make: *** [all] Error 2
bash-2.03#




SPLAT!!!






More information about the gmp-discuss mailing list