With an old old Sun Nera server running very latest Debian sid I was surprised to see :
. . . FAIL: t-printf PASS: t-scanf PASS: t-locale ============================================================================ Testsuite summary for GNU MP 6.2.1 ============================================================================ # TOTAL: 3 # PASS: 2 # SKIP: 0 # XFAIL: 0 # FAIL: 1 # XPASS: 0 # ERROR: 0 The ./tests/misc/t-printf.log says very little : C_ceres$ wc -l ./tests/misc/t-printf.c 956 ./tests/misc/t-printf.c C_ceres$ Just trying to run the test within gdb will throw a SIGSEGV : (gdb) run Starting program: /opt/bw/build/gmp-6.2.1_debian_5.9.0-2-sparc64.001/tests/misc/t-printf Program received signal SIGSEGV, Segmentation fault. __memcpy_large () at ../sysdeps/sparc/sparc64/memcpy.S:370 370 ../sysdeps/sparc/sparc64/memcpy.S: No such file or directory. (gdb) where #0 __memcpy_large () at ../sysdeps/sparc/sparc64/memcpy.S:370 #1 0x000001000000a9f0 in tests_allocate (size=1099511750592) at memory.c:102 #2 0x0000010000007620 in check_one (want=0x1000001dfc0 " 123", fmt=0x100001267a8 "%10Nd") at t-printf.c:312 #3 0x0000010000007af4 in check_z () at t-printf.c:424 #4 0x000001000000a6d0 in main (argc=1, argv=0x7fefffff638) at t-printf.c:945 (gdb) quit A debugging session is active. Inferior 1 [process 55131] will be killed. Quit anyway? (y or n) y ceres$ Looking at line 312 I see : 300 301 void 302 check_one (const char *want, const char *fmt, ...) 303 { 304 va_list ap; 305 va_start (ap, fmt); 306 307 /* simplest first */ 308 check_vsprintf (want, fmt, ap); 309 check_vfprintf (want, fmt, ap); 310 check_vsnprintf (want, fmt, ap); 311 check_vasprintf (want, fmt, ap); 312 check_obstack_vprintf (want, fmt, ap); 313 } 314 This seems to be repeatable and also unlikely. I tried to single step around in there and eventually ended up at : obstack_free (h=0x7feffffefb8, obj=0x0) at obstack.c:350 I am likely doing something wrong here. In any case the configure line was : ./configure ABI=64 --enable-cxx --prefix=/opt/bw --libdir=/opt/bw/lib --disable-assembly --enable-shared --enable-static --enable-fft Which looked okay : checking build system type... ultrasparc2i-unknown-linux-gnu checking host system type... ultrasparc2i-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /usr/bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether /usr/bin/make sets $(MAKE)... yes checking whether /usr/bin/make supports nested variables... yes checking whether to enable maintainer-specific portions of Makefiles... no checking ABI=64 checking compiler /usr/bin/gcc -std=iso9899:1999 -m64 -g -O0 -pedantic -pedantic-errors -fno-builtin -fno-fast-math -mno-app-regs -mflat -mhard-float -mhard-quad-float -mno-unaligned-doubles -mno-faster-structs -mcpu=ultrasparc -mtune=ultrasparc -mno-vis -mno-cbcond -mno-fmaf -mno-fsmuld -mno-popc -mno-subxc -mcmodel=medany -mmemory-model=tso -Wl,-rpath=/opt/bw/lib -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -D_TS_ERRNO -D_XOPEN_SOURCE=600... yes checking compiler /usr/bin/gcc -std=iso9899:1999 -m64 -g -O0 -pedantic -pedantic-errors -fno-builtin -fno-fast-math -mno-app-regs -mflat -mhard-float -mhard-quad-float -mno-unaligned-doubles -mno-faster-structs -mcpu=ultrasparc -mtune=ultrasparc -mno-vis -mno-cbcond -mno-fmaf -mno-fsmuld -mno-popc -mno-subxc -mcmodel=medany -mmemory-model=tso -Wl,-rpath=/opt/bw/lib has sizeof(long)==8... yes checking for gcc... /usr/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/bin/gcc accepts -g... yes checking for /usr/bin/gcc option to accept ISO C89... none needed checking whether /usr/bin/gcc understands -c and -o together... yes checking for /usr/bin/gcc option to accept ISO C99... none needed checking how to run the C preprocessor... /usr/bin/gcc -E checking build system compiler /usr/bin/gcc... yes checking for build system preprocessor... /usr/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/bin/g++ accepts -g... yes checking C++ compiler /usr/bin/g++ -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -D_TS_ERRNO -D_XOPEN_SOURCE=600 -std=iso9899:1999 -m64 -g -O0 -pedantic -pedantic-errors -fno-builtin -fno-fast-math -mno-app-regs -mflat -mhard-float -mhard-quad-float -mno-unaligned-doubles -mno-faster-structs -mcpu=ultrasparc -mtune=ultrasparc -mno-vis -mno-cbcond -mno-fmaf -mno-fsmuld -mno-popc -mno-subxc -mcmodel=medany -mmemory-model=tso -Wl,-rpath=/opt/bw/lib... no, std iostream, program does not run checking C++ compiler /usr/bin/g++ -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -D_TS_ERRNO -D_XOPEN_SOURCE=600 -g -O2... yes checking how to run the C++ preprocessor... /usr/bin/g++ -E checking for grep that handles long lines and -e... /usr/bin/grep checking for egrep... /usr/bin/grep -E using ABI="64" CC="/usr/bin/gcc" CFLAGS="-std=iso9899:1999 -m64 -g -O0 -pedantic -pedantic-errors -fno-builtin -fno-fast-math -mno-app-regs -mflat -mhard-float -mhard-quad-float -mno-unaligned-doubles -mno-faster-structs -mcpu=ultrasparc -mtune=ultrasparc -mno-vis -mno-cbcond -mno-fmaf -mno-fsmuld -mno-popc -mno-subxc -mcmodel=medany -mmemory-model=tso -Wl,-rpath=/opt/bw/lib" CPPFLAGS="-D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -D_TS_ERRNO -D_XOPEN_SOURCE=600" CXX="/usr/bin/g++" CXXFLAGS="-g -O2" MPN_PATH="generic" checking whether assembler supports --noexecstack option... yes checking for ar... /usr/bin/ar checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -p checking the name lister (/usr/bin/nm -p) interface... BSD nm checking how to print strings... printf checking for a sed that does not truncate output... /usr/bin/sed checking for fgrep... /usr/bin/grep -F checking for ld used by /usr/bin/gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking whether ln -s works... yes checking the maximum length of command line arguments... 1572864 checking how to convert ultrasparc2i-unknown-linux-gnu file names to ultrasparc2i-unknown-linux-gnu format... func_convert_file_noop checking how to convert ultrasparc2i-unknown-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/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... @ checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -p output from /usr/bin/gcc object... failed 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/bin/gcc supports -fno-rtti -fno-exceptions... no checking for /usr/bin/gcc option to produce PIC... -fPIC -DPIC checking if /usr/bin/gcc PIC flag -fPIC -DPIC works... yes checking if /usr/bin/gcc static flag -static works... yes checking if /usr/bin/gcc supports -c -o file.o... yes checking if /usr/bin/gcc supports -c -o file.o... (cached) yes checking whether the /usr/bin/gcc linker (/usr/bin/ld) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes 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/bin/g++ -E checking for ld used by /usr/bin/g++... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking whether the /usr/bin/g++ linker (/usr/bin/ld) supports shared libraries... yes checking for /usr/bin/g++ option to produce PIC... -fPIC -DPIC checking if /usr/bin/g++ PIC flag -fPIC -DPIC works... yes checking if /usr/bin/g++ static flag -static works... yes checking if /usr/bin/g++ supports -c -o file.o... yes checking if /usr/bin/g++ supports -c -o file.o... (cached) yes checking whether the /usr/bin/g++ linker (/usr/bin/ld) supports shared libraries... yes checking dynamic linker characteristics... (cached) GNU/Linux 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... no checking sys/processor.h presence... no checking for sys/processor.h... no 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... yes 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... no 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... yes checking for popen... yes checking for processor_info... no 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... yes checking for strtol... yes checking for strtoul... yes checking for sysconf... yes checking for sysctl... yes checking for sysctlbyname... no checking for times... yes checking for library containing clock_gettime... none required 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... 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... yes 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... no checking for readline in -lreadline... no checking readline detected... no checking for bison... bison -y checking for flex... flex checking lex output file root... lex.yy checking lex library... -lfl checking whether yytext is a pointer... yes 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 gmp.pc config.status: creating gmpxx.pc 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/generic/lshift.c to mpn/lshift.c config.status: linking mpn/generic/rshift.c to mpn/rshift.c 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/fib2m.c to mpn/fib2m.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/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/generic/mod_1_4.c to mpn/mod_1_4.c config.status: linking mpn/generic/lshiftc.c to mpn/lshiftc.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/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/compute_powtab.c to mpn/compute_powtab.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/generic/strongfibo.c to mpn/strongfibo.c config.status: linking mpn/generic/gcd_11.c to mpn/gcd_11.c config.status: linking mpn/generic/gcd_22.c to mpn/gcd_22.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_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/sbpi1_bdiv_r.c to mpn/sbpi1_bdiv_r.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/generic/copyi.c to mpn/copyi.c config.status: linking mpn/generic/copyd.c to mpn/copyd.c config.status: linking mpn/generic/zero.c to mpn/zero.c config.status: linking mpn/generic/sec_tabselect.c to mpn/sec_tabselect.c 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/generic/gmp-mparam.h to gmp-mparam.h config.status: executing libtool commands configure: summary of build options: Version: GNU MP 6.2.1 Host type: ultrasparc2i-unknown-linux-gnu ABI: 64 Install prefix: /opt/bw Compiler: /usr/bin/gcc Static libraries: yes Shared libraries: yes ceres$ ceres$ uname -a Linux ceres 5.9.0-2-sparc64 #1 Debian 5.9.6-1 (2020-11-08) sparc64 GNU/Linux ceres$ Everything compiles up fine but this one test seems spooky. Mostly because I have not seen it fail anywhere else. Ever. I just tried on Debian sid for ppc64 big-endian with no issues at all. I know the CFLAGS may look a bit trdious and even bonkers but I have had no problems with my other software ( yet ) and it does sort of enforce a very strict C99 way of things : ceres$ pwd /opt/bw/build/gmp-6.2.1_debian_5.9.0-2-sparc64.001 ceres$ ceres$ find . | grep 't-print' ./t-printf.tmp ./tests/misc/t-printf.tmp ./tests/misc/t-printf.o ./tests/misc/t-printf.log ./tests/misc/t-printf ./tests/misc/t-printf.trs ./tests/misc/t-printf.c ceres$ ceres$ file ./tests/misc/t-printf ./tests/misc/t-printf: ELF 64-bit MSB shared object, SPARC V9, relaxed memory ordering, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux.so.2, BuildID[sha1]=1f5967f839d54651b535b9c98d2a024df84d39b0, for GNU/Linux 3.2.0, with debug_info, not stripped ceres$ ceres$ ldd ./tests/misc/t-printf linux-vdso.so.1 (0xfffff80100042000) libgmp.so.10 => /opt/bw/build/gmp-6.2.1_debian_5.9.0-2-sparc64.001/.libs/libgmp.so.10 (0xfffff8010024c000) libc.so.6 => /lib/sparc64-linux-gnu/libc.so.6 (0xfffff80100420000) /lib64/ld-linux.so.2 (0xfffff80100000000) ceres$ ceres$ ceres$ ls /opt/bw/lib /usr/bin/ls: cannot access '/opt/bw/lib': No such file or directory ceres$ ceres$ echo $CC /usr/bin/gcc ceres$ ceres$ echo $CFLAGS -std=iso9899:1999 -m64 -g -O0 -pedantic -pedantic-errors -fno-builtin -fno-fast-math -mno-app-regs -mflat -mhard-float -mhard-quad-float -mno-unaligned-doubles -mno-faster-structs -mcpu=ultrasparc -mtune=ultrasparc -mno-vis -mno-cbcond -mno-fmaf -mno-fsmuld -mno-popc -mno-subxc -mcmodel=medany -mmemory-model=tso -Wl,-rpath=/opt/bw/lib ceres$ ceres$ echo $CXXFLAGS -m64 -g -O0 -fno-builtin -fno-fast-math -mno-app-regs -mno-unaligned-doubles -mcpu=ultrasparc -mtune=ultrasparc -Wl,-rpath=/opt/bw/lib ceres$ In any case let me know what I can do to dig into this more. Oh, last item, I did try to insert -std=c++11 into the CXXFLAGS but the configure stage blew up every time while looking for std iostream. I went with what seems to get past configure for CXXFLAGS. -- Dennis Clarke RISC-V/SPARC/PPC/ARM/CISC UNIX and Linux spoken GreyBeard and suspenders optional _______________________________________________ gmp-bugs mailing list gmp-bugs@gmplib.org https://gmplib.org/mailman/listinfo/gmp-bugs