diff --git a/mingw-w64-mpfr/PKGBUILD b/mingw-w64-mpfr/PKGBUILD index b67d041077..d86a143f2f 100644 --- a/mingw-w64-mpfr/PKGBUILD +++ b/mingw-w64-mpfr/PKGBUILD @@ -5,7 +5,7 @@ _realname=mpfr pkgbase=mingw-w64-${_realname} pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") _pkgver=4.2.0 -pkgver=${_pkgver}.p9 +pkgver=${_pkgver}.p12 pkgrel=1 pkgdesc="Multiple-precision floating-point library (mingw-w64)" arch=('any') @@ -19,7 +19,7 @@ source=(https://ftp.gnu.org/gnu/mpfr/${_realname}-${_pkgver}.tar.xz{,.sig} patches.diff) # wget https://www.mpfr.org/mpfr-4.2.0/allpatches -O patches.diff sha256sums=('06a378df13501248c1b2db5aa977a2c8126ae849a9d9b7be2546fb4a9c26d993' 'SKIP' - '06da0b2a56e365f7e74ac241926f61d2574a0754548ff8116e9ddee0dabacda0') + 'a9099cee74188d5f522b7b3fca0097196c6dd38126f8f042d233010cbf92e8d0') validpgpkeys=('A534BE3F83E241D918280AEB5831D11A0D4DB02A') prepare() { diff --git a/mingw-w64-mpfr/patches.diff b/mingw-w64-mpfr/patches.diff index 07fcf2592c..75304956be 100644 --- a/mingw-w64-mpfr/patches.diff +++ b/mingw-w64-mpfr/patches.diff @@ -2044,3 +2044,151 @@ diff -Naurd mpfr-4.2.0-a/tests/tsprintf.c mpfr-4.2.0-b/tests/tsprintf.c test_locale (); if (getenv ("MPFR_CHECK_LIBC_PRINTF")) +diff -Naurd mpfr-4.2.0-a/PATCHES mpfr-4.2.0-b/PATCHES +--- mpfr-4.2.0-a/PATCHES 2023-07-17 13:54:11.126789510 +0000 ++++ mpfr-4.2.0-b/PATCHES 2023-07-17 13:54:11.170788387 +0000 +@@ -0,0 +1 @@ ++gcc-pr106155-workaround +diff -Naurd mpfr-4.2.0-a/VERSION mpfr-4.2.0-b/VERSION +--- mpfr-4.2.0-a/VERSION 2023-05-17 17:19:35.596201603 +0000 ++++ mpfr-4.2.0-b/VERSION 2023-07-17 13:54:11.170788387 +0000 +@@ -1 +1 @@ +-4.2.0-p9 ++4.2.0-p10 +diff -Naurd mpfr-4.2.0-a/src/mpfr.h mpfr-4.2.0-b/src/mpfr.h +--- mpfr-4.2.0-a/src/mpfr.h 2023-05-17 17:19:35.592201606 +0000 ++++ mpfr-4.2.0-b/src/mpfr.h 2023-07-17 13:54:11.170788387 +0000 +@@ -27,7 +27,7 @@ + #define MPFR_VERSION_MAJOR 4 + #define MPFR_VERSION_MINOR 2 + #define MPFR_VERSION_PATCHLEVEL 0 +-#define MPFR_VERSION_STRING "4.2.0-p9" ++#define MPFR_VERSION_STRING "4.2.0-p10" + + /* User macros: + MPFR_USE_FILE: Define it to make MPFR define functions dealing +diff -Naurd mpfr-4.2.0-a/src/version.c mpfr-4.2.0-b/src/version.c +--- mpfr-4.2.0-a/src/version.c 2023-05-17 17:19:35.592201606 +0000 ++++ mpfr-4.2.0-b/src/version.c 2023-07-17 13:54:11.170788387 +0000 +@@ -25,5 +25,5 @@ + const char * + mpfr_get_version (void) + { +- return "4.2.0-p9"; ++ return "4.2.0-p10"; + } +diff -Naurd mpfr-4.2.0-a/tests/tfpif.c mpfr-4.2.0-b/tests/tfpif.c +--- mpfr-4.2.0-a/tests/tfpif.c 2023-01-05 17:09:48.000000000 +0000 ++++ mpfr-4.2.0-b/tests/tfpif.c 2023-07-17 13:54:11.162788591 +0000 +@@ -277,7 +277,10 @@ + + for (i = 0; i < BAD; i++) + { +- mpfr_exp_t emax; ++ mpfr_exp_t INITIALIZED(emax); ++ /* The INITIALIZED() is a workaround for GCC bug 106155: ++ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106155 */ ++ + /* For i == 6, mpfr_prec_t needs at least a 65-bit precision + (64 value bits + 1 sign bit) to avoid a failure. */ + if (i == 6 && MPFR_PREC_BITS > 64) +diff -Naurd mpfr-4.2.0-a/PATCHES mpfr-4.2.0-b/PATCHES +--- mpfr-4.2.0-a/PATCHES 2023-07-17 13:56:17.375566485 +0000 ++++ mpfr-4.2.0-b/PATCHES 2023-07-17 13:56:17.415565464 +0000 +@@ -0,0 +1 @@ ++inp_str-nullchar +diff -Naurd mpfr-4.2.0-a/VERSION mpfr-4.2.0-b/VERSION +--- mpfr-4.2.0-a/VERSION 2023-07-17 13:54:11.170788387 +0000 ++++ mpfr-4.2.0-b/VERSION 2023-07-17 13:56:17.415565464 +0000 +@@ -1 +1 @@ +-4.2.0-p10 ++4.2.0-p11 +diff -Naurd mpfr-4.2.0-a/src/inp_str.c mpfr-4.2.0-b/src/inp_str.c +--- mpfr-4.2.0-a/src/inp_str.c 2023-01-05 17:09:48.000000000 +0000 ++++ mpfr-4.2.0-b/src/inp_str.c 2023-07-17 13:56:17.407565669 +0000 +@@ -69,6 +69,15 @@ + if (c == EOF || isspace (c)) + break; + str[str_size++] = (unsigned char) c; ++ /* If c is '\0' (while not being a whitespace character), the word will ++ not have a valid format. But in the context of a string in memory, ++ '\0' is a terminating null character. So, to avoid ending with a ++ valid string format (like "1" with ignored characters after the ++ terminating null character), we need to make sure that the string ++ does not have a valid format; so let's start it with '*'. Note ++ that we should read the full word, so we cannot break. */ ++ if (MPFR_UNLIKELY (c == '\0')) ++ str[0] = '*'; + if (str_size == (size_t) -1) + break; + c = getc (stream); +diff -Naurd mpfr-4.2.0-a/src/mpfr.h mpfr-4.2.0-b/src/mpfr.h +--- mpfr-4.2.0-a/src/mpfr.h 2023-07-17 13:54:11.170788387 +0000 ++++ mpfr-4.2.0-b/src/mpfr.h 2023-07-17 13:56:17.411565566 +0000 +@@ -27,7 +27,7 @@ + #define MPFR_VERSION_MAJOR 4 + #define MPFR_VERSION_MINOR 2 + #define MPFR_VERSION_PATCHLEVEL 0 +-#define MPFR_VERSION_STRING "4.2.0-p10" ++#define MPFR_VERSION_STRING "4.2.0-p11" + + /* User macros: + MPFR_USE_FILE: Define it to make MPFR define functions dealing +diff -Naurd mpfr-4.2.0-a/src/version.c mpfr-4.2.0-b/src/version.c +--- mpfr-4.2.0-a/src/version.c 2023-07-17 13:54:11.170788387 +0000 ++++ mpfr-4.2.0-b/src/version.c 2023-07-17 13:56:17.415565464 +0000 +@@ -25,5 +25,5 @@ + const char * + mpfr_get_version (void) + { +- return "4.2.0-p10"; ++ return "4.2.0-p11"; + } +diff -Naurd mpfr-4.2.0-a/PATCHES mpfr-4.2.0-b/PATCHES +--- mpfr-4.2.0-a/PATCHES 2023-07-17 13:57:28.913739912 +0000 ++++ mpfr-4.2.0-b/PATCHES 2023-07-17 13:57:28.961738687 +0000 +@@ -0,0 +1 @@ ++strtofr-nullchar +diff -Naurd mpfr-4.2.0-a/VERSION mpfr-4.2.0-b/VERSION +--- mpfr-4.2.0-a/VERSION 2023-07-17 13:56:17.415565464 +0000 ++++ mpfr-4.2.0-b/VERSION 2023-07-17 13:57:28.961738687 +0000 +@@ -1 +1 @@ +-4.2.0-p11 ++4.2.0-p12 +diff -Naurd mpfr-4.2.0-a/src/mpfr.h mpfr-4.2.0-b/src/mpfr.h +--- mpfr-4.2.0-a/src/mpfr.h 2023-07-17 13:56:17.411565566 +0000 ++++ mpfr-4.2.0-b/src/mpfr.h 2023-07-17 13:57:28.957738789 +0000 +@@ -27,7 +27,7 @@ + #define MPFR_VERSION_MAJOR 4 + #define MPFR_VERSION_MINOR 2 + #define MPFR_VERSION_PATCHLEVEL 0 +-#define MPFR_VERSION_STRING "4.2.0-p11" ++#define MPFR_VERSION_STRING "4.2.0-p12" + + /* User macros: + MPFR_USE_FILE: Define it to make MPFR define functions dealing +diff -Naurd mpfr-4.2.0-a/src/strtofr.c mpfr-4.2.0-b/src/strtofr.c +--- mpfr-4.2.0-a/src/strtofr.c 2023-01-05 17:09:48.000000000 +0000 ++++ mpfr-4.2.0-b/src/strtofr.c 2023-07-17 13:57:28.949738993 +0000 +@@ -242,7 +242,10 @@ + pstr->mantissa = NULL; + + /* Optional leading whitespace */ +- while (isspace((unsigned char) *str)) str++; ++ /* For non-"C" locales, the ISO C standard allows isspace(0) to ++ return true. So we need to stop explicitly on '\0'. */ ++ while (*str != '\0' && isspace ((unsigned char) *str)) ++ str++; + + /* An optional sign `+' or `-' */ + pstr->negative = (*str == '-'); +diff -Naurd mpfr-4.2.0-a/src/version.c mpfr-4.2.0-b/src/version.c +--- mpfr-4.2.0-a/src/version.c 2023-07-17 13:56:17.415565464 +0000 ++++ mpfr-4.2.0-b/src/version.c 2023-07-17 13:57:28.961738687 +0000 +@@ -25,5 +25,5 @@ + const char * + mpfr_get_version (void) + { +- return "4.2.0-p11"; ++ return "4.2.0-p12"; + }