assembly files on Solaris SPARC can only be processed with gcc

Dennis Clarke dclarke at blastwave.org
Mon Aug 28 02:48:26 UTC 2017


I have been trying to get gmp-6.1.2 to build while avoiding the use of
"disable-assembly" in the configure stage. I think I may have tripped on
something here.  So I isolated everything into my home dir and gave it
a try.  Mostly trying to get some decent performance.

Configure looks fine thus :

v9_7++ $ ./configure ABI=64 --enable-cxx \
 > --prefix=/export/home/dclarke/local \
 > --libdir=/export/home/dclarke/local/lib \
 > --build=sparc64-sun-solaris2.10
checking build system type... sparc64-sun-solaris2.10
checking host system type... sparc64-sun-solaris2.10
checking for a BSD-compatible install... ./install-sh -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... ./install-sh -c -d
checking for gawk... /usr/local/bin/gawk
checking whether /usr/local/bin/gmake sets $(MAKE)... yes
checking whether /usr/local/bin/gmake supports nested variables... yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking ABI=64
checking compiler /opt/developerstudio12.5/bin/c99 -errfmt=error 
-erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s 
-xnolibmil -Xc -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs 
-ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 
-xarch=sparc -I/export/home/dclarke/local/include -D_TS_ERRNO 
-D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE... yes
checking compiler /opt/developerstudio12.5/bin/c99 -errfmt=error 
-erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s 
-xnolibmil -Xc -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs 
-ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 
-xarch=sparc has sizeof(long)==8... yes
checking for gcc... /opt/developerstudio12.5/bin/c99
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... no
checking whether /opt/developerstudio12.5/bin/c99 accepts -g... yes
checking for /opt/developerstudio12.5/bin/c99 option to accept ISO 
C89... none needed
checking whether /opt/developerstudio12.5/bin/c99 understands -c and -o 
together... yes
checking for /opt/developerstudio12.5/bin/c99 option to accept ISO 
C99... none needed
checking for /opt/developerstudio12.5/bin/c99 option to accept ISO 
Standard C... (cached) none needed
checking how to run the C preprocessor... 
/opt/developerstudio12.5/bin/c99 -E
checking build system compiler /opt/developerstudio12.5/bin/c99... no
checking build system compiler /opt/developerstudio12.5/bin/c99 
-errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 
-xmemalign=8s -xnolibmil -Xc -xcode=pic32 -xregs=no%appl -xlibmieee -mc 
-g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 
-xarch=sparc -I/export/home/dclarke/local/include -D_TS_ERRNO 
-D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE... yes
checking for build system preprocessor... 
/opt/developerstudio12.5/bin/c99 -errfmt=error -erroff=%none 
-errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xc 
-xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy 
-xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xarch=sparc 
-I/export/home/dclarke/local/include -D_TS_ERRNO 
-D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -E
checking for build system executable suffix...
checking whether build system compiler is ANSI... yes
checking for build system compiler math library... -lm
checking whether we are using the GNU C++ compiler... no
checking whether /opt/developerstudio12.5/bin/CC accepts -g... yes
checking C++ compiler /opt/developerstudio12.5/bin/CC 
-I/export/home/dclarke/local/include -D_TS_ERRNO 
-D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -dalign -erroff=%none 
-errtags=yes -ftrap=%none -g -xcode=pic32 -m64 -mc -xunroll=1 
-xbuiltin=%none -xarch=sparc -xdepend=no -xnolibmopt -xlinkopt=0 
-xnolibmil -xregs=no%appl -xs -D_POSIX_PTHREAD_SEMANTICS 
-D_LARGEFILE64_SOURCE -D_TS_ERRNO... yes
checking how to run the C++ preprocessor... 
/opt/developerstudio12.5/bin/CC -E
checking for grep that handles long lines and -e... /usr/local/bin/grep
checking for egrep... /usr/local/bin/grep -E
using ABI="64"
       CC="/opt/developerstudio12.5/bin/c99"
       CFLAGS="-errfmt=error -erroff=%none -errshort=full -xstrconst 
-xildoff -m64 -xmemalign=8s -xnolibmil -Xc -xcode=pic32 -xregs=no%appl 
-xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none 
-xdebugformat=dwarf -xunroll=1 -xarch=sparc"
       CPPFLAGS="-I/export/home/dclarke/local/include -D_TS_ERRNO 
-D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE"
       CXX="/opt/developerstudio12.5/bin/CC"
       CXXFLAGS="-dalign -erroff=%none -errtags=yes -ftrap=%none -g 
-xcode=pic32 -m64 -mc -xunroll=1 -xbuiltin=%none -xarch=sparc 
-xdepend=no -xnolibmopt -xlinkopt=0 -xnolibmil -xregs=no%appl -xs 
-D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -D_TS_ERRNO"
       MPN_PATH=" sparc64 generic"
checking whether assembler supports --noexecstack option... no
checking for ar... /usr/ccs/bin/ar
checking for BSD- or MS-compatible name lister (nm)... /usr/ccs/bin/nm -p
checking the name lister (/usr/ccs/bin/nm -p) interface... BSD nm
checking how to print strings... printf
checking for a sed that does not truncate output... /usr/local/bin/sed
checking for fgrep... /usr/local/bin/grep -F
checking for non-GNU ld... /usr/ccs/bin/sparcv9/ld
checking if the linker (/usr/ccs/bin/sparcv9/ld) is GNU ld... no
checking whether ln -s works... yes
checking the maximum length of command line arguments... 786240
checking how to convert sparc64-sun-solaris2.10 file names to 
sparc64-sun-solaris2.10 format... func_convert_file_noop
checking how to convert sparc64-sun-solaris2.10 file names to toolchain 
format... func_convert_file_noop
checking for /usr/ccs/bin/sparcv9/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... dlltool
checking how to associate runtime and link libraries... printf %s\n
checking for archiver @FILE support... no
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/ccs/bin/nm -p output from 
/opt/developerstudio12.5/bin/c99 object... ok
checking for sysroot... no
checking for a working dd... /usr/bin/dd
checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1
checking for mt... mt
checking if mt is a manifest tool... no
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking for /opt/developerstudio12.5/bin/c99 option to produce PIC... 
-KPIC -DPIC
checking if /opt/developerstudio12.5/bin/c99 PIC flag -KPIC -DPIC 
works... yes
checking if /opt/developerstudio12.5/bin/c99 static flag -Bstatic 
works... yes
checking if /opt/developerstudio12.5/bin/c99 supports -c -o file.o... yes
checking if /opt/developerstudio12.5/bin/c99 supports -c -o file.o... 
(cached) yes
checking whether the /opt/developerstudio12.5/bin/c99 linker 
(/usr/ccs/bin/sparcv9/ld -64) supports shared libraries... yes
checking dynamic linker characteristics... solaris2.10 ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... no
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking how to run the C++ preprocessor... 
/opt/developerstudio12.5/bin/CC -E
checking whether the /opt/developerstudio12.5/bin/CC linker 
(/usr/ccs/bin/sparcv9/ld -64) supports shared libraries... yes
checking for /opt/developerstudio12.5/bin/CC option to produce PIC... 
-KPIC -DPIC
checking if /opt/developerstudio12.5/bin/CC PIC flag -KPIC -DPIC 
works... yes
checking if /opt/developerstudio12.5/bin/CC static flag -Bstatic 
works... yes
checking if /opt/developerstudio12.5/bin/CC supports -c -o file.o... yes
checking if /opt/developerstudio12.5/bin/CC supports -c -o file.o... 
(cached) yes
checking whether the /opt/developerstudio12.5/bin/CC linker 
(/usr/ccs/bin/sparcv9/ld -64) supports shared libraries... yes
checking dynamic linker characteristics... solaris2.10 ld.so
checking how to hardcode library paths into programs... immediate
checking for ANSI C header files... (cached) yes
checking whether time.h and sys/time.h may both be included... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking float.h usability... yes
checking float.h presence... yes
checking for float.h... yes
checking invent.h usability... no
checking invent.h presence... no
checking for invent.h... no
checking langinfo.h usability... yes
checking langinfo.h presence... yes
checking for langinfo.h... yes
checking locale.h usability... yes
checking locale.h presence... yes
checking for locale.h... yes
checking nl_types.h usability... yes
checking nl_types.h presence... yes
checking for nl_types.h... yes
checking sys/attributes.h usability... no
checking sys/attributes.h presence... no
checking for sys/attributes.h... no
checking sys/iograph.h usability... no
checking sys/iograph.h presence... no
checking for sys/iograph.h... no
checking sys/mman.h usability... yes
checking sys/mman.h presence... yes
checking for sys/mman.h... yes
checking sys/param.h usability... yes
checking sys/param.h presence... yes
checking for sys/param.h... yes
checking sys/processor.h usability... yes
checking sys/processor.h presence... yes
checking for sys/processor.h... yes
checking sys/pstat.h usability... no
checking sys/pstat.h presence... no
checking for sys/pstat.h... no
checking sys/sysinfo.h usability... yes
checking sys/sysinfo.h presence... yes
checking for sys/sysinfo.h... yes
checking sys/syssgi.h usability... no
checking sys/syssgi.h presence... no
checking for sys/syssgi.h... no
checking sys/systemcfg.h usability... no
checking sys/systemcfg.h presence... no
checking for sys/systemcfg.h... no
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking sys/times.h usability... yes
checking sys/times.h presence... yes
checking for sys/times.h... yes
checking for sys/resource.h... yes
checking for sys/sysctl.h... no
checking for machine/hal_sysinfo.h... no
checking whether fgetc is declared... yes
checking whether fscanf is declared... yes
checking whether optarg is declared... no
checking whether ungetc is declared... yes
checking whether vfprintf is declared... yes
checking whether sys_errlist is declared... no
checking whether sys_nerr is declared... no
checking return type of signal handlers... void
checking for intmax_t... yes
checking for long double... yes
checking for long long... yes
checking for ptrdiff_t... yes
checking for quad_t... yes
checking for uint_least32_t... yes
checking for intptr_t... yes
checking for working volatile... yes
checking for C/C++ restrict keyword... __restrict
checking whether gcc __attribute__ ((const)) works... yes
checking whether gcc __attribute__ ((malloc)) works... yes
checking whether gcc __attribute__ ((mode (XX))) works... yes
checking whether gcc __attribute__ ((noreturn)) works... yes
checking whether gcc hidden aliases work... yes
checking for inline... inline
checking for cos in -lm... yes
checking for working alloca.h... yes
checking for alloca (via gmp-impl.h)... no
checking how to allocate temporary memory... malloc-reentrant
checking whether byte ordering is bigendian... yes
checking format of `double' floating point... IEEE big endian
checking for alarm... yes
checking for attr_get... no
checking for clock... yes
checking for cputime... no
checking for getpagesize... yes
checking for getrusage... yes
checking for gettimeofday... yes
checking for getsysinfo... no
checking for localeconv... yes
checking for memset... yes
checking for mmap... yes
checking for mprotect... yes
checking for nl_langinfo... yes
checking for obstack_vprintf... no
checking for popen... yes
checking for processor_info... yes
checking for pstat_getprocessor... no
checking for raise... yes
checking for read_real_time... no
checking for sigaction... yes
checking for sigaltstack... yes
checking for sigstack... yes
checking for syssgi... no
checking for strchr... yes
checking for strerror... yes
checking for strnlen... no
checking for strtol... yes
checking for strtoul... yes
checking for sysconf... yes
checking for sysctl... no
checking for sysctlbyname... no
checking for times... yes
checking for library containing clock_gettime... -lrt
checking for vsnprintf... yes
checking whether vsnprintf works... yes
checking whether sscanf needs writable input... no
checking for struct pst_processor.psp_iticksperclktick... no
checking sstream usability... yes
checking sstream presence... yes
checking for sstream... yes
checking for std::locale... yes
checking for suitable m4... /usr/local/bin/m4
checking if m4wrap produces spurious output... no
checking how to switch to text section... .text
checking how to switch to data section... .data
checking for assembler label suffix... :
checking for assembler global directive... .globl
checking for assembler global directive attribute...
checking if globals are prefixed by underscore... no
checking how to switch to read-only data section...     .section 
".rodata",#alloc,#progbits
checking for assembler .type directive... .type $1,#$2
checking for assembler .size directive... .size $1,$2
checking for assembler local label prefix... .L
checking for assembler byte directive... .byte
checking how to define a 32-bit word... .long
checking if .align assembly directive is logarithmic... no
checking if the assembler accepts ".register"... yes
checking if the assembler accepts gotdata relocations... yes
checking if the assembler can support shared PIC thunks... no
checking size of void *... 8
checking size of unsigned short... 2
checking size of unsigned... 4
checking size of unsigned long... 8
checking size of mp_limb_t... 8
checking for stack_t... no
checking for tputs in -lncurses... no
checking for tputs in -lcurses... yes
checking for readline in -lreadline... no
checking readline detected... no
checking for bison... no
checking for byacc... no
checking for flex... no
checking for lex... lex
checking lex output file root... lex.yy
checking lex library... -ll
checking whether yytext is a pointer... no
checking for ranlib... (cached) ranlib
creating config.m4
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating demos/pexpr-config.h
config.status: creating demos/calc/calc-config.h
config.status: creating Makefile
config.status: creating mpf/Makefile
config.status: creating mpn/Makefile
config.status: creating mpq/Makefile
config.status: creating mpz/Makefile
config.status: creating printf/Makefile
config.status: creating scanf/Makefile
config.status: creating rand/Makefile
config.status: creating cxx/Makefile
config.status: creating tests/Makefile
config.status: creating tests/devel/Makefile
config.status: creating tests/mpf/Makefile
config.status: creating tests/mpn/Makefile
config.status: creating tests/mpq/Makefile
config.status: creating tests/mpz/Makefile
config.status: creating tests/rand/Makefile
config.status: creating tests/misc/Makefile
config.status: creating tests/cxx/Makefile
config.status: creating doc/Makefile
config.status: creating tune/Makefile
config.status: creating demos/Makefile
config.status: creating demos/calc/Makefile
config.status: creating demos/expr/Makefile
config.status: creating gmp.h
config.status: creating config.h
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/generic/add_n.c to mpn/add_n.c
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/generic/sub_n.c to mpn/sub_n.c
config.status: linking mpn/generic/cnd_add_n.c to mpn/cnd_add_n.c
config.status: linking mpn/generic/cnd_sub_n.c to mpn/cnd_sub_n.c
config.status: linking mpn/generic/cnd_swap.c to mpn/cnd_swap.c
config.status: linking mpn/generic/neg.c to mpn/neg.c
config.status: linking mpn/generic/com.c to mpn/com.c
config.status: linking mpn/generic/mul_1.c to mpn/mul_1.c
config.status: linking mpn/generic/addmul_1.c to mpn/addmul_1.c
config.status: linking mpn/generic/submul_1.c to mpn/submul_1.c
config.status: linking mpn/generic/add_err1_n.c to mpn/add_err1_n.c
config.status: linking mpn/generic/add_err2_n.c to mpn/add_err2_n.c
config.status: linking mpn/generic/add_err3_n.c to mpn/add_err3_n.c
config.status: linking mpn/generic/sub_err1_n.c to mpn/sub_err1_n.c
config.status: linking mpn/generic/sub_err2_n.c to mpn/sub_err2_n.c
config.status: linking mpn/generic/sub_err3_n.c to mpn/sub_err3_n.c
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/sparc64/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/sparc64/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/sparc64/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/sparc64/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/mod_1_1.c to mpn/mod_1_1.c
config.status: linking mpn/generic/mod_1_2.c to mpn/mod_1_2.c
config.status: linking mpn/generic/mod_1_3.c to mpn/mod_1_3.c
config.status: linking mpn/sparc64/mod_1_4.c to mpn/mod_1_4.c
config.status: linking mpn/sparc64/lshiftc.asm to mpn/lshiftc.asm
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/sqr.c to mpn/sqr.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/nussbaumer_mul.c to mpn/nussbaumer_mul.c
config.status: linking mpn/generic/mulmid_basecase.c to 
mpn/mulmid_basecase.c
config.status: linking mpn/generic/toom42_mulmid.c to mpn/toom42_mulmid.c
config.status: linking mpn/generic/mulmid_n.c to mpn/mulmid_n.c
config.status: linking mpn/generic/mulmid.c to mpn/mulmid.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/sizeinbase.c to mpn/sizeinbase.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/popham.c to mpn/popcount.c
config.status: linking mpn/generic/popham.c to mpn/hamdist.c
config.status: linking mpn/generic/cmp.c to mpn/cmp.c
config.status: linking mpn/generic/zero_p.c to mpn/zero_p.c
config.status: linking mpn/generic/perfsqr.c to mpn/perfsqr.c
config.status: linking mpn/generic/perfpow.c to mpn/perfpow.c
config.status: linking mpn/sparc64/gcd_1.asm to mpn/gcd_1.asm
config.status: linking mpn/generic/gcd.c to mpn/gcd.c
config.status: linking mpn/generic/gcdext_1.c to mpn/gcdext_1.c
config.status: linking mpn/generic/gcdext.c to mpn/gcdext.c
config.status: linking mpn/generic/gcd_subdiv_step.c to 
mpn/gcd_subdiv_step.c
config.status: linking mpn/generic/gcdext_lehmer.c to mpn/gcdext_lehmer.c
config.status: linking mpn/generic/div_q.c to mpn/div_q.c
config.status: linking mpn/generic/tdiv_qr.c to mpn/tdiv_qr.c
config.status: linking mpn/generic/jacbase.c to mpn/jacbase.c
config.status: linking mpn/generic/jacobi_2.c to mpn/jacobi_2.c
config.status: linking mpn/generic/jacobi.c to mpn/jacobi.c
config.status: linking mpn/generic/get_d.c to mpn/get_d.c
config.status: linking mpn/generic/matrix22_mul.c to mpn/matrix22_mul.c
config.status: linking mpn/generic/matrix22_mul1_inverse_vector.c to 
mpn/matrix22_mul1_inverse_vector.c
config.status: linking mpn/generic/hgcd_matrix.c to mpn/hgcd_matrix.c
config.status: linking mpn/generic/hgcd2.c to mpn/hgcd2.c
config.status: linking mpn/generic/hgcd_step.c to mpn/hgcd_step.c
config.status: linking mpn/generic/hgcd_reduce.c to mpn/hgcd_reduce.c
config.status: linking mpn/generic/hgcd.c to mpn/hgcd.c
config.status: linking mpn/generic/hgcd_appr.c to mpn/hgcd_appr.c
config.status: linking mpn/generic/hgcd2_jacobi.c to mpn/hgcd2_jacobi.c
config.status: linking mpn/generic/hgcd_jacobi.c to mpn/hgcd_jacobi.c
config.status: linking mpn/generic/mullo_n.c to mpn/mullo_n.c
config.status: linking mpn/generic/mullo_basecase.c to mpn/mullo_basecase.c
config.status: linking mpn/generic/sqrlo.c to mpn/sqrlo.c
config.status: linking mpn/generic/sqrlo_basecase.c to mpn/sqrlo_basecase.c
config.status: linking mpn/generic/toom22_mul.c to mpn/toom22_mul.c
config.status: linking mpn/generic/toom32_mul.c to mpn/toom32_mul.c
config.status: linking mpn/generic/toom42_mul.c to mpn/toom42_mul.c
config.status: linking mpn/generic/toom52_mul.c to mpn/toom52_mul.c
config.status: linking mpn/generic/toom62_mul.c to mpn/toom62_mul.c
config.status: linking mpn/generic/toom33_mul.c to mpn/toom33_mul.c
config.status: linking mpn/generic/toom43_mul.c to mpn/toom43_mul.c
config.status: linking mpn/generic/toom53_mul.c to mpn/toom53_mul.c
config.status: linking mpn/generic/toom54_mul.c to mpn/toom54_mul.c
config.status: linking mpn/generic/toom63_mul.c to mpn/toom63_mul.c
config.status: linking mpn/generic/toom44_mul.c to mpn/toom44_mul.c
config.status: linking mpn/generic/toom6h_mul.c to mpn/toom6h_mul.c
config.status: linking mpn/generic/toom6_sqr.c to mpn/toom6_sqr.c
config.status: linking mpn/generic/toom8h_mul.c to mpn/toom8h_mul.c
config.status: linking mpn/generic/toom8_sqr.c to mpn/toom8_sqr.c
config.status: linking mpn/generic/toom_couple_handling.c to 
mpn/toom_couple_handling.c
config.status: linking mpn/generic/toom2_sqr.c to mpn/toom2_sqr.c
config.status: linking mpn/generic/toom3_sqr.c to mpn/toom3_sqr.c
config.status: linking mpn/generic/toom4_sqr.c to mpn/toom4_sqr.c
config.status: linking mpn/generic/toom_eval_dgr3_pm1.c to 
mpn/toom_eval_dgr3_pm1.c
config.status: linking mpn/generic/toom_eval_dgr3_pm2.c to 
mpn/toom_eval_dgr3_pm2.c
config.status: linking mpn/generic/toom_eval_pm1.c to mpn/toom_eval_pm1.c
config.status: linking mpn/generic/toom_eval_pm2.c to mpn/toom_eval_pm2.c
config.status: linking mpn/generic/toom_eval_pm2exp.c to 
mpn/toom_eval_pm2exp.c
config.status: linking mpn/generic/toom_eval_pm2rexp.c to 
mpn/toom_eval_pm2rexp.c
config.status: linking mpn/generic/toom_interpolate_5pts.c to 
mpn/toom_interpolate_5pts.c
config.status: linking mpn/generic/toom_interpolate_6pts.c to 
mpn/toom_interpolate_6pts.c
config.status: linking mpn/generic/toom_interpolate_7pts.c to 
mpn/toom_interpolate_7pts.c
config.status: linking mpn/generic/toom_interpolate_8pts.c to 
mpn/toom_interpolate_8pts.c
config.status: linking mpn/generic/toom_interpolate_12pts.c to 
mpn/toom_interpolate_12pts.c
config.status: linking mpn/generic/toom_interpolate_16pts.c to 
mpn/toom_interpolate_16pts.c
config.status: linking mpn/generic/invertappr.c to mpn/invertappr.c
config.status: linking mpn/generic/invert.c to mpn/invert.c
config.status: linking mpn/generic/binvert.c to mpn/binvert.c
config.status: linking mpn/generic/mulmod_bnm1.c to mpn/mulmod_bnm1.c
config.status: linking mpn/generic/sqrmod_bnm1.c to mpn/sqrmod_bnm1.c
config.status: linking mpn/generic/div_qr_1.c to mpn/div_qr_1.c
config.status: linking mpn/generic/div_qr_1n_pi1.c to mpn/div_qr_1n_pi1.c
config.status: linking mpn/generic/div_qr_2.c to mpn/div_qr_2.c
config.status: linking mpn/generic/div_qr_2n_pi1.c to mpn/div_qr_2n_pi1.c
config.status: linking mpn/generic/div_qr_2u_pi1.c to mpn/div_qr_2u_pi1.c
config.status: linking mpn/generic/sbpi1_div_q.c to mpn/sbpi1_div_q.c
config.status: linking mpn/generic/sbpi1_div_qr.c to mpn/sbpi1_div_qr.c
config.status: linking mpn/generic/sbpi1_divappr_q.c to 
mpn/sbpi1_divappr_q.c
config.status: linking mpn/generic/dcpi1_div_q.c to mpn/dcpi1_div_q.c
config.status: linking mpn/generic/dcpi1_div_qr.c to mpn/dcpi1_div_qr.c
config.status: linking mpn/generic/dcpi1_divappr_q.c to 
mpn/dcpi1_divappr_q.c
config.status: linking mpn/generic/mu_div_qr.c to mpn/mu_div_qr.c
config.status: linking mpn/generic/mu_divappr_q.c to mpn/mu_divappr_q.c
config.status: linking mpn/generic/mu_div_q.c to mpn/mu_div_q.c
config.status: linking mpn/generic/bdiv_q_1.c to mpn/bdiv_q_1.c
config.status: linking mpn/generic/sbpi1_bdiv_q.c to mpn/sbpi1_bdiv_q.c
config.status: linking mpn/generic/sbpi1_bdiv_qr.c to mpn/sbpi1_bdiv_qr.c
config.status: linking mpn/generic/dcpi1_bdiv_q.c to mpn/dcpi1_bdiv_q.c
config.status: linking mpn/generic/dcpi1_bdiv_qr.c to mpn/dcpi1_bdiv_qr.c
config.status: linking mpn/generic/mu_bdiv_q.c to mpn/mu_bdiv_q.c
config.status: linking mpn/generic/mu_bdiv_qr.c to mpn/mu_bdiv_qr.c
config.status: linking mpn/generic/bdiv_q.c to mpn/bdiv_q.c
config.status: linking mpn/generic/bdiv_qr.c to mpn/bdiv_qr.c
config.status: linking mpn/generic/broot.c to mpn/broot.c
config.status: linking mpn/generic/brootinv.c to mpn/brootinv.c
config.status: linking mpn/generic/bsqrt.c to mpn/bsqrt.c
config.status: linking mpn/generic/bsqrtinv.c to mpn/bsqrtinv.c
config.status: linking mpn/generic/divexact.c to mpn/divexact.c
config.status: linking mpn/generic/bdiv_dbm1c.c to mpn/bdiv_dbm1c.c
config.status: linking mpn/generic/redc_1.c to mpn/redc_1.c
config.status: linking mpn/generic/redc_2.c to mpn/redc_2.c
config.status: linking mpn/generic/redc_n.c to mpn/redc_n.c
config.status: linking mpn/generic/powm.c to mpn/powm.c
config.status: linking mpn/generic/powlo.c to mpn/powlo.c
config.status: linking mpn/generic/sec_powm.c to mpn/sec_powm.c
config.status: linking mpn/generic/sec_mul.c to mpn/sec_mul.c
config.status: linking mpn/generic/sec_sqr.c to mpn/sec_sqr.c
config.status: linking mpn/generic/sec_div.c to mpn/sec_div_qr.c
config.status: linking mpn/generic/sec_div.c to mpn/sec_div_r.c
config.status: linking mpn/generic/sec_pi1_div.c to mpn/sec_pi1_div_qr.c
config.status: linking mpn/generic/sec_pi1_div.c to mpn/sec_pi1_div_r.c
config.status: linking mpn/generic/sec_aors_1.c to mpn/sec_add_1.c
config.status: linking mpn/generic/sec_aors_1.c to mpn/sec_sub_1.c
config.status: linking mpn/generic/sec_invert.c to mpn/sec_invert.c
config.status: linking mpn/generic/trialdiv.c to mpn/trialdiv.c
config.status: linking mpn/generic/remove.c to mpn/remove.c
config.status: linking mpn/generic/logops_n.c to mpn/and_n.c
config.status: linking mpn/generic/logops_n.c to mpn/andn_n.c
config.status: linking mpn/generic/logops_n.c to mpn/nand_n.c
config.status: linking mpn/generic/logops_n.c to mpn/ior_n.c
config.status: linking mpn/generic/logops_n.c to mpn/iorn_n.c
config.status: linking mpn/generic/logops_n.c to mpn/nior_n.c
config.status: linking mpn/generic/logops_n.c to mpn/xor_n.c
config.status: linking mpn/generic/logops_n.c to mpn/xnor_n.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/generic/zero.c to mpn/zero.c
config.status: linking mpn/sparc64/sec_tabselect.asm to 
mpn/sec_tabselect.asm
config.status: linking mpn/generic/comb_tables.c to mpn/comb_tables.c
config.status: linking mpn/generic/add_n_sub_n.c to mpn/add_n_sub_n.c
config.status: linking mpn/sparc64/gmp-mparam.h to gmp-mparam.h
config.status: executing libtool commands
configure: summary of build options:

   Version:           GNU MP 6.1.2
   Host type:         sparc64-sun-solaris2.10
   ABI:               64
   Install prefix:    /export/home/dclarke/local
   Compiler:          /opt/developerstudio12.5/bin/c99
   Static libraries:  yes
   Shared libraries:  yes

v9_7++ $

So then running the make ( GNU make 4.2.1 here ) I eventually get this :

.
.
.
libtool: compile:  /opt/developerstudio12.5/bin/c99 -DHAVE_CONFIG_H -I. 
-I.. -D__GMP_WITHIN_GMP -I.. -DOPERATION_perfpow 
-I/export/home/dclarke/local/include -D_TS_ERRNO 
-D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -errfmt=error 
-erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s 
-xnolibmil -Xc -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs 
-ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 
-xarch=sparc -c perfpow.c  -KPIC -DPIC -o .libs/perfpow.o
"../gmp-impl.h", line 3701: warning:  attribute "mode" is unknown, ignored
"../gmp-impl.h", line 3702: warning:  attribute "mode" is unknown, ignored
"../gmp-impl.h", line 3703: warning:  attribute "mode" is unknown, ignored
"../gmp-impl.h", line 3704: warning:  attribute "mode" is unknown, ignored
"../gmp-impl.h", line 3705: warning:  attribute "mode" is unknown, ignored
libtool: compile:  /opt/developerstudio12.5/bin/c99 -DHAVE_CONFIG_H -I. 
-I.. -D__GMP_WITHIN_GMP -I.. -DOPERATION_perfpow 
-I/export/home/dclarke/local/include -D_TS_ERRNO 
-D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -errfmt=error 
-erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s 
-xnolibmil -Xc -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs 
-ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 
-xarch=sparc -c perfpow.c -o perfpow.o >/dev/null 2>&1
/usr/local/bin/bash ../libtool --mode=compile --tag=CC ../mpn/m4-ccas 
--m4="/usr/local/bin/m4" /opt/developerstudio12.5/bin/c99 -c 
-DHAVE_CONFIG_H -I. -I..  -D__GMP_WITHIN_GMP -I.. -DOPERATION_`echo 
gcd_1 | sed 's/_$//'` -I/export/home/dclarke/local/include -D_TS_ERRNO 
-D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE  -errfmt=error 
-erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s 
-xnolibmil -Xc -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs 
-ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 
-xarch=sparc  `test -f 'gcd_1.asm' || echo './'`gcd_1.asm
libtool: compile:  ../mpn/m4-ccas --m4=/usr/local/bin/m4 
/opt/developerstudio12.5/bin/c99 -c -DHAVE_CONFIG_H -I. -I.. 
-D__GMP_WITHIN_GMP -I.. -DOPERATION_gcd_1 
-I/export/home/dclarke/local/include -D_TS_ERRNO 
-D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -errfmt=error 
-erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s 
-xnolibmil -Xc -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs 
-ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 
-xarch=sparc gcd_1.asm  -KPIC -DPIC -o .libs/gcd_1.o
/usr/local/bin/m4  -DHAVE_CONFIG_H -D__GMP_WITHIN_GMP -DOPERATION_gcd_1 
-D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -DPIC 
gcd_1.asm >tmp-gcd_1.s
  /opt/developerstudio12.5/bin/c99 -c -DHAVE_CONFIG_H -I. -I.. 
-D__GMP_WITHIN_GMP -I.. -DOPERATION_gcd_1 
-I/export/home/dclarke/local/include -D_TS_ERRNO 
-D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -errfmt=error 
-erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s 
-xnolibmil -Xc -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs 
-ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 
-xarch=sparc tmp-gcd_1.s -KPIC -DPIC -o .libs/gcd_1.o
libtool: compile:  ../mpn/m4-ccas --m4=/usr/local/bin/m4 
/opt/developerstudio12.5/bin/c99 -c -DHAVE_CONFIG_H -I. -I.. 
-D__GMP_WITHIN_GMP -I.. -DOPERATION_gcd_1 
-I/export/home/dclarke/local/include -D_TS_ERRNO 
-D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -errfmt=error 
-erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s 
-xnolibmil -Xc -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs 
-ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 
-xarch=sparc gcd_1.asm -o gcd_1.o >/dev/null 2>&1
gmake[2]: *** [Makefile:768: gcd_1.lo] Error 1
gmake[2]: Leaving directory 
'/export/home/dclarke/local/build/gmp-6.1.2_SunOS5.10_sparc64vii+.local/mpn'
gmake[1]: *** [Makefile:956: all-recursive] Error 1
gmake[1]: Leaving directory 
'/export/home/dclarke/local/build/gmp-6.1.2_SunOS5.10_sparc64vii+.local'
gmake: *** [Makefile:775: all] Error 2

Perhaps the issue is with ./mpn/sparc64/gcd_1.asm ?

looking in the code it looks to be assembly that has not changed in years.

v9_7++ $ psrinfo -pv
The physical processor has 4 virtual processors (0-3)
   SPARC64-VII+ (portid 1024 impl 0x7 ver 0xc1 clock 2660 MHz)

Just going into mpn directory and re-running that last compile command 
gives me an obvious error :

v9_7++ $ c99 -c -DHAVE_CONFIG_H -I. -I.. \
 > -D__GMP_WITHIN_GMP -DOPERATION_gcd_1 \
 > -I/export/home/dclarke/local/include \
 > -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE \
 > -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 \
 > -xmemalign=8s -xnolibmil -Xc -xcode=pic32 -xregs=no%appl -xlibmieee \
 > -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf \
 > -xunroll=1 -xarch=sparc -o gcd_1.o gcd_1.asm
c99: No valid input files specified, no output generated
v9_7++ $

The compiler sees that file gcd_1.asm as something unknown.

Now that I think of it I can not recall doing a compile on SPARC with
anything other than gcc and getting the assembly to work. Perhaps that
is the issue here?

If I try again with gcc 7.2.0 then I get a reasonable configure :

v9_7++ $  ./configure ABI=64 --enable-cxx \
 > --prefix=/export/home/dclarke/local \
 > --libdir=/export/home/dclarke/local/lib \
 > --build=sparc64-sun-solaris2.10
checking build system type... sparc64-sun-solaris2.10
checking host system type... sparc64-sun-solaris2.10
checking for a BSD-compatible install... ./install-sh -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... ./install-sh -c -d
checking for gawk... /usr/local/bin/gawk
checking whether /usr/local/bin/gmake sets $(MAKE)... yes
checking whether /usr/local/bin/gmake supports nested variables... yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking ABI=64
checking compiler /usr/local/gcc7/bin/gcc -O2 -pedantic -m64 -mptr64 
-I/export/home/dclarke/local/include -D_TS_ERRNO 
-D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE... yes
checking compiler /usr/local/gcc7/bin/gcc -O2 -pedantic -m64 -mptr64 has 
sizeof(long)==8... yes
checking compiler /usr/local/gcc7/bin/gcc -O2 -pedantic -m64 -mptr64 
-I/export/home/dclarke/local/include -D_TS_ERRNO 
-D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -mcpu=v9... yes
checking compiler /usr/local/gcc7/bin/gcc -O2 -pedantic -m64 -mptr64 
-mcpu=v9 -I/export/home/dclarke/local/include -D_TS_ERRNO 
-D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -Wa,-Av9... no
checking compiler /usr/local/gcc7/bin/gcc -O2 -pedantic -m64 -mptr64 
-mcpu=v9 -I/export/home/dclarke/local/include -D_TS_ERRNO 
-D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -Wa,-xarch=v9... yes
checking for gcc... /usr/local/gcc7/bin/gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether /usr/local/gcc7/bin/gcc accepts -g... yes
checking for /usr/local/gcc7/bin/gcc option to accept ISO C89... none needed
checking whether /usr/local/gcc7/bin/gcc understands -c and -o 
together... yes
checking for /usr/local/gcc7/bin/gcc option to accept ISO C99... none needed
checking for /usr/local/gcc7/bin/gcc option to accept ISO Standard C... 
(cached) none needed
checking how to run the C preprocessor... /usr/local/gcc7/bin/gcc -E
checking build system compiler /usr/local/gcc7/bin/gcc... yes
checking for build system preprocessor... /usr/local/gcc7/bin/gcc -E
checking for build system executable suffix...
checking whether build system compiler is ANSI... yes
checking for build system compiler math library... -lm
checking whether we are using the GNU C++ compiler... yes
checking whether /usr/local/gcc7/bin/g++ accepts -g... yes
checking C++ compiler /usr/local/gcc7/bin/g++ 
-I/export/home/dclarke/local/include -D_TS_ERRNO 
-D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -O2 -pedantic -m64 
-mptr64 -mcpu=v9 -Wa,-xarch=v9... yes
checking how to run the C++ preprocessor... /usr/local/gcc7/bin/g++ -E
checking for grep that handles long lines and -e... /usr/local/bin/grep
checking for egrep... /usr/local/bin/grep -E
using ABI="64"
       CC="/usr/local/gcc7/bin/gcc"
       CFLAGS="-O2 -pedantic -m64 -mptr64 -mcpu=v9 -Wa,-xarch=v9"
       CPPFLAGS="-I/export/home/dclarke/local/include -D_TS_ERRNO 
-D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE"
       CXX="/usr/local/gcc7/bin/g++"
       CXXFLAGS="-O2 -pedantic -m64 -mptr64 -mcpu=v9 -Wa,-xarch=v9"
       MPN_PATH=" sparc64 generic"
checking whether assembler supports --noexecstack option... no
checking for ar... /usr/ccs/bin/ar
checking for BSD- or MS-compatible name lister (nm)... /usr/ccs/bin/nm -p
checking the name lister (/usr/ccs/bin/nm -p) interface... BSD nm
checking how to print strings... printf
checking for a sed that does not truncate output... /usr/local/bin/sed
checking for fgrep... /usr/local/bin/grep -F
checking for ld used by /usr/local/gcc7/bin/gcc... /usr/ccs/bin/sparcv9/ld
checking if the linker (/usr/ccs/bin/sparcv9/ld) is GNU ld... no
checking whether ln -s works... yes
checking the maximum length of command line arguments... 786240
checking how to convert sparc64-sun-solaris2.10 file names to 
sparc64-sun-solaris2.10 format... func_convert_file_noop
checking how to convert sparc64-sun-solaris2.10 file names to toolchain 
format... func_convert_file_noop
checking for /usr/ccs/bin/sparcv9/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... dlltool
checking how to associate runtime and link libraries... printf %s\n
checking for archiver @FILE support... no
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/ccs/bin/nm -p output from 
/usr/local/gcc7/bin/gcc object... ok
checking for sysroot... no
checking for a working dd... /usr/bin/dd
checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1
checking for mt... mt
checking if mt is a manifest tool... no
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if /usr/local/gcc7/bin/gcc supports -fno-rtti -fno-exceptions... no
checking for /usr/local/gcc7/bin/gcc option to produce PIC... -fPIC -DPIC
checking if /usr/local/gcc7/bin/gcc PIC flag -fPIC -DPIC works... yes
checking if /usr/local/gcc7/bin/gcc static flag -static works... no
checking if /usr/local/gcc7/bin/gcc supports -c -o file.o... yes
checking if /usr/local/gcc7/bin/gcc supports -c -o file.o... (cached) yes
checking whether the /usr/local/gcc7/bin/gcc linker 
(/usr/ccs/bin/sparcv9/ld -64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... solaris2.10 ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... no
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking how to run the C++ preprocessor... /usr/local/gcc7/bin/g++ -E
checking for ld used by /usr/local/gcc7/bin/g++... 
/usr/ccs/bin/sparcv9/ld -64
checking if the linker (/usr/ccs/bin/sparcv9/ld -64) is GNU ld... no
checking whether the /usr/local/gcc7/bin/g++ linker 
(/usr/ccs/bin/sparcv9/ld -64) supports shared libraries... yes
checking for /usr/local/gcc7/bin/g++ option to produce PIC... -fPIC -DPIC
checking if /usr/local/gcc7/bin/g++ PIC flag -fPIC -DPIC works... yes
checking if /usr/local/gcc7/bin/g++ static flag -static works... no
checking if /usr/local/gcc7/bin/g++ supports -c -o file.o... yes
checking if /usr/local/gcc7/bin/g++ supports -c -o file.o... (cached) yes
checking whether the /usr/local/gcc7/bin/g++ linker 
(/usr/ccs/bin/sparcv9/ld -64) supports shared libraries... yes
checking dynamic linker characteristics... solaris2.10 ld.so
checking how to hardcode library paths into programs... immediate
checking for ANSI C header files... (cached) yes
checking whether time.h and sys/time.h may both be included... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking float.h usability... yes
checking float.h presence... yes
checking for float.h... yes
checking invent.h usability... no
checking invent.h presence... no
checking for invent.h... no
checking langinfo.h usability... yes
checking langinfo.h presence... yes
checking for langinfo.h... yes
checking locale.h usability... yes
checking locale.h presence... yes
checking for locale.h... yes
checking nl_types.h usability... yes
checking nl_types.h presence... yes
checking for nl_types.h... yes
checking sys/attributes.h usability... no
checking sys/attributes.h presence... no
checking for sys/attributes.h... no
checking sys/iograph.h usability... no
checking sys/iograph.h presence... no
checking for sys/iograph.h... no
checking sys/mman.h usability... yes
checking sys/mman.h presence... yes
checking for sys/mman.h... yes
checking sys/param.h usability... yes
checking sys/param.h presence... yes
checking for sys/param.h... yes
checking sys/processor.h usability... yes
checking sys/processor.h presence... yes
checking for sys/processor.h... yes
checking sys/pstat.h usability... no
checking sys/pstat.h presence... no
checking for sys/pstat.h... no
checking sys/sysinfo.h usability... yes
checking sys/sysinfo.h presence... yes
checking for sys/sysinfo.h... yes
checking sys/syssgi.h usability... no
checking sys/syssgi.h presence... no
checking for sys/syssgi.h... no
checking sys/systemcfg.h usability... no
checking sys/systemcfg.h presence... no
checking for sys/systemcfg.h... no
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking sys/times.h usability... yes
checking sys/times.h presence... yes
checking for sys/times.h... yes
checking for sys/resource.h... yes
checking for sys/sysctl.h... no
checking for machine/hal_sysinfo.h... no
checking whether fgetc is declared... yes
checking whether fscanf is declared... yes
checking whether optarg is declared... yes
checking whether ungetc is declared... yes
checking whether vfprintf is declared... yes
checking whether sys_errlist is declared... no
checking whether sys_nerr is declared... no
checking return type of signal handlers... void
checking for intmax_t... yes
checking for long double... yes
checking for long long... yes
checking for ptrdiff_t... yes
checking for quad_t... yes
checking for uint_least32_t... yes
checking for intptr_t... yes
checking for working volatile... yes
checking for C/C++ restrict keyword... __restrict
checking whether gcc __attribute__ ((const)) works... yes
checking whether gcc __attribute__ ((malloc)) works... yes
checking whether gcc __attribute__ ((mode (XX))) works... yes
checking whether gcc __attribute__ ((noreturn)) works... yes
checking whether gcc hidden aliases work... yes
checking for inline... inline
checking for cos in -lm... yes
checking for working alloca.h... yes
checking for alloca (via gmp-impl.h)... yes
checking how to allocate temporary memory... alloca
checking whether byte ordering is bigendian... yes
checking format of `double' floating point... IEEE big endian
checking for alarm... yes
checking for attr_get... no
checking for clock... yes
checking for cputime... no
checking for getpagesize... yes
checking for getrusage... yes
checking for gettimeofday... yes
checking for getsysinfo... no
checking for localeconv... yes
checking for memset... yes
checking for mmap... yes
checking for mprotect... yes
checking for nl_langinfo... yes
checking for obstack_vprintf... no
checking for popen... yes
checking for processor_info... yes
checking for pstat_getprocessor... no
checking for raise... yes
checking for read_real_time... no
checking for sigaction... yes
checking for sigaltstack... yes
checking for sigstack... yes
checking for syssgi... no
checking for strchr... yes
checking for strerror... yes
checking for strnlen... no
checking for strtol... yes
checking for strtoul... yes
checking for sysconf... yes
checking for sysctl... no
checking for sysctlbyname... no
checking for times... yes
checking for library containing clock_gettime... -lrt
checking for vsnprintf... yes
checking whether vsnprintf works... yes
checking whether sscanf needs writable input... no
checking for struct pst_processor.psp_iticksperclktick... no
checking sstream usability... yes
checking sstream presence... yes
checking for sstream... yes
checking for std::locale... yes
checking for suitable m4... /usr/local/bin/m4
checking if m4wrap produces spurious output... no
checking how to switch to text section... .text
checking how to switch to data section... .data
checking for assembler label suffix... :
checking for assembler global directive... .globl
checking for assembler global directive attribute...
checking if globals are prefixed by underscore... no
checking how to switch to read-only data section...     .section 
".rodata"
checking for assembler .type directive... .type $1,#$2
checking for assembler .size directive... .size $1,$2
checking for assembler local label prefix... .L
checking for assembler byte directive... .byte
checking how to define a 32-bit word... .long
checking if .align assembly directive is logarithmic... no
checking if the assembler accepts ".register"... yes
checking if the assembler accepts gotdata relocations... yes
checking if the assembler can support shared PIC thunks... no
checking size of void *... 8
checking size of unsigned short... 2
checking size of unsigned... 4
checking size of unsigned long... 8
checking size of mp_limb_t... 8
checking for stack_t... yes
checking for tputs in -lncurses... no
checking for tputs in -lcurses... yes
checking for readline in -lreadline... no
checking readline detected... no
checking for bison... no
checking for byacc... no
checking for flex... no
checking for lex... lex
checking lex output file root... lex.yy
checking lex library... -ll
checking whether yytext is a pointer... no
checking for ranlib... (cached) ranlib
creating config.m4
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating demos/pexpr-config.h
config.status: creating demos/calc/calc-config.h
config.status: creating Makefile
config.status: creating mpf/Makefile
config.status: creating mpn/Makefile
config.status: creating mpq/Makefile
config.status: creating mpz/Makefile
config.status: creating printf/Makefile
config.status: creating scanf/Makefile
config.status: creating rand/Makefile
config.status: creating cxx/Makefile
config.status: creating tests/Makefile
config.status: creating tests/devel/Makefile
config.status: creating tests/mpf/Makefile
config.status: creating tests/mpn/Makefile
config.status: creating tests/mpq/Makefile
config.status: creating tests/mpz/Makefile
config.status: creating tests/rand/Makefile
config.status: creating tests/misc/Makefile
config.status: creating tests/cxx/Makefile
config.status: creating doc/Makefile
config.status: creating tune/Makefile
config.status: creating demos/Makefile
config.status: creating demos/calc/Makefile
config.status: creating demos/expr/Makefile
config.status: creating gmp.h
config.status: creating config.h
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/generic/add_n.c to mpn/add_n.c
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/generic/sub_n.c to mpn/sub_n.c
config.status: linking mpn/generic/cnd_add_n.c to mpn/cnd_add_n.c
config.status: linking mpn/generic/cnd_sub_n.c to mpn/cnd_sub_n.c
config.status: linking mpn/generic/cnd_swap.c to mpn/cnd_swap.c
config.status: linking mpn/generic/neg.c to mpn/neg.c
config.status: linking mpn/generic/com.c to mpn/com.c
config.status: linking mpn/generic/mul_1.c to mpn/mul_1.c
config.status: linking mpn/generic/addmul_1.c to mpn/addmul_1.c
config.status: linking mpn/generic/submul_1.c to mpn/submul_1.c
config.status: linking mpn/generic/add_err1_n.c to mpn/add_err1_n.c
config.status: linking mpn/generic/add_err2_n.c to mpn/add_err2_n.c
config.status: linking mpn/generic/add_err3_n.c to mpn/add_err3_n.c
config.status: linking mpn/generic/sub_err1_n.c to mpn/sub_err1_n.c
config.status: linking mpn/generic/sub_err2_n.c to mpn/sub_err2_n.c
config.status: linking mpn/generic/sub_err3_n.c to mpn/sub_err3_n.c
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/sparc64/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/sparc64/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/sparc64/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/sparc64/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/mod_1_1.c to mpn/mod_1_1.c
config.status: linking mpn/generic/mod_1_2.c to mpn/mod_1_2.c
config.status: linking mpn/generic/mod_1_3.c to mpn/mod_1_3.c
config.status: linking mpn/sparc64/mod_1_4.c to mpn/mod_1_4.c
config.status: linking mpn/sparc64/lshiftc.asm to mpn/lshiftc.asm
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/sqr.c to mpn/sqr.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/nussbaumer_mul.c to mpn/nussbaumer_mul.c
config.status: linking mpn/generic/mulmid_basecase.c to 
mpn/mulmid_basecase.c
config.status: linking mpn/generic/toom42_mulmid.c to mpn/toom42_mulmid.c
config.status: linking mpn/generic/mulmid_n.c to mpn/mulmid_n.c
config.status: linking mpn/generic/mulmid.c to mpn/mulmid.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/sizeinbase.c to mpn/sizeinbase.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/popham.c to mpn/popcount.c
config.status: linking mpn/generic/popham.c to mpn/hamdist.c
config.status: linking mpn/generic/cmp.c to mpn/cmp.c
config.status: linking mpn/generic/zero_p.c to mpn/zero_p.c
config.status: linking mpn/generic/perfsqr.c to mpn/perfsqr.c
config.status: linking mpn/generic/perfpow.c to mpn/perfpow.c
config.status: linking mpn/sparc64/gcd_1.asm to mpn/gcd_1.asm
config.status: linking mpn/generic/gcd.c to mpn/gcd.c
config.status: linking mpn/generic/gcdext_1.c to mpn/gcdext_1.c
config.status: linking mpn/generic/gcdext.c to mpn/gcdext.c
config.status: linking mpn/generic/gcd_subdiv_step.c to 
mpn/gcd_subdiv_step.c
config.status: linking mpn/generic/gcdext_lehmer.c to mpn/gcdext_lehmer.c
config.status: linking mpn/generic/div_q.c to mpn/div_q.c
config.status: linking mpn/generic/tdiv_qr.c to mpn/tdiv_qr.c
config.status: linking mpn/generic/jacbase.c to mpn/jacbase.c
config.status: linking mpn/generic/jacobi_2.c to mpn/jacobi_2.c
config.status: linking mpn/generic/jacobi.c to mpn/jacobi.c
config.status: linking mpn/generic/get_d.c to mpn/get_d.c
config.status: linking mpn/generic/matrix22_mul.c to mpn/matrix22_mul.c
config.status: linking mpn/generic/matrix22_mul1_inverse_vector.c to 
mpn/matrix22_mul1_inverse_vector.c
config.status: linking mpn/generic/hgcd_matrix.c to mpn/hgcd_matrix.c
config.status: linking mpn/generic/hgcd2.c to mpn/hgcd2.c
config.status: linking mpn/generic/hgcd_step.c to mpn/hgcd_step.c
config.status: linking mpn/generic/hgcd_reduce.c to mpn/hgcd_reduce.c
config.status: linking mpn/generic/hgcd.c to mpn/hgcd.c
config.status: linking mpn/generic/hgcd_appr.c to mpn/hgcd_appr.c
config.status: linking mpn/generic/hgcd2_jacobi.c to mpn/hgcd2_jacobi.c
config.status: linking mpn/generic/hgcd_jacobi.c to mpn/hgcd_jacobi.c
config.status: linking mpn/generic/mullo_n.c to mpn/mullo_n.c
config.status: linking mpn/generic/mullo_basecase.c to mpn/mullo_basecase.c
config.status: linking mpn/generic/sqrlo.c to mpn/sqrlo.c
config.status: linking mpn/generic/sqrlo_basecase.c to mpn/sqrlo_basecase.c
config.status: linking mpn/generic/toom22_mul.c to mpn/toom22_mul.c
config.status: linking mpn/generic/toom32_mul.c to mpn/toom32_mul.c
config.status: linking mpn/generic/toom42_mul.c to mpn/toom42_mul.c
config.status: linking mpn/generic/toom52_mul.c to mpn/toom52_mul.c
config.status: linking mpn/generic/toom62_mul.c to mpn/toom62_mul.c
config.status: linking mpn/generic/toom33_mul.c to mpn/toom33_mul.c
config.status: linking mpn/generic/toom43_mul.c to mpn/toom43_mul.c
config.status: linking mpn/generic/toom53_mul.c to mpn/toom53_mul.c
config.status: linking mpn/generic/toom54_mul.c to mpn/toom54_mul.c
config.status: linking mpn/generic/toom63_mul.c to mpn/toom63_mul.c
config.status: linking mpn/generic/toom44_mul.c to mpn/toom44_mul.c
config.status: linking mpn/generic/toom6h_mul.c to mpn/toom6h_mul.c
config.status: linking mpn/generic/toom6_sqr.c to mpn/toom6_sqr.c
config.status: linking mpn/generic/toom8h_mul.c to mpn/toom8h_mul.c
config.status: linking mpn/generic/toom8_sqr.c to mpn/toom8_sqr.c
config.status: linking mpn/generic/toom_couple_handling.c to 
mpn/toom_couple_handling.c
config.status: linking mpn/generic/toom2_sqr.c to mpn/toom2_sqr.c
config.status: linking mpn/generic/toom3_sqr.c to mpn/toom3_sqr.c
config.status: linking mpn/generic/toom4_sqr.c to mpn/toom4_sqr.c
config.status: linking mpn/generic/toom_eval_dgr3_pm1.c to 
mpn/toom_eval_dgr3_pm1.c
config.status: linking mpn/generic/toom_eval_dgr3_pm2.c to 
mpn/toom_eval_dgr3_pm2.c
config.status: linking mpn/generic/toom_eval_pm1.c to mpn/toom_eval_pm1.c
config.status: linking mpn/generic/toom_eval_pm2.c to mpn/toom_eval_pm2.c
config.status: linking mpn/generic/toom_eval_pm2exp.c to 
mpn/toom_eval_pm2exp.c
config.status: linking mpn/generic/toom_eval_pm2rexp.c to 
mpn/toom_eval_pm2rexp.c
config.status: linking mpn/generic/toom_interpolate_5pts.c to 
mpn/toom_interpolate_5pts.c
config.status: linking mpn/generic/toom_interpolate_6pts.c to 
mpn/toom_interpolate_6pts.c
config.status: linking mpn/generic/toom_interpolate_7pts.c to 
mpn/toom_interpolate_7pts.c
config.status: linking mpn/generic/toom_interpolate_8pts.c to 
mpn/toom_interpolate_8pts.c
config.status: linking mpn/generic/toom_interpolate_12pts.c to 
mpn/toom_interpolate_12pts.c
config.status: linking mpn/generic/toom_interpolate_16pts.c to 
mpn/toom_interpolate_16pts.c
config.status: linking mpn/generic/invertappr.c to mpn/invertappr.c
config.status: linking mpn/generic/invert.c to mpn/invert.c
config.status: linking mpn/generic/binvert.c to mpn/binvert.c
config.status: linking mpn/generic/mulmod_bnm1.c to mpn/mulmod_bnm1.c
config.status: linking mpn/generic/sqrmod_bnm1.c to mpn/sqrmod_bnm1.c
config.status: linking mpn/generic/div_qr_1.c to mpn/div_qr_1.c
config.status: linking mpn/generic/div_qr_1n_pi1.c to mpn/div_qr_1n_pi1.c
config.status: linking mpn/generic/div_qr_2.c to mpn/div_qr_2.c
config.status: linking mpn/generic/div_qr_2n_pi1.c to mpn/div_qr_2n_pi1.c
config.status: linking mpn/generic/div_qr_2u_pi1.c to mpn/div_qr_2u_pi1.c
config.status: linking mpn/generic/sbpi1_div_q.c to mpn/sbpi1_div_q.c
config.status: linking mpn/generic/sbpi1_div_qr.c to mpn/sbpi1_div_qr.c
config.status: linking mpn/generic/sbpi1_divappr_q.c to 
mpn/sbpi1_divappr_q.c
config.status: linking mpn/generic/dcpi1_div_q.c to mpn/dcpi1_div_q.c
config.status: linking mpn/generic/dcpi1_div_qr.c to mpn/dcpi1_div_qr.c
config.status: linking mpn/generic/dcpi1_divappr_q.c to 
mpn/dcpi1_divappr_q.c
config.status: linking mpn/generic/mu_div_qr.c to mpn/mu_div_qr.c
config.status: linking mpn/generic/mu_divappr_q.c to mpn/mu_divappr_q.c
config.status: linking mpn/generic/mu_div_q.c to mpn/mu_div_q.c
config.status: linking mpn/generic/bdiv_q_1.c to mpn/bdiv_q_1.c
config.status: linking mpn/generic/sbpi1_bdiv_q.c to mpn/sbpi1_bdiv_q.c
config.status: linking mpn/generic/sbpi1_bdiv_qr.c to mpn/sbpi1_bdiv_qr.c
config.status: linking mpn/generic/dcpi1_bdiv_q.c to mpn/dcpi1_bdiv_q.c
config.status: linking mpn/generic/dcpi1_bdiv_qr.c to mpn/dcpi1_bdiv_qr.c
config.status: linking mpn/generic/mu_bdiv_q.c to mpn/mu_bdiv_q.c
config.status: linking mpn/generic/mu_bdiv_qr.c to mpn/mu_bdiv_qr.c
config.status: linking mpn/generic/bdiv_q.c to mpn/bdiv_q.c
config.status: linking mpn/generic/bdiv_qr.c to mpn/bdiv_qr.c
config.status: linking mpn/generic/broot.c to mpn/broot.c
config.status: linking mpn/generic/brootinv.c to mpn/brootinv.c
config.status: linking mpn/generic/bsqrt.c to mpn/bsqrt.c
config.status: linking mpn/generic/bsqrtinv.c to mpn/bsqrtinv.c
config.status: linking mpn/generic/divexact.c to mpn/divexact.c
config.status: linking mpn/generic/bdiv_dbm1c.c to mpn/bdiv_dbm1c.c
config.status: linking mpn/generic/redc_1.c to mpn/redc_1.c
config.status: linking mpn/generic/redc_2.c to mpn/redc_2.c
config.status: linking mpn/generic/redc_n.c to mpn/redc_n.c
config.status: linking mpn/generic/powm.c to mpn/powm.c
config.status: linking mpn/generic/powlo.c to mpn/powlo.c
config.status: linking mpn/generic/sec_powm.c to mpn/sec_powm.c
config.status: linking mpn/generic/sec_mul.c to mpn/sec_mul.c
config.status: linking mpn/generic/sec_sqr.c to mpn/sec_sqr.c
config.status: linking mpn/generic/sec_div.c to mpn/sec_div_qr.c
config.status: linking mpn/generic/sec_div.c to mpn/sec_div_r.c
config.status: linking mpn/generic/sec_pi1_div.c to mpn/sec_pi1_div_qr.c
config.status: linking mpn/generic/sec_pi1_div.c to mpn/sec_pi1_div_r.c
config.status: linking mpn/generic/sec_aors_1.c to mpn/sec_add_1.c
config.status: linking mpn/generic/sec_aors_1.c to mpn/sec_sub_1.c
config.status: linking mpn/generic/sec_invert.c to mpn/sec_invert.c
config.status: linking mpn/generic/trialdiv.c to mpn/trialdiv.c
config.status: linking mpn/generic/remove.c to mpn/remove.c
config.status: linking mpn/generic/logops_n.c to mpn/and_n.c
config.status: linking mpn/generic/logops_n.c to mpn/andn_n.c
config.status: linking mpn/generic/logops_n.c to mpn/nand_n.c
config.status: linking mpn/generic/logops_n.c to mpn/ior_n.c
config.status: linking mpn/generic/logops_n.c to mpn/iorn_n.c
config.status: linking mpn/generic/logops_n.c to mpn/nior_n.c
config.status: linking mpn/generic/logops_n.c to mpn/xor_n.c
config.status: linking mpn/generic/logops_n.c to mpn/xnor_n.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/generic/zero.c to mpn/zero.c
config.status: linking mpn/sparc64/sec_tabselect.asm to 
mpn/sec_tabselect.asm
config.status: linking mpn/generic/comb_tables.c to mpn/comb_tables.c
config.status: linking mpn/generic/add_n_sub_n.c to mpn/add_n_sub_n.c
config.status: linking mpn/sparc64/gmp-mparam.h to gmp-mparam.h
config.status: executing libtool commands
configure: summary of build options:

   Version:           GNU MP 6.1.2
   Host type:         sparc64-sun-solaris2.10
   ABI:               64
   Install prefix:    /export/home/dclarke/local
   Compiler:          /usr/local/gcc7/bin/gcc
   Static libraries:  yes
   Shared libraries:  yes

v9_7++ $


Lo and behold compile process completes.  Looks like only GNU gcc can be
used if the assembly files are allowed to be included. I get output libs
that seem to have a bucket of NEEDED libs and a weird RUNPATH :

libgmpxx.so.4.5.2 says .... --->
Dynamic Section:  .dynamic
      index  tag                value
        [0]  NEEDED            0x19fd              libgmp.so.10
        [1]  NEEDED            0x1980              libstdc++.so.6
        [2]  NEEDED            0x1a0a              libm.so.2
        [3]  NEEDED            0x1a14              librt.so.1
        [4]  NEEDED            0x19c4              libgcc_s.so.1
        [5]  NEEDED            0x19da              libc.so.1
        [6]  INIT              0x51c8
        [7]  FINI              0x51e4
        [8]  SONAME            0x1a1f              libgmpxx.so.4
        [9]  RUNPATH           0x1a2d 
/export/home/dclarke/local/lib:/usr/local/gcc7/lib/sparcv9
       [10]  RPATH             0x1a2d 
/export/home/dclarke/local/lib:/usr/local/gcc7/lib/sparcv9


Also for libgmp.so.10.3.2 we see :

Dynamic Section:  .dynamic
      index  tag                value
        [0]  NEEDED            0x28f5              libgcc_s.so.1
        [1]  NEEDED            0x290b              libc.so.1
        [2]  INIT              0x5f530
        [3]  FINI              0x5f54c
        [4]  SONAME            0x2927              libgmp.so.10
        [5]  RUNPATH           0x2934 
/export/home/dclarke/local/lib
        [6]  RPATH             0x2934 
/export/home/dclarke/local/lib

So dependencies on libstdc++.so.6 and libgcc_s.so.1 there.

If I use the "disable-assembly" option during configure then I can
compile with the Oracle compiler ( or any compiler perhaps ) and I
get horrifically slow libs which seem to have very few dependencies :

v9_7++ $ elfdump -devl /usr/local/lib/libgmpxx.so.4.5.2 | grep -E 
"SONAME|NEED|PATH"
        [0]  NEEDED            0x229f              libgmp.so.10
        [1]  NEEDED            0x2283              libc.so.1
        [4]  SONAME            0x22ac              libgmpxx.so.4
        [5]  RUNPATH           0x22ba 
/usr/local/lib:/opt/developerstudio12.5/lib/sparcv9
        [6]  RPATH             0x22ba 
/usr/local/lib:/opt/developerstudio12.5/lib/sparcv9
       [13]  VERNEED           0x3d20
       [14]  VERNEEDNUM        0x1

v9_7++ $ elfdump -devl /usr/local/lib/libgmp.so.10.3.2 | grep -E 
"SONAME|NEED|PATH"
        [0]  NEEDED            0x2c4f              libc.so.1
        [3]  SONAME            0x2c6b              libgmp.so.10
        [4]  RUNPATH           0x2c78 
/usr/local/lib:/usr/local/lib:/usr/xpg6/lib/64:/usr/xpg4/lib/64
        [5]  RPATH             0x2c78 
/usr/local/lib:/usr/local/lib:/usr/xpg6/lib/64:/usr/xpg4/lib/64
       [12]  VERNEED           0x8520
       [13]  VERNEEDNUM        0x1


So the question is ... is there any way at all to use the assembly files
that pre-exist in the tarball and yet avoid gcc and thus avoid
dependencies on libstdc++.so.6 and libgcc_s.so.1 ?   Is this a bug or
just a build environment problem?  Should I even care?

One thing that is certainly true is that the libs produced with gcc and
the assembler files are much faster :

v9_7++ $ /opt/developerstudio12.5/bin/c99 -Xc -m64 \
 > -xtarget=sparc64viiplus -xcache=64/64/2:11264/256/11 \
 > -errfmt=error -erroff=%none -errshort=full -xstrconst \
 > -xildoff -xmemalign=8s -xnolibmil -xcode=pic32 -xregs=no%appl \
 > -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none \
 > -xdebugformat=dwarf -xunroll=1 \
 > -I/export/home/dclarke/local/include -D_TS_ERRNO \
 > -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE \
 > -c -o f_local.o f.c

v9_7++ $ /opt/developerstudio12.5/bin/c99 -Xc -m64 \
 > -xtarget=sparc64viiplus -xcache=64/64/2:11264/256/11 \
 > -errfmt=error -erroff=%none -errshort=full -xstrconst \
 > -xildoff -xmemalign=8s -xnolibmil -xcode=pic32 -xregs=no%appl \
 > -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none \
 > -xdebugformat=dwarf -xunroll=1 \
 > -R/export/home/dclarke/local/lib \
 > -L/export/home/dclarke/local/lib \
 > -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE \
 > -o f_local f_local.o -lgmp -lrt

v9_7++ $ file f_local
f_local: ELF 64-bit MSB executable SPARCV9 Version 1, UltraSPARC3 
Extensions Required, dynamically linked, not stripped

v9_7++ $ ldd f_local
         libgmp.so.10 =>  /export/home/dclarke/local/lib/libgmp.so.10
         librt.so.1 =>    /lib/64/librt.so.1
         libc.so.1 =>     /lib/64/libc.so.1
         libgcc_s.so.1 => 
/export/home/dclarke/local/lib/libgcc_s.so.1
         libaio.so.1 =>   /lib/64/libaio.so.1
         libmd.so.1 =>    /lib/64/libmd.so.1
         libm.so.2 =>     /lib/64/libm.so.2
         /lib/sparcv9/../libm/sparcv9/libm_hwcap1.so.2
         /platform/SUNW,SPARC-Enterprise/lib/sparcv9/libc_psr.so.1

So now calculating fibonaccic number 100000 takes 17.86 secs :

v9_7++ $ /usr/bin/time -p ./f_local 100000 > out 2>&1
v9_7++ $ tail -5 out
      time = 17.867049 sec

real 17.87
user 17.86
sys 0.00
v9_7++ $

Previously I saw 45.24 secs or so.

Better than before but a 12 year old PowerMac G5 does the same job in
just about 3.5 secs. An AMD Opteron at 3GHz does it all faster than that 
and I hear from Paul Zimmermann that his laptop is sub-second. Not sure
how to get some performance out of libgmp on this platform.  Am really
open to any thoughts.


Dennis





More information about the gmp-bugs mailing list