diff --git a/fix-aarch64-builds.patch b/fix-aarch64-builds.patch new file mode 100644 index 0000000..e4c8ffd --- /dev/null +++ b/fix-aarch64-builds.patch @@ -0,0 +1,33 @@ +From: Marian Buschsieweke +Date: Tue, 30 Mar 2021 20:08:11 +0200 +Subject: [PATCH] unix/main: Make static variable that's potentially clobbered + by longjmp. + +This fixes `error: variable 'subpkg_tried' might be clobbered by 'longjmp' +or 'vfork' [-Werror=clobbered]` when compiling on ppc64le and aarch64 (and +possibly other architectures/toolchains). +--- + ports/unix/main.c | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/ports/unix/main.c b/ports/unix/main.c +index 129c6d3bb..e33c1742d 100644 +--- a/ports/unix/main.c ++++ b/ports/unix/main.c +@@ -596,7 +596,12 @@ MP_NOINLINE int main_(int argc, char **argv) { + + mp_obj_t mod; + nlr_buf_t nlr; +- bool subpkg_tried = false; ++ ++ // Allocating subpkg_tried on the stack can lead to compiler warnings about this ++ // variable being clobbered when nlr is implemented using setjmp/longjmp. Its ++ // value must be preserved across calls to setjmp/longjmp. ++ static bool subpkg_tried; ++ subpkg_tried = false; + + reimport: + if (nlr_push(&nlr) == 0) { +-- +2.31.1 + diff --git a/micropython-1.13.tar.xz b/micropython-1.13.tar.xz deleted file mode 100644 index fc83717..0000000 --- a/micropython-1.13.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fb5434ec1fd2f7d06733696b020a992e69005532bcb97a9b4158ec1fffbc9c1e -size 56099500 diff --git a/micropython-1.14.tar.xz b/micropython-1.14.tar.xz new file mode 100644 index 0000000..87a494c --- /dev/null +++ b/micropython-1.14.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:97306156fdeab120a1244626c75a929bb820722afdfc1317dbd5dadef388d94c +size 56801160 diff --git a/micropython.changes b/micropython.changes index e83ccb0..6821586 100644 --- a/micropython.changes +++ b/micropython.changes @@ -1,3 +1,26 @@ +------------------------------------------------------------------- +Sat Apr 17 03:06:16 UTC 2021 - Mustafa Çalışkan + +- Add patch fix-aarch64-builds.patch + +------------------------------------------------------------------- +Fri Feb 5 10:11:08 UTC 2021 - Guillaume GARDET + +- Update to v1.14: + * Full release notes: https://github.com/micropython/micropython/releases/tag/v1.14 + * Unix port updates: + - Makefile: always enable -f*-sections regardless of DEBUG setting + - implement BLE H4 HCI UART for btstack/nimble + - implement mp_hal_time_ns using gettimeofday + - variants: enable MICROPY_DEBUG_PARSE_RULE_NAME on coverage build + - mpconfigport.h: enable MICROPY_PY_DELATTR_SETATTR + - enable more warnings + - support building C++ code + - Makefile: move coverage.c and coveragecpp.cpp to coverage variant + - handle pending events/scheduler in MICROPY_EVENT_POLL_HOOK + - make mp_hal_delay_ms run MICROPY_EVENT_POLL_HOOK + - modtime: fix time() precision on unix ports with non-double floats + ------------------------------------------------------------------- Fri Jan 29 10:59:00 UTC 2021 - Guillaume GARDET diff --git a/micropython.spec b/micropython.spec index b9c9808..e16aa01 100644 --- a/micropython.spec +++ b/micropython.spec @@ -15,19 +15,21 @@ # Please submit bugfixes or comments via https://bugs.opensuse.org/ # + Name: micropython -Version: 1.13 +Version: 1.14 Release: 0 Summary: Implementation of Python 3 with very low memory footprint License: MIT Group: Development/Languages/Python -Url: https://micropython.org/ +URL: https://micropython.org/ Source: https://micropython.org/resources/source/%{name}-%{version}.tar.xz +Patch: fix-aarch64-builds.patch +BuildRequires: openssl +BuildRequires: python +BuildRequires: python3 BuildRequires: readline-devel BuildRequires: pkgconfig(libffi) -BuildRequires: python3 -BuildRequires: python -BuildRequires: openssl Recommends: micropython-lib ExcludeArch: %{ix86} %{arm} @@ -36,36 +38,31 @@ A lean and efficient Python implementation for microcontrollers and constrained %prep %setup -q +%patch -p1 sed -i -e "s:/usr/lib/micropython:%{_prefix}/lib/micropython:g" "ports/unix/main.c" %define make_flags V=1 MICROPY_PY_BTREE=0 MICROPY_PY_USSL=0 %build -pushd mpy-cross -%make_build -popd -pushd ports/unix -%make_build micropython -popd +%make_build -C mpy-cross +%make_build -C ports/unix micropython %install install -d %{buildroot}%{_bindir} -install -t %{buildroot}%{_bindir} ports/unix/micropython +install -t %{buildroot}%{_bindir} ports/unix/micropython %ifnarch aarch64 # aarch64: 2 tests failed: float_parse float_parse_doubleprec # https://github.com/micropython/micropython/issues/4176 %check -pushd ports/unix export MICROPY_CPYTHON3=python3 -make PYTHON=%{__python3} V=1 test -popd +make -C ports/unix PYTHON=%{__python3} V=1 test %endif %files %defattr(-,root,root) -%doc LICENSE +%license LICENSE +%doc docs/unix/* %{_bindir}/micropython %changelog -