GMP tuneup crashes

Stephen Sebeny ssebeny at icloud.com
Sun Aug 5 18:37:37 UTC 2018


- I am running Mac OS X 10.13.6 (17G65) with Xcode 9.4.1 (9F2000) on an iMac (Retina 5K, 27-inch, Late 2014) with 4 GHz Intel Core i7 (Haswell)
- I downloaded gmp-6.1.2.tar.bz2 from https://gmplib.org/download/gmp/gmp-6.1.2.tar.bz2 <https://gmplib.org/download/gmp/gmp-6.1.2.tar.bz2>
- Uncompressed & extracted gmp-6.1.2.tar.bz2
- Ran ./configure
- Ran make
- Not sure if it is an issue or not, but just a few lines before the end of the output from make I noticed these lines mentioning no symbols found n various files:

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: .libs/libgmp.a(mp_clz_tab.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: .libs/libgmp.a(obprintf.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: .libs/libgmp.a(obvprintf.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: .libs/libgmp.a(obprntffuns.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: .libs/libgmp.a(repl-vsnprintf.o) has no symbols
libtool: link: ranlib .libs/libgmp.a
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: .libs/libgmp.a(mp_clz_tab.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: .libs/libgmp.a(obprintf.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: .libs/libgmp.a(obvprintf.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: .libs/libgmp.a(obprntffuns.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: .libs/libgmp.a(repl-vsnprintf.o) has no symbols

- Next I ran make check
- It appears to have passed all the various tests built & run. (Although the section for cxx (C++?) listed 0 tests.)
- Then I built the tuneup tool: cd tune/; make tuneup
- The build appeared to succeed although I noticed a couple more lines like given above that mentioned "has no symbols"
- So then I ran tuneup: ./tuneup
- It generated the following output, appearing to crash before it finished

Parameters for ./mpn/x86_64/coreihwl/gmp-mparam.h
Using: CPU cycle counter, supplemented by microsecond getrusage()
speed_precision 10000, speed_unittime 2.50e-10 secs, CPU freq 4000.00 MHz
DEFAULT_MAX_SIZE 1000, fft_max_size 50000

/* Generated by tuneup.c, 2018-08-05, gcc 4.2 */

#define MOD_1_NORM_THRESHOLD                 0  /* always */
#define MOD_1_UNNORM_THRESHOLD               0  /* always */
#define MOD_1N_TO_MOD_1_1_THRESHOLD          3
#define MOD_1U_TO_MOD_1_1_THRESHOLD          2
#define MOD_1_1_TO_MOD_1_2_THRESHOLD        10
#define MOD_1_2_TO_MOD_1_4_THRESHOLD        24
#define PREINV_MOD_1_TO_MOD_1_THRESHOLD      8
#define USE_PREINV_DIVREM_1                  1  /* native */
#define DIV_QR_1_NORM_THRESHOLD              1
#define DIV_QR_1_UNNORM_THRESHOLD        MP_SIZE_T_MAX  /* never */
#define DIV_QR_2_PI2_THRESHOLD           MP_SIZE_T_MAX  /* never */
#define DIVEXACT_1_THRESHOLD                 0  /* always (native) */
#define BMOD_1_TO_MOD_1_THRESHOLD           26

#define MUL_TOOM22_THRESHOLD                24
#define MUL_TOOM33_THRESHOLD                74
#define MUL_TOOM44_THRESHOLD               202
#define MUL_TOOM6H_THRESHOLD               286
#define MUL_TOOM8H_THRESHOLD               406

#define MUL_TOOM32_TO_TOOM43_THRESHOLD     129
#define MUL_TOOM32_TO_TOOM53_THRESHOLD     138
#define MUL_TOOM42_TO_TOOM53_THRESHOLD     130
#define MUL_TOOM42_TO_TOOM63_THRESHOLD     134
#define MUL_TOOM43_TO_TOOM54_THRESHOLD     183

#define SQR_BASECASE_THRESHOLD               0  /* always (native) */
#define SQR_TOOM2_THRESHOLD                 36
#define SQR_TOOM3_THRESHOLD                117
#define SQR_TOOM4_THRESHOLD                324
#define SQR_TOOM6_THRESHOLD                402
#define SQR_TOOM8_THRESHOLD                430

#define MULMID_TOOM42_THRESHOLD             46

#define MULMOD_BNM1_THRESHOLD               15
#define SQRMOD_BNM1_THRESHOLD               18

#define MUL_FFT_MODF_THRESHOLD             380  /* k = 5 */
#define MUL_FFT_TABLE3                                      \
  { {    380, 5}, {     19, 6}, {     10, 5}, {     21, 6}, \
    {     11, 5}, {     23, 6}, {     21, 7}, {     11, 6}, \
    {     25, 7}, {     13, 6}, {     27, 7}, {     21, 8}, \
    {     11, 7}, {     25, 8}, {     13, 7}, {     28, 8}, \
    {     15, 7}, {     31, 8}, {     21, 9}, {     11, 8}, \
    {     27, 9}, {     15, 8}, {     35, 9}, {     19, 8}, \
    {     41, 9}, {     23, 8}, {     47, 9}, {     27,10}, \
    {     15, 9}, {     39,10}, {     23, 9}, {     51,11}, \
    {     15,10}, {     31, 9}, {     67,10}, {     39, 9}, \
    {     79,10}, {     47, 9}, {    512,10}, {   1024,11}, \
    {   2048,12}, {   4096,13}, {   8192,14}, {  16384,15}, \
    {  32768,16}, {  65536,17}, { 131072,18}, { 262144,19}, \
    { 524288,20}, {1048576,21}, {2097152,22}, {4194304,23}, \
    {8388608,24} }
#define MUL_FFT_TABLE3_SIZE 53
#define MUL_FFT_THRESHOLD                 4224

#define SQR_FFT_MODF_THRESHOLD             368  /* k = 5 */
#define SQR_FFT_TABLE3                                      \
  { {    368, 5}, {     21, 6}, {     11, 5}, {     23, 6}, \
    {     19, 7}, {     10, 6}, {     23, 7}, {     12, 6}, \
    {     25, 7}, {     13, 6}, {     27, 7}, {     25, 8}, \
    {     13, 7}, {     28, 8}, {     15, 7}, {     31, 8}, \
    {     17, 7}, {     35, 8}, {     19, 9}, {     11, 8}, \
    {     27, 9}, {     15, 8}, {     35, 9}, {     19, 8}, \
    {     41, 9}, {     23, 8}, {     49, 9}, {     27,10}, \
    {     15, 9}, {     39,10}, {     23, 9}, {     51,11}, \
    {     15,10}, {     31, 9}, {     67,10}, {     39, 9}, \
    {     79,10}, {   1024,11}, {   2048,12}, {   4096,13}, \
    {   8192,14}, {  16384,15}, {  32768,16}, {  65536,17}, \
    { 131072,18}, { 262144,19}, { 524288,20}, {1048576,21}, \
    {2097152,22}, {4194304,23}, {8388608,24} }
#define SQR_FFT_TABLE3_SIZE 51
#define SQR_FFT_THRESHOLD                 3264

#define MULLO_BASECASE_THRESHOLD             0  /* always */
#define MULLO_DC_THRESHOLD                  77
#define MULLO_MUL_N_THRESHOLD             8397
#define SQRLO_BASECASE_THRESHOLD            11
#define SQRLO_DC_THRESHOLD                  82
#define SQRLO_SQR_THRESHOLD               6481

#define DC_DIV_QR_THRESHOLD                 74
#define DC_DIVAPPR_Q_THRESHOLD             195
#define DC_BDIV_QR_THRESHOLD                68
#define DC_BDIV_Q_THRESHOLD                148

#define INV_MULMOD_BNM1_THRESHOLD           46
#define INV_NEWTON_THRESHOLD               171
#define INV_APPR_THRESHOLD                 181

#define BINV_NEWTON_THRESHOLD              236
#define REDC_1_TO_REDC_2_THRESHOLD          58
#define REDC_2_TO_REDC_N_THRESHOLD          70

#define MU_DIV_QR_THRESHOLD               1442
#define MU_DIVAPPR_Q_THRESHOLD            1442
#define MUPI_DIV_QR_THRESHOLD               63
#define MU_BDIV_QR_THRESHOLD              1442
#define MU_BDIV_Q_THRESHOLD               1470

#define POWM_SEC_TABLE  1,14,187,257,1167

#define GET_STR_DC_THRESHOLD                12
#define GET_STR_PRECOMPUTE_THRESHOLD        25
#define SET_STR_DC_THRESHOLD              1562
#define SET_STR_PRECOMPUTE_THRESHOLD      3100

#define FAC_DSC_THRESHOLD                  537
#define FAC_ODD_THRESHOLD                  330

#define MATRIX22_STRASSEN_THRESHOLD         21
#define HGCD_THRESHOLD                      66
#define HGCD_APPR_THRESHOLD                 50
#define HGCD_REDUCE_THRESHOLD             2479
#define GCD_DC_THRESHOLD                   807
#define GCDEXT_DC_THRESHOLD              speed_measure() could not get 4 results within 1.0%
    unsorted         sorted
  0.000000522100    0.000000357360    is about 0.5%
  0.000052210       0.000035736
  0.000062404       0.000035863
  0.000041543       0.000036249
  0.000040533       0.000036392
  0.000039372       0.000036680
  0.000038820       0.000036999
  0.000038285       0.000037012
  0.000058774       0.000038254
  0.000076686       0.000038285
  0.000065439       0.000038355
  0.000065582       0.000038820
  0.000065984       0.000039372
  0.000077390       0.000039400
  0.000103237       0.000040193
  0.000095302       0.000040533
  0.000091513       0.000041543
  0.000093916       0.000050751
  0.000052881       0.000052210
  0.000050751       0.000052881
  0.000040193       0.000058774
  0.000039400       0.000062404
  0.000038254       0.000065439
  0.000038355       0.000065582
  0.000036999       0.000065984
  0.000037012       0.000076686
  0.000036680       0.000077390
  0.000036392       0.000091513
  0.000036249       0.000093916
  0.000035736       0.000095302
  0.000035863       0.000103237
Abort trap: 6

- I ran tuneup multiple times, and observed the same thing every time, but sometimes crashing at different points, for example:

Parameters for ./mpn/x86_64/coreihwl/gmp-mparam.h
Using: CPU cycle counter, supplemented by microsecond getrusage()
speed_precision 10000, speed_unittime 2.50e-10 secs, CPU freq 4000.00 MHz
DEFAULT_MAX_SIZE 1000, fft_max_size 50000

/* Generated by tuneup.c, 2018-08-05, gcc 4.2 */

#define MOD_1_NORM_THRESHOLD                 0  /* always */
#define MOD_1_UNNORM_THRESHOLD               0  /* always */
#define MOD_1N_TO_MOD_1_1_THRESHOLD          3
#define MOD_1U_TO_MOD_1_1_THRESHOLD          2
#define MOD_1_1_TO_MOD_1_2_THRESHOLD        10
#define MOD_1_2_TO_MOD_1_4_THRESHOLD        24
#define PREINV_MOD_1_TO_MOD_1_THRESHOLD      8
#define USE_PREINV_DIVREM_1                  1  /* native */
#define DIV_QR_1_NORM_THRESHOLD              1
#define DIV_QR_1_UNNORM_THRESHOLD        MP_SIZE_T_MAX  /* never */
#define DIV_QR_2_PI2_THRESHOLD           MP_SIZE_T_MAX  /* never */
#define DIVEXACT_1_THRESHOLD                 0  /* always (native) */
#define BMOD_1_TO_MOD_1_THRESHOLD           26

#define MUL_TOOM22_THRESHOLD                24
speed_measure() could not get 4 results within 1.0%
    unsorted         sorted
  0.000000422778    0.000000401615    is about 0.5%
  0.000042278       0.000040162
  0.000040367       0.000040367
  0.000040162       0.000041762
  0.000051583       0.000042101
  0.000049147       0.000042278
  0.000062677       0.000043307
  0.000069660       0.000045580
  0.000067762       0.000049147
  0.000043307       0.000050863
  0.000087139       0.000051567
  0.000041762       0.000051583
  0.000045580       0.000052470
  0.000052470       0.000060427
  0.000073760       0.000062677
  0.000051567       0.000067762
  0.000078883       0.000068289
  0.000068289       0.000068613
  0.000071343       0.000068780
  0.000087921       0.000069660
  0.000060427       0.000069844
  0.000068780       0.000070939
  0.000069844       0.000071343
  0.000089799       0.000071791
  0.000071791       0.000073760
  0.000042101       0.000078767
  0.000050863       0.000078883
  0.000078767       0.000087139
  0.000068613       0.000087921
  0.000107782       0.000089799
  0.000070939       0.000107782
Abort trap: 6

- I am attaching to this e-mail the entire log of my Terminal session with all the output of the configure, make, and tuneup commands run in the file gmp-6.1.2_BuildAttempt_08-05-18.txt, and also the config.log file.





-----
Stephen M. Sebeny
ssebeny at icloud.com <mailto:ssebeny at icloud.com>





More information about the gmp-bugs mailing list