Fix compatibility with glibc 2.41 (resolve sinpi name clash)
This commit is contained in:
parent
8bbf00bf46
commit
23474a3864
2 changed files with 70 additions and 1 deletions
62
00446-Resolve-sinpi-name-clash-with-libm.patch
Normal file
62
00446-Resolve-sinpi-name-clash-with-libm.patch
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
From f1f8bcec93f3ec6027ddfb523a0faf9ddd9c72d6 Mon Sep 17 00:00:00 2001
|
||||
From: Victor Stinner <vstinner@python.org>
|
||||
Date: Wed, 18 Dec 2024 14:31:08 +0100
|
||||
Subject: [PATCH] 00446: Resolve sinpi name clash with libm
|
||||
|
||||
bpo-36106: Resolve sinpi name clash with libm (IEEE-754 violation). (GH-12027)
|
||||
|
||||
The standard math library (libm) may follow IEEE-754 recommendation to
|
||||
include an implementation of sinPi(), i.e. sinPi(x):=sin(pi*x).
|
||||
And this triggers a name clash, found by FreeBSD developer
|
||||
Steve Kargl, who worken on putting sinpi into libm used on FreeBSD
|
||||
(it has to be named "sinpi", not "sinPi", cf. e.g.
|
||||
https://en.cppreference.com/w/c/experimental/fpext4).
|
||||
|
||||
(cherry picked from commit f57cd8288dbe6aba99c057f37ad6d58f8db75350)
|
||||
---
|
||||
Modules/mathmodule.c | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/Modules/mathmodule.c b/Modules/mathmodule.c
|
||||
index 95ea4f7fef8..670f1a04ad6 100644
|
||||
--- a/Modules/mathmodule.c
|
||||
+++ b/Modules/mathmodule.c
|
||||
@@ -67,7 +67,7 @@ static const double sqrtpi = 1.772453850905516027298167483341145182798;
|
||||
static const double logpi = 1.144729885849400174143427351353058711647;
|
||||
|
||||
static double
|
||||
-sinpi(double x)
|
||||
+m_sinpi(double x)
|
||||
{
|
||||
double y, r;
|
||||
int n;
|
||||
@@ -296,7 +296,7 @@ m_tgamma(double x)
|
||||
integer. */
|
||||
if (absx > 200.0) {
|
||||
if (x < 0.0) {
|
||||
- return 0.0/sinpi(x);
|
||||
+ return 0.0/m_sinpi(x);
|
||||
}
|
||||
else {
|
||||
errno = ERANGE;
|
||||
@@ -320,7 +320,7 @@ m_tgamma(double x)
|
||||
}
|
||||
z = z * lanczos_g / y;
|
||||
if (x < 0.0) {
|
||||
- r = -pi / sinpi(absx) / absx * exp(y) / lanczos_sum(absx);
|
||||
+ r = -pi / m_sinpi(absx) / absx * exp(y) / lanczos_sum(absx);
|
||||
r -= z * r;
|
||||
if (absx < 140.0) {
|
||||
r /= pow(y, absx - 0.5);
|
||||
@@ -390,7 +390,7 @@ m_lgamma(double x)
|
||||
r += (absx - 0.5) * (log(absx + lanczos_g - 0.5) - 1);
|
||||
if (x < 0.0)
|
||||
/* Use reflection formula to get value for negative x. */
|
||||
- r = logpi - log(fabs(sinpi(absx))) - log(absx) - r;
|
||||
+ r = logpi - log(fabs(m_sinpi(absx))) - log(absx) - r;
|
||||
if (Py_IS_INFINITY(r))
|
||||
errno = ERANGE;
|
||||
return r;
|
||||
--
|
||||
2.47.1
|
||||
|
||||
|
|
@ -17,7 +17,7 @@ URL: https://www.python.org/
|
|||
#global prerel ...
|
||||
%global upstream_version %{general_version}%{?prerel}
|
||||
Version: %{general_version}%{?prerel:~%{prerel}}
|
||||
Release: 39%{?dist}
|
||||
Release: 40%{?dist}
|
||||
# Python is Python
|
||||
# pip MIT is and bundles:
|
||||
# appdirs: MIT
|
||||
|
|
@ -786,6 +786,10 @@ Patch443: 00443-gh-124651-quote-template-strings-in-venv-activation-scripts.patc
|
|||
# Tests are adjusted because Python <3.9 don't support scoped IPv6 addresses.
|
||||
Patch444: 00444-security-fix-for-cve-2024-11168.patch
|
||||
|
||||
# 00446 # f1f8bcec93f3ec6027ddfb523a0faf9ddd9c72d6
|
||||
# Resolve sinpi name clash with libm
|
||||
Patch446: 00446-Resolve-sinpi-name-clash-with-libm.patch
|
||||
|
||||
# (New patches go here ^^^)
|
||||
#
|
||||
# When adding new patches to "python" and "python3" in Fedora, EL, etc.,
|
||||
|
|
@ -2055,6 +2059,9 @@ CheckPython optimized
|
|||
# ======================================================
|
||||
|
||||
%changelog
|
||||
* Wed Dec 18 2024 Victor Stinner <vstinner@python.org> - 3.6.15-40
|
||||
- Fix compatibility with glibc 2.41 (resolve sinpi name clash).
|
||||
|
||||
* Thu Nov 14 2024 Lumír Balhar <lbalhar@redhat.com> - 3.6.15-39
|
||||
- Security fix for CVE-2024-11168
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue