mirror of
https://gitlab.com/buildroot.org/buildroot.git
synced 2026-09-19 16:40:46 -09:00
package/micropython: fix segfault at exit() with gcc >= 14
Since Buildroot commit [1] "update to Bootlin toolchains 2025.08-1", the TestMicroPython segfault when testing if micropython can return a non-zero exit code. micropython -c "import sys ; sys.exit(123)" This issue is related to the gcc version used to build micropython (gcc 14 or newer). Using gcc 13 (like Bootlin toolchain 2024.05-1 previously used) micropython run without issue. The issue has been reported upstream [2] and fixed in newer micropython releases [3]. For now, apply a temporary workaround (suggested in the bug report) using -DMICROPY_NLR_SETJMP=1 only for gcc 14 or newer. MICROPY_NLR_SETJMP avoid the architecture specific implementation of nlr_push. Fixes: https://gitlab.com/buildroot.org/buildroot/-/jobs/11176774762 (TestMicroPython) [1]947dbc92a2[2] https://github.com/micropython/micropython/issues/14115 [3]35f3f0a87dSigned-off-by: Romain Naour <romain.naour@smile.fr> Signed-off-by: Julien Olivain <ju.o@free.fr>
This commit is contained in:
committed by
Julien Olivain
parent
10e289e0a9
commit
50bc5aa17b
@@ -29,6 +29,13 @@ ifeq ($(BR2_xtensa),y)
|
|||||||
MICROPYTHON_CFLAGS = -DMICROPY_NLR_SETJMP=1
|
MICROPYTHON_CFLAGS = -DMICROPY_NLR_SETJMP=1
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# https://github.com/micropython/micropython/issues/14115
|
||||||
|
# Temporary fix for GCC 14 compatibility, should be removed after updating to
|
||||||
|
# 1.23.0 or later.
|
||||||
|
ifeq ($(BR2_TOOLCHAIN_GCC_AT_LEAST_14),y)
|
||||||
|
MICROPYTHON_CFLAGS += -DMICROPY_NLR_SETJMP=1
|
||||||
|
endif
|
||||||
|
|
||||||
# When building from a tarball we don't have some of the dependencies that are in
|
# When building from a tarball we don't have some of the dependencies that are in
|
||||||
# the git repository as submodules
|
# the git repository as submodules
|
||||||
MICROPYTHON_MAKE_OPTS += \
|
MICROPYTHON_MAKE_OPTS += \
|
||||||
|
|||||||
Reference in New Issue
Block a user