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 0x0100a9f0 in tests_allocate (size=1099511750592) at
memory.c:102
#2 0x01007620 in check_one (want=0x101dfc0 " 123",
fmt=0x11267a8 "%10Nd") at t-printf.c:312
#3 0x01007af4 in check_z () at t-printf.c:424
#4 0x0100a6d0 in main (argc=1, argv=0x7fef638) 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 {
304va_list ap;
305va_start (ap, fmt);
306
307/* simplest first */
308check_vsprintf (want, fmt, ap);
309check_vfprintf (want, fmt, ap);
310check_vsnprintf (want, fmt, ap);
311check_vasprintf (want, fmt, ap);
312check_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=0x7feefb8, 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