Update to MPFR 4.2.0-p12

This commit is contained in:
Jerry James 2023-07-18 15:09:15 -06:00
parent 820b49a7d3
commit 1d54b0b669
2 changed files with 155 additions and 1 deletions

View File

@ -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";
}

View File

@ -1,7 +1,7 @@
Summary: C library for multiple-precision floating-point computations
Name: mpfr
Version: 4.2.0
Release: 1%{?dist}
Release: 2%{?dist}
URL: https://www.mpfr.org/
License: LGPL-3.0-or-later
@ -22,6 +22,9 @@ Source0: https://www.mpfr.org/%{name}-%{version}/%{name}-%{version}.tar.xz
# - pow_general.patch
# - compound.patch
# - printf_large_prec_for_g.patch
# - gcc-pr106155-workaround.patch
# - inp_str-nullchar.patch
# - strtofr-nullchar.patch
Patch0: https://www.mpfr.org/%{name}-%{version}/allpatches
%description
@ -104,6 +107,9 @@ export LD_LIBRARY_PATH=%{buildroot}%{_libdir}
%{_infodir}/mpfr.info*
%changelog
* Tue Jul 18 2023 Jerry James <loganjerry@gmail.com> - 4.2.0-2
- Update to MPFR 4.2.0-p12
* Wed Jul 12 2023 Jerry James <loganjerry@gmail.com> - 4.2.0-1
- Update to MPFR 4.2.0-p9