python3*: backport fix for armv7l, aarch64, riscv64
Co-Authored-By: Florian Klink <flokli@flokli.de> Signed-off-by: Yureka <fork-nixpkgs-with@yuka.dev>
This commit is contained in:
parent
79316737d6
commit
8cfb27bc21
pkgs/development/interpreters/python/cpython
@ -0,0 +1,53 @@
|
||||
From 04bfb877c8ccbd431dcae429abb487c1e3390801 Mon Sep 17 00:00:00 2001
|
||||
From: Yureka <yuka@yuka.dev>
|
||||
Date: Sun, 30 Jun 2024 09:37:49 +0200
|
||||
Subject: [PATCH] Fix build with _PY_SHORT_FLOAT_REPR == 0
|
||||
|
||||
---
|
||||
Include/internal/pycore_dtoa.h | 10 +++-------
|
||||
1 file changed, 3 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/Include/internal/pycore_dtoa.h b/Include/internal/pycore_dtoa.h
|
||||
index 4d9681d59a..899d413b05 100644
|
||||
--- a/Include/internal/pycore_dtoa.h
|
||||
+++ b/Include/internal/pycore_dtoa.h
|
||||
@@ -11,8 +11,6 @@ extern "C" {
|
||||
#include "pycore_pymath.h" // _PY_SHORT_FLOAT_REPR
|
||||
|
||||
|
||||
-#if _PY_SHORT_FLOAT_REPR == 1
|
||||
-
|
||||
typedef uint32_t ULong;
|
||||
|
||||
struct
|
||||
@@ -22,15 +20,15 @@ Bigint {
|
||||
ULong x[1];
|
||||
};
|
||||
|
||||
-#ifdef Py_USING_MEMORY_DEBUGGER
|
||||
+#if defined(Py_USING_MEMORY_DEBUGGER) || _PY_SHORT_FLOAT_REPR == 0
|
||||
|
||||
struct _dtoa_state {
|
||||
int _not_used;
|
||||
};
|
||||
-#define _dtoa_interp_state_INIT(INTERP) \
|
||||
+#define _dtoa_state_INIT(INTERP) \
|
||||
{0}
|
||||
|
||||
-#else // !Py_USING_MEMORY_DEBUGGER
|
||||
+#else // !Py_USING_MEMORY_DEBUGGER && _PY_SHORT_FLOAT_REPR != 0
|
||||
|
||||
/* The size of the Bigint freelist */
|
||||
#define Bigint_Kmax 7
|
||||
@@ -65,8 +63,6 @@ PyAPI_FUNC(char *) _Py_dg_dtoa(double d, int mode, int ndigits,
|
||||
int *decpt, int *sign, char **rve);
|
||||
PyAPI_FUNC(void) _Py_dg_freedtoa(char *s);
|
||||
|
||||
-#endif // _PY_SHORT_FLOAT_REPR == 1
|
||||
-
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
--
|
||||
2.45.1
|
||||
|
@ -0,0 +1,53 @@
|
||||
From 94d8a9efe6ec86a6e5b4806dbfb82ac926286456 Mon Sep 17 00:00:00 2001
|
||||
From: Yureka <yuka@yuka.dev>
|
||||
Date: Sun, 30 Jun 2024 09:45:58 +0200
|
||||
Subject: [PATCH] Fix build with _PY_SHORT_FLOAT_REPR == 0
|
||||
|
||||
---
|
||||
Include/internal/pycore_dtoa.h | 10 +++-------
|
||||
1 file changed, 3 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/Include/internal/pycore_dtoa.h b/Include/internal/pycore_dtoa.h
|
||||
index c5cfdf4ce8..e4222c5267 100644
|
||||
--- a/Include/internal/pycore_dtoa.h
|
||||
+++ b/Include/internal/pycore_dtoa.h
|
||||
@@ -11,8 +11,6 @@ extern "C" {
|
||||
#include "pycore_pymath.h" // _PY_SHORT_FLOAT_REPR
|
||||
|
||||
|
||||
-#if _PY_SHORT_FLOAT_REPR == 1
|
||||
-
|
||||
typedef uint32_t ULong;
|
||||
|
||||
struct
|
||||
@@ -22,15 +20,15 @@ Bigint {
|
||||
ULong x[1];
|
||||
};
|
||||
|
||||
-#ifdef Py_USING_MEMORY_DEBUGGER
|
||||
+#if defined(Py_USING_MEMORY_DEBUGGER) || _PY_SHORT_FLOAT_REPR == 0
|
||||
|
||||
struct _dtoa_state {
|
||||
int _not_used;
|
||||
};
|
||||
-#define _dtoa_interp_state_INIT(INTERP) \
|
||||
+#define _dtoa_state_INIT(INTERP) \
|
||||
{0}
|
||||
|
||||
-#else // !Py_USING_MEMORY_DEBUGGER
|
||||
+#else // !Py_USING_MEMORY_DEBUGGER && _PY_SHORT_FLOAT_REPR != 0
|
||||
|
||||
/* The size of the Bigint freelist */
|
||||
#define Bigint_Kmax 7
|
||||
@@ -66,8 +64,6 @@ extern char* _Py_dg_dtoa(double d, int mode, int ndigits,
|
||||
int *decpt, int *sign, char **rve);
|
||||
extern void _Py_dg_freedtoa(char *s);
|
||||
|
||||
-#endif // _PY_SHORT_FLOAT_REPR == 1
|
||||
-
|
||||
|
||||
extern PyStatus _PyDtoa_Init(PyInterpreterState *interp);
|
||||
extern void _PyDtoa_Fini(PyInterpreterState *interp);
|
||||
--
|
||||
2.45.1
|
||||
|
@ -367,7 +367,18 @@ in with passthru; stdenv.mkDerivation (finalAttrs: {
|
||||
};
|
||||
in [
|
||||
"${mingw-patch}/*.patch"
|
||||
]);
|
||||
]) ++ optionals (pythonAtLeast "3.12" && (stdenv.hostPlatform != stdenv.buildPlatform) && (
|
||||
stdenv.hostPlatform.isAarch32 || stdenv.hostPlatform.isAarch64 || stdenv.hostPlatform.isRiscV
|
||||
)) [
|
||||
# backport fix for various platforms; armv7l, riscv64
|
||||
# https://github.com/python/cpython/pull/121178
|
||||
(
|
||||
if (pythonAtLeast "3.13") then
|
||||
./3.13/0001-Fix-build-with-_PY_SHORT_FLOAT_REPR-0.patch
|
||||
else
|
||||
./3.12/0001-Fix-build-with-_PY_SHORT_FLOAT_REPR-0.patch
|
||||
)
|
||||
];
|
||||
|
||||
postPatch = optionalString (!stdenv.hostPlatform.isWindows) ''
|
||||
substituteInPlace Lib/subprocess.py \
|
||||
|
Loading…
Reference in New Issue
Block a user