[gmp-bugs] Build feedback for gmp-6.1.0

Nelson H. F. Beebe beebe at math.utah.edu
Thu Feb 25 00:34:08 UTC 2016


My test lab now features about 75 flavors of Unix on multiple CPU
types.  Today, I got successful builds and validations on 69 of them,
and I'm now examining the failures.

The first failing machine is our ArchLinux 4.2.3-1-ARCH system, for
which "cat /proc/cpuinfo" reports

    processor       : 0
    model name      : ARMv7 Processor rev 10 (v7l)
    BogoMIPS        : 7.54
    Features        : half thumb fastmult vfp edsp thumbee neon vfpv3 tls vfpd32
    CPU implementer : 0x41
    CPU architecture: 7
    CPU variant     : 0x2
    CPU part        : 0xc09
    CPU revision    : 10
    ...

When gmp-6.1.0 is built with

    export PATH=/bin:/usr/bin
    ./configure && make all check

I get a compile-time failure in assembly code:

    /usr/bin/gcc -c -DHAVE_CONFIG_H -I. -I.. -D__GMP_WITHIN_GMP -I.. -DOPERATION_lshift \
	-I/usr/uumath/include -I/usr/uumath/include -Wa,--noexecstack tmp-lshift.s -fPIC \
	-DPIC -o .libs/lshift.o

    tmp-lshift.s: Assembler messages:
    tmp-lshift.s:106: Error: selected processor does not support `vdup.32 d6,r3' in ARM mode
    tmp-lshift.s:108: Error: selected processor does not support `vdup.32 d7,r3' in ARM mode
    tmp-lshift.s:114: Error: selected processor does not support `vshl.u64 d18,d19,d7' in ARM mode
    tmp-lshift.s:120: Error: selected processor does not support `vshl.u64 d4,d19,d6' in ARM mode
    tmp-lshift.s:134: Error: selected processor does not support `vshl.u64 d5,d19,d6' in ARM mode
    tmp-lshift.s:136: Error: selected processor does not support `vshl.u64 d0,d17,d7' in ARM mode
    tmp-lshift.s:137: Error: selected processor does not support `vshl.u64 d4,d17,d6' in ARM mode
    tmp-lshift.s:142: Error: selected processor does not support `vshl.u64 d4,d19,d6' in ARM mode
    tmp-lshift.s:144: Error: selected processor does not support `vshl.u64 d1,d16,d7' in ARM mode
    tmp-lshift.s:145: Error: selected processor does not support `vshl.u64 d5,d16,d6' in ARM mode
    tmp-lshift.s:150: Error: selected processor does not support `vorr d2,d4,d1' in ARM mode
    tmp-lshift.s:151: Error: selected processor does not support `vshl.u64 d0,d17,d7' in ARM mode
    tmp-lshift.s:152: Error: selected processor does not support `vshl.u64 d4,d17,d6' in ARM mode
    tmp-lshift.s:155: Error: selected processor does not support `vorr d3,d5,d0' in ARM mode
    tmp-lshift.s:156: Error: selected processor does not support `vshl.u64 d1,d16,d7' in ARM mode
    tmp-lshift.s:157: Error: selected processor does not support `vshl.u64 d5,d16,d6' in ARM mode
    tmp-lshift.s:165: Error: selected processor does not support `vorr d2,d4,d1' in ARM mode
    tmp-lshift.s:169: Error: selected processor does not support `vorr d2,d4,d1' in ARM mode
    tmp-lshift.s:170: Error: selected processor does not support `vshl.u64 d0,d17,d7' in ARM mode
    tmp-lshift.s:171: Error: selected processor does not support `vshl.u64 d16,d17,d6' in ARM mode
    tmp-lshift.s:173: Error: selected processor does not support `vorr d2,d5,d0' in ARM mode
    tmp-lshift.s:181: Error: selected processor does not support `vshl.u64 d5,d19,d6' in ARM mode
    tmp-lshift.s:183: Error: selected processor does not support `veor d16,d16,d16' in ARM mode
    tmp-lshift.s:186: Error: selected processor does not support `vshl.u64 d0,d17,d7' in ARM mode
    tmp-lshift.s:187: Error: selected processor does not support `vshl.u64 d4,d17,d6' in ARM mode
    tmp-lshift.s:188: Error: selected processor does not support `vorr d3,d5,d0' in ARM mode
    tmp-lshift.s:189: Error: selected processor does not support `vshl.u64 d1,d16,d7' in ARM mode
    tmp-lshift.s:190: Error: selected processor does not support `vshl.u64 d5,d16,d6' in ARM mode
    tmp-lshift.s:192: Error: selected processor does not support `vorr d2,d4,d1' in ARM mode
    tmp-lshift.s:200: Error: selected processor does not support `vshl.u64 d4,d19,d6' in ARM mode
    tmp-lshift.s:201: Error: selected processor does not support `vshl.u64 d1,d16,d7' in ARM mode
    tmp-lshift.s:202: Error: selected processor does not support `vshl.u64 d16,d16,d6' in ARM mode
    tmp-lshift.s:203: Error: selected processor does not support `vorr d2,d4,d1' in ARM mode
    Makefile:768: recipe for target 'lshift.lo' failed

If instead I add the --disable-assembly option, compilation succeeds,
but there are then six test failures:

    FAIL: t-bswap
    FAIL: t-constants
    FAIL: t-count_zeros
    FAIL: t-modlinv
    FAIL: t-popc
    FAIL: t-sub

The same thing happens if I instead build with CC pointing to /usr/bin/clang,
for which we have

    % /usr/bin/clang --version
    clang version 3.7.1 (tags/RELEASE_371/final)
    Target: armv7l-unknown-linux-gnueabihf
    Thread model: posix

Examination of the tests/*.log files show that they all fail from the same error:

    % cat tests/t-bswap.log
    /local/build/bare/gmp-6.1.0/tests/.libs/lt-t-bswap: symbol lookup error: \
        /local/build/bare/gmp-6.1.0/tests/.libs/lt-t-bswap: undefined symbol: __gmpn_clz_tab
    FAIL t-bswap (exit status: 127)

The symbol __gmpn_clz_tab does not appear in the source code, but is
generated from the macro expansion of

    longlong.h:2158:extern const unsigned char __GMP_DECLSPEC __clz_tab[129];

Any ideas for a fix?

-------------------------------------------------------------------------------
- Nelson H. F. Beebe                    Tel: +1 801 581 5254                  -
- University of Utah                    FAX: +1 801 581 4148                  -
- Department of Mathematics, 110 LCB    Internet e-mail: beebe at math.utah.edu  -
- 155 S 1400 E RM 233                       beebe at acm.org  beebe at computer.org -
- Salt Lake City, UT 84112-0090, USA    URL: http://www.math.utah.edu/~beebe/ -
-------------------------------------------------------------------------------


More information about the gmp-bugs mailing list