[packages/micropython] - fix building on x32
baggins
baggins at pld-linux.org
Sat Dec 28 16:06:30 CET 2024
commit 2e4c93ac64b7353d5db15128fe7d559905954d9d
Author: Jan Rękorajski <baggins at pld-linux.org>
Date: Sat Dec 28 16:28:17 2024 +0100
- fix building on x32
micropython.spec | 12 ++++++++++--
x32.patch | 39 +++++++++++++++++++++++++++++++++++++++
2 files changed, 49 insertions(+), 2 deletions(-)
---
diff --git a/micropython.spec b/micropython.spec
index 0c7d49e..9aff092 100644
--- a/micropython.spec
+++ b/micropython.spec
@@ -11,6 +11,7 @@ Group: Development/Languages/Python
Source0: http://micropython.org/resources/source/%{name}-%{version}.tar.xz
# Source0-md5: 1086e0af7127fc5021ca91f882c985f7
Patch0: x86.patch
+Patch1: x32.patch
URL: http://micropython.org/
BuildRequires: libffi-devel
BuildRequires: mbedtls-devel
@@ -20,6 +21,7 @@ BuildRequires: python-modules
%if %{with tests}
BuildRequires: python3
BuildRequires: python3-modules
+BuildRequires: python3-elftools
%endif
BuildRequires: readline-devel
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
@@ -30,6 +32,7 @@ Implementation of Python 3 with very low memory footprint.
%prep
%setup -q
%patch -P 0 -p1
+%patch -P 1 -p1
%build
@@ -37,13 +40,18 @@ Implementation of Python 3 with very low memory footprint.
%{__make} -C ports/unix \
CC="%{__cc}" \
- CFLAGS_EXTRA="%{rpmcppflags} %{rpmcflags} -Wno-error=maybe-uninitialized" \
+ CFLAGS_EXTRA="%{rpmcppflags} %{rpmcflags} -Wno-error=maybe-uninitialized -Wno-error=clobbered" \
LDFLAGS_EXTRA="%{rpmldflags}" \
MICROPY_SSL_MBEDTLS=1 \
STRIP=true \
V=1
-%{?with_tests:%{__make} -C ports/unix test}
+%if %{with tests}
+%ifarch x32
+export X32=true
+%endif
+%{__make} -C ports/unix test
+%endif
%install
rm -rf $RPM_BUILD_ROOT
diff --git a/x32.patch b/x32.patch
new file mode 100644
index 0000000..c4885f2
--- /dev/null
+++ b/x32.patch
@@ -0,0 +1,39 @@
+--- micropython-1.24.1/py/mpz.h~ 2024-11-30 00:49:21.000000000 +0100
++++ micropython-1.24.1/py/mpz.h 2024-12-28 15:57:53.439998291 +0100
+@@ -46,8 +46,12 @@
+
+ #ifndef MPZ_DIG_SIZE
+ #if defined(__x86_64__) || defined(_WIN64)
++ #if defined(__ILP32__)
++ #define MPZ_DIG_SIZE (16)
++ #else
+ // 64-bit machine, using 32-bit storage for digits
+- #define MPZ_DIG_SIZE (32)
++ #define MPZ_DIG_SIZE (32)
++ #endif
+ #else
+ // default: 32-bit machine, using 16-bit storage for digits
+ #define MPZ_DIG_SIZE (16)
+--- micropython-1.24.1/py/nlr.h~ 2024-11-30 00:49:21.000000000 +0100
++++ micropython-1.24.1/py/nlr.h 2024-12-28 15:54:01.423331665 +0100
+@@ -60,7 +60,7 @@
+ #if defined(__i386__)
+ #define MICROPY_NLR_X86 (1)
+ #define MICROPY_NLR_NUM_REGS (MICROPY_NLR_NUM_REGS_X86)
+-#elif defined(__x86_64__)
++#elif defined(__x86_64__) && !defined(__ILP32__)
+ #define MICROPY_NLR_X64 (1)
+ #if MICROPY_NLR_OS_WINDOWS
+ #define MICROPY_NLR_NUM_REGS (MICROPY_NLR_NUM_REGS_X64_WIN)
+--- micropython-1.24.1/tests/run-tests.py~ 2024-11-30 00:49:28.000000000 +0100
++++ micropython-1.24.1/tests/run-tests.py 2024-12-28 16:24:37.973331385 +0100
+@@ -576,6 +576,9 @@
+ "struct_endian",
+ )
+
++ if os.getenv("X32") == "true":
++ skip_tests.add("micropython/import_mpy_native_gc.py")
++
+ # Some tests shouldn't be run on GitHub Actions
+ if os.getenv("GITHUB_ACTIONS") == "true":
+ skip_tests.add("thread/stress_schedule.py") # has reliability issues
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/micropython.git/commitdiff/2e4c93ac64b7353d5db15128fe7d559905954d9d
More information about the pld-cvs-commit
mailing list