--- math/mprime/Makefile (revision 501312) +++ math/mprime/Makefile (working copy) @@ -2,8 +2,7 @@ # $FreeBSD$ PORTNAME= mprime -PORTVERSION= 29.4b7 -PORTREVISION= 1 +PORTVERSION= 29.8b3 CATEGORIES= math benchmarks net MASTER_SITES= http://www.mersenne.org/ftp_root/gimps/ \ ftp://mersenne.org/gimps/ --- math/mprime/distinfo (revision 501312) +++ math/mprime/distinfo (working copy) @@ -1,3 +1,3 @@ -TIMESTAMP = 1542398806 -SHA256 (p95v294b7.source.zip) = 15682e9587af2b86647de9786f97dc8c5d7a4a679a0440f7d1d1936a48c5aa45 -SIZE (p95v294b7.source.zip) = 47931498 +TIMESTAMP = 1557620197 +SHA256 (p95v298b3.source.zip) = dac67702e45689e058519164222b6a1f0b32d9e7c88049f7c59f9699174105f0 +SIZE (p95v298b3.source.zip) = 51553788 --- math/mprime/files/patch-commonc.c (revision 501312) +++ math/mprime/files/patch-commonc.c (working copy) @@ -1,18 +1,19 @@ ---- commonc.c.orig 2016-09-14 03:33:00 UTC -+++ commonc.c -@@ -3247,13 +3247,13 @@ void tempFileName ( - /* From now on, we will use k and c to generate the filename. To reduce */ - /* upgrading problems, old save file names are renamed. */ +--- commonc.c.orig 2019-04-11 17:46:50.000000000 +0300 ++++ commonc.c 2019-05-12 03:52:33.503858000 +0300 +@@ -386,6 +386,8 @@ + CPU_L2_CACHE_INCLUSIVE = -1; + CPU_L3_CACHE_INCLUSIVE = -1; + CPU_L4_CACHE_INCLUSIVE = -1; ++ ++#if HWLOC_API_VERSION >= 0x00020000 + for (depth = 0; depth < hwloc_topology_get_depth (hwloc_topology); depth++) { + for (i = 0; i < (int) hwloc_get_nbobjs_by_depth (hwloc_topology, depth); i++) { + hwloc_obj_t obj; +@@ -423,6 +425,7 @@ + } + } + } ++#endif -- if (w->k != 1.0 || abs(w->c) != 1) { -+ if (w->k != 1.0 || labs(w->c) != 1) { - char v258_filename[32]; - strcpy (v258_filename, buf); - buf[1] = 0; - if (w->k != 1.0) sprintf (buf+strlen(buf), "%g", fmod (w->k, 1000000.0)); - sprintf (buf+strlen(buf), "_%ld", p); -- if (abs(w->c) != 1) sprintf (buf+strlen(buf), "_%d", abs(w->c) % 1000); -+ if (labs(w->c) != 1) sprintf (buf+strlen(buf), "_%ld", labs(w->c) % 1000); - rename (v258_filename, buf); - if (buf[0] == 'p') { - v258_filename[0] = buf[0] = 'q'; + /* Overwrite the cache info calculated via CPUID as hwloc's info is more detailed and I believe more reliable. */ + /* We are transitioning away from using the cache size global variables computed by the CPUID code. */ --- math/mprime/files/patch-ecm.c (revision 501312) +++ math/mprime/files/patch-ecm.c (nonexistent) @@ -1,11 +0,0 @@ ---- ecm.c.orig 2016-05-02 04:44:52 UTC -+++ ecm.c -@@ -1068,7 +1068,7 @@ int setN ( - } - - if (IniGetInt (INI_FILE, "PhiExtensions", 0) && -- w->k == 1.0 && abs(w->c) == 1 && (w->n%3) == 0) { /*=== this input means Phi(3,-b^(n/3)) ===*/ -+ w->k == 1.0 && labs(w->c) == 1 && (w->n%3) == 0) { /*=== this input means Phi(3,-b^(n/3)) ===*/ - giant tmp = allocgiant ((bits >> 5) + 5); - if (tmp == NULL) return (OutOfMemory (thread_num)); - ultog (w->b, tmp); --- math/mprime/files/patch-gwnum_gwnum.c (revision 501312) +++ math/mprime/files/patch-gwnum_gwnum.c (nonexistent) @@ -1,126 +0,0 @@ ---- gwnum/gwnum.c.orig 2016-10-30 14:22:26 UTC -+++ gwnum/gwnum.c -@@ -865,17 +865,17 @@ - log2k = log2 (k); - logbk = logb (k); - log2b = log2 (b); -- log2c = log2 (abs (c)); -+ log2c = log2 (labs (c)); - log2maxmulbyconst = log2 (gwdata->maxmulbyconst); - - /* First, see what FFT length we would get if we emulate the k*b^n+c modulo */ --/* with a zero padded FFT. If k is 1 and abs (c) is 1 then we can skip this */ -+/* with a zero padded FFT. If k is 1 and labs (c) is 1 then we can skip this */ - /* loop as we're sure to find an IBDWT that will do the job. Also skip if called from */ - /* gwmap_fftlen_to_max_exponent (n = 0) or we are QAing IBDWT FFTs (qa_pick_nth_fft >= 1000) */ - - again: zpad_jmptab = NULL; - generic_jmptab = NULL; -- if (! gwdata->force_general_mod && (k > 1.0 || (n > 0 && n < 500) || abs (c) > 1) && gwdata->qa_pick_nth_fft < 1000) { -+ if (! gwdata->force_general_mod && (k > 1.0 || (n > 0 && n < 500) || labs (c) > 1) && gwdata->qa_pick_nth_fft < 1000) { - - /* Use the proper 2^N-1 jmptable */ - -@@ -1915,13 +1915,13 @@ - - if (c == 0) - gcd = 0; -- else if (k == 1.0 || abs (c) == 1) -+ else if (k == 1.0 || labs (c) == 1) - gcd = 1; - else { - stackgiant(kg,2); - stackgiant(cg,2); - dbltog (k, kg); -- itog (abs (c), cg); -+ itog (labs (c), cg); - gcdg (kg, cg); - gcd = cg->n[0]; - } -@@ -1935,7 +1935,7 @@ - - if (gcd == 1 && - k * gwdata->maxmulbyconst <= MAX_ZEROPAD_K && -- abs (c) * gwdata->maxmulbyconst <= MAX_ZEROPAD_C && -+ labs (c) * gwdata->maxmulbyconst <= MAX_ZEROPAD_C && - log2(b) * (double) n >= 350.0 && - (b == 2 || (gwdata->cpu_flags & (CPU_AVX | CPU_SSE2))) && - !gwdata->force_general_mod) { -@@ -2555,12 +2555,12 @@ - gwdata->NUM_B_PER_SMALL_WORD = (unsigned long) gwdata->avg_num_b_per_word; - - /* Set a flag if this is a rational FFT. That is, an FFT where all the */ --/* weighting factors are 1.0. This happens when abs(c) is 1 and every */ -+/* weighting factors are 1.0. This happens when labs(c) is 1 and every */ - /* FFT word has the same number of b's. The assembly code can make some */ - /* obvious optimizations when all the FFT weights are one. */ - - gwdata->RATIONAL_FFT = asm_data->RATIONAL_FFT = -- ((double) gwdata->NUM_B_PER_SMALL_WORD == gwdata->avg_num_b_per_word) && (abs (c) == 1); -+ ((double) gwdata->NUM_B_PER_SMALL_WORD == gwdata->avg_num_b_per_word) && (labs (c) == 1); - - /* Remember the maximum number of bits per word that this FFT length */ - /* supports. We this in gwnear_fft_limit. Note that zero padded FFTs */ -@@ -3814,7 +3814,7 @@ - if (gwdata->ZERO_PADDED_FFT || - 3.0 * gwdata->NUM_B_PER_SMALL_WORD * log2 (b) > - 2.0 * ((gwdata->NUM_B_PER_SMALL_WORD + 1) * log2 (b) - 1) + -- 0.6 * log2 (gwdata->FFTLEN) + log2 (k) + 1.7 * log2 (abs (c))) -+ 0.6 * log2 (gwdata->FFTLEN) + log2 (k) + 1.7 * log2 (labs (c))) - asm_data->SPREAD_CARRY_OVER_EXTRA_WORDS = FALSE; - else - asm_data->SPREAD_CARRY_OVER_EXTRA_WORDS = TRUE; -@@ -6409,7 +6409,7 @@ - sprintf (buf, "%.0f", k + c); - else if (k != 1.0) - sprintf (buf, "%.0f*%lu^%lu%c%lu", k, b, n, -- c < 0 ? '-' : '+', (unsigned long) abs (c)); -+ c < 0 ? '-' : '+', (unsigned long) labs (c)); - else if (b == 2 && c == -1) - sprintf (buf, "M%lu", n); - else { -@@ -6419,7 +6419,7 @@ - sprintf (buf, "F%lu", cnt); - else - sprintf (buf, "%lu^%lu%c%lu", b, n, -- c < 0 ? '-' : '+', (unsigned long) abs (c)); -+ c < 0 ? '-' : '+', (unsigned long) labs (c)); - } - } - -@@ -6504,7 +6504,7 @@ - weighted_bits_per_output_word = - 2.0 * ((b_per_input_word + 1.0) * log2b - 1.0) + - 0.6 * log2 (gwdata->FFTLEN) + -- log2 (gwdata->k) + 1.7 * log2 (abs (gwdata->c)); -+ log2 (gwdata->k) + 1.7 * log2 (labs (gwdata->c)); - if (gwdata->k == 1.0 && gwdata->n % gwdata->FFTLEN == 0) - weighted_bits_per_output_word -= ((log2b <= 4.0) ? log2b : 1.4 * log2b); - else if (num_big_words == 1 && gwdata->k > 1.0) -@@ -6911,7 +6911,7 @@ - { - unsigned long word, b_in_word; - -- ASSERTG (gwdata->k == 1.0 || abs (gwdata->c) == 1); -+ ASSERTG (gwdata->k == 1.0 || labs (gwdata->c) == 1); - - /* In a zero-padded FFT, the value is added into ZPAD0 */ - -@@ -7177,7 +7177,7 @@ - /* Small numbers can also be optimized for many moduli by zeroing all the */ - /* FFT data using memset and then setting only the affected FFT elements. */ - -- else if (a->sign == 1 && (gwdata->k == 1.0 || abs (gwdata->c) == 1)) { -+ else if (a->sign == 1 && (gwdata->k == 1.0 || labs (gwdata->c) == 1)) { - uint32_t low_addin; - int i; - -@@ -7802,7 +7802,7 @@ - /* Handle negative input values */ - - neg ^= (g->sign < 0); -- g->sign = abs (g->sign); -+ g->sign = labs (g->sign); - - /* If number is bigger than the modulus, do a mod using shifts and adds */ - /* This will get us close to the right answer. */ --- math/mprime/files/patch-gwnum_gwutil.c (revision 501312) +++ math/mprime/files/patch-gwnum_gwutil.c (nonexistent) @@ -1,11 +0,0 @@ ---- gwnum/gwutil.c.orig 2016-09-07 01:25:20 UTC -+++ gwnum/gwutil.c -@@ -17,7 +17,7 @@ - #include - #include - #endif --#ifdef __APPLE__ -+#if defined (__APPLE__) || defined (__FreeBSD__) - #include - #endif - #include "gwcommon.h" --- math/mprime/files/patch-gwnum_makebsd64 (revision 501312) +++ math/mprime/files/patch-gwnum_makebsd64 (nonexistent) @@ -1,21 +0,0 @@ ---- gwnum/makebsd64.orig 2017-04-25 17:00:32.000000000 +0300 -+++ gwnum/makebsd64 2019-02-16 02:43:48.159335000 +0300 -@@ -1,13 +1,13 @@ - # Makefile for FreeBSD 10.0 64-bit gwnum library - # - --CC = cc --CFLAGS = -I.. -I../sqlite-amalgamation-3180000 -DX86_64 -O2 -+#CC = cc -+CFLAGS += -I.. -I../sqlite-amalgamation-3180000 -DX86_64 - --CPP = cc --CPPFLAGS = -I.. -I../qd -DX86_64 -O2 -+CPP = ${CXX} -+CPPFLAGS = ${CXXFLAGS} -I.. -I../qd -DX86_64 - --AR = ar -+#AR = ar - - LINUXOBJS = cpuid.o gwnum.o gwtables.o gwthread.o gwini.o gwbench.o gwutil.o gwdbldbl.o giants.o ecmstag1.o - --- math/mprime/files/patch-gwnum_makemsys (revision 501312) +++ math/mprime/files/patch-gwnum_makemsys (nonexistent) @@ -1,21 +0,0 @@ ---- gwnum/makemsys.orig 2016-10-30 18:42:08 UTC -+++ gwnum/makemsys -@@ -1,13 +1,13 @@ - # Makefile for Mingw/msys gwnum library - # - --CC = gcc --CFLAGS = -I.. -I../sqlite-amalgamation-3180000 -O2 -march=i486 -malign-double -+#CC = cc -+CFLAGS += -I.. -I../sqlite-amalgamation-3180000 -march=i486 - --CPP = g++ --CPPFLAGS = -I.. -I../qd -O2 -march=i486 -malign-double -+CPP = ${CXX} -+CPPFLAGS = ${CXXFLAGS} -I.. -I../qd -march=i486 - --AR = ar -+#AR = ar - - LINUXOBJS = cpuid.o gwnum.o gwtables.o gwthread.o gwini.o gwbench.o gwutil.o gwdbldbl.o giants.o ecmstag1.o - --- math/mprime/files/patch-gwtest.c (revision 501312) +++ math/mprime/files/patch-gwtest.c (nonexistent) @@ -1,80 +0,0 @@ ---- gwtest.c.orig 2015-12-14 04:55:34 UTC -+++ gwtest.c -@@ -306,7 +306,7 @@ void test_it_all ( - gwstartnextfft (&gwdata, (i & 3) == 2); - - /* Test gwsetaddin without and with POSTFFT set */ -- if ((i == 45 || i == 46) && abs (c) == 1) -+ if ((i == 45 || i == 46) && labs (c) == 1) - gwsetaddin (&gwdata, -31); - - /* Test several different ways to square a number */ -@@ -326,7 +326,7 @@ void test_it_all ( - /* Remember maximum difference */ - diff = fabs (gwsuminp (&gwdata, x) - gwsumout (&gwdata, x)); - if (diff > maxdiff) maxdiff = diff; -- if ((i == 45 || i == 46) && abs (c) == 1) -+ if ((i == 45 || i == 46) && labs (c) == 1) - gwsetaddin (&gwdata, 0); - } - if (gwdata.MAXDIFF < 1e50) -@@ -347,7 +347,7 @@ void test_it_all ( - /* Test square and mul carefully */ - - gwfree (&gwdata, x3); gwfree (&gwdata, x4); -- if (abs (c) == 1) gwsetaddin (&gwdata, -42); -+ if (labs (c) == 1) gwsetaddin (&gwdata, -42); - gwsquare_carefully (&gwdata, x); - diff = fabs (gwsuminp (&gwdata, x) - gwsumout (&gwdata, x)); - if (diff > maxdiff) maxdiff = diff; -@@ -355,7 +355,7 @@ void test_it_all ( - gwfree (&gwdata, gwdata.GW_RANDOM); gwdata.GW_RANDOM = NULL; - diff = fabs (gwsuminp (&gwdata, x) - gwsumout (&gwdata, x)); - if (diff > maxdiff) maxdiff = diff; -- if (abs (c) == 1) gwsetaddin (&gwdata, 0); -+ if (labs (c) == 1) gwsetaddin (&gwdata, 0); - - /* Test gwaddquick, gwsubquick */ - -@@ -499,7 +499,7 @@ void test_it ( - gwstartnextfft (gwdata, (i & 3) == 2); - - /* Test gwsetaddin without and with POSTFFT set */ -- if ((i == 45 || i == 46) && abs (gwdata->c) == 1) -+ if ((i == 45 || i == 46) && labs (gwdata->c) == 1) - gwsetaddin (gwdata, -31); - - /* Test several different ways to square a number */ -@@ -522,7 +522,7 @@ void test_it ( - - /* Square number (and do add-in) using giants code */ - squaregi (&gwdata->gdata, g); -- if ((i == 45 || i == 46) && abs (gwdata->c) == 1) { -+ if ((i == 45 || i == 46) && labs (gwdata->c) == 1) { - iaddg (-31, g); - gwsetaddin (gwdata, 0); - } -@@ -600,12 +600,12 @@ void test_it ( - /* Test square and mul carefully */ - - gwfree (gwdata, x3); gwfree (gwdata, x4); -- if (abs (gwdata->c) == 1) gwsetaddin (gwdata, -42); -+ if (labs (gwdata->c) == 1) gwsetaddin (gwdata, -42); - gwsquare_carefully (gwdata, x); - diff = fabs (gwsuminp (gwdata, x) - gwsumout (gwdata, x)); - if (diff > maxdiff) maxdiff = diff; - squaregi (&gwdata->gdata, g); -- if (abs (gwdata->c) == 1) iaddg (-42, g); -+ if (labs (gwdata->c) == 1) iaddg (-42, g); - specialmodg (gwdata, g); - if (CHECK_OFTEN) compare (thread_num, gwdata, x, g); - gwmul_carefully (gwdata, x, x); -@@ -613,7 +613,7 @@ void test_it ( - diff = fabs (gwsuminp (gwdata, x) - gwsumout (gwdata, x)); - if (diff > maxdiff) maxdiff = diff; - squaregi (&gwdata->gdata, g); -- if (abs (gwdata->c) == 1) { iaddg (-42, g); gwsetaddin (gwdata, 0); } -+ if (labs (gwdata->c) == 1) { iaddg (-42, g); gwsetaddin (gwdata, 0); } - specialmodg (gwdata, g); - if (CHECK_OFTEN) compare (thread_num, gwdata, x, g); - --- math/mprime/files/patch-linux64_makebsd (revision 501312) +++ math/mprime/files/patch-linux64_makebsd (nonexistent) @@ -1,29 +0,0 @@ ---- linux64/makebsd.orig 2016-10-30 18:42:16 UTC -+++ linux64/makebsd -@@ -1,19 +1,19 @@ - # Makefile for FreeBSD 10.0 64-bit mprime - # --# Install the curl package. This will be installed to /usr/local by default. -+# Install the curl package. This will be installed to %%LOCALBASE%% by default. - # - # Hwloc can be downloaded from https://www.open-mpi.org/projects/hwloc/ - # Configure hwloc with --enable-static --disable-shared --disable-pci --disable-cuda --disable-gl - # - --CC = cc --CFLAGS = -I.. -I../gwnum -I/usr/local/include -DX86_64 -O2 -+#CC = cc -+CFLAGS += -I.. -I../gwnum -I%%LOCALBASE%%/include -DX86_64 - --CPP = cc --CPPFLAGS = -I.. -I../gwnum -DX86_64 -O2 -+CPP = ${CXX} -+CPPFLAGS = ${CXXFLAGS} -I.. -I../gwnum -DX86_64 - --LFLAGS = -L/usr/local/lib -Wl,-M --LIBS = ../gwnum/gwnum.a ../gwnum/gwnum.ld -lm -lpthread /usr/local/lib/libhwloc.a -lcurl -lstdc++ -lcompat -lgmp -+LFLAGS += -L%%LOCALBASE%%/lib ${LDFLAGS} -+LIBS += ../gwnum/gwnum.a ../gwnum/gwnum.ld -lm -lpthread -lhwloc -lcurl -lcompat -lgmp - - FACTOROBJ = factor64.o - OBJS = prime.o menu.o --- math/mprime/files/patch-linux_makebsd (revision 501312) +++ math/mprime/files/patch-linux_makebsd (nonexistent) @@ -1,23 +0,0 @@ ---- linux/makebsd.orig 2016-10-30 18:42:16 UTC -+++ linux/makebsd -@@ -4,14 +4,14 @@ - # Configure hwloc with --enable-static --disable-shared --disable-pci --disable-cuda --disable-gl - # - --CC = gcc --CFLAGS = -I.. -I../gwnum -I/usr/local/include -O2 -march=i486 -malign-double -+#CC = cc -+CFLAGS = -I.. -I../gwnum -I%%LOCALBASE%%/include -O2 -march=i486 - --CPP = g++ --CPPFLAGS = -I.. -I../gwnum -I/usr/local/include -O2 -march=i486 -malign-double -+CPP = ${CXX} -+CPPFLAGS = ${CXXFLAGS} -I.. -I../gwnum -I%%LOCALBASE%%/include -O2 -march=i486 - --LFLAGS = -Wl,-M -L/usr/local/lib --LIBS = ../gwnum/gwnum.a ../gwnum/gwnum.ld -lm -lpthread -Wl,-Bstatic /usr/local/lib/libhwloc.a -Wl,-Bstatic /usr/local/lib/libcurl.a -lz -lcompat -lstdc++ -Wl,-Bdynamic -lssl -lgmp -+LFLAGS = -L%%LOCALBASE%%/lib ${LDFLAGS} -+LIBS = ../gwnum/gwnum.a ../gwnum/gwnum.ld -lm -lpthread -lcurl -lhwloc -lz -lcompat -lssl -lgmp - - FACTOROBJ = factor32.o - OBJS = prime.o menu.o