From bde027188ae122c1410569b1085a1a2520850e43 Mon Sep 17 00:00:00 2001 From: Alexandru Ardelean Date: Mon, 12 Apr 2021 09:43:35 +0300 Subject: [PATCH] python-greenlet: support MIPS architecture Fixes: https://github.com/openwrt/packages/issues/15370 This is inspired from: https://github.com/wlanslovenija/firmware-packages-opkg/blob/330bc94dccd16a3e92ac2fdde08c81a598e12f94/lang/python-greenlet/Makefile The `PKG_USE_MIPS16:=0` is not taken into consideration when building Python modules. That's because the sysconfig is used. This is only an issue with greenlet (on MIPS) so far. One option is to do `PKG_USE_MIPS16:=0` in the core Python package. But, since we know that the `wlanslovenija` group has successfully used greenlet on MIPS with this construct, we might as well adopt it until GCC10 becomes the main compiler. As noted here: https://github.com/openwrt/packages/issues/15370#issuecomment-817015484 GCC10 doesn't have this problem. Signed-off-by: Alexandru Ardelean --- lang/python/python-greenlet/Makefile | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/lang/python/python-greenlet/Makefile b/lang/python/python-greenlet/Makefile index 130037154..efcaf901a 100644 --- a/lang/python/python-greenlet/Makefile +++ b/lang/python/python-greenlet/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=python-greenlet PKG_VERSION:=1.0.0 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PYPI_NAME:=greenlet PKG_HASH:=719e169c79255816cdcf6dccd9ed2d089a72a9f6c42273aae12d55e8d35bdcf8 @@ -17,6 +17,8 @@ PKG_HASH:=719e169c79255816cdcf6dccd9ed2d089a72a9f6c42273aae12d55e8d35bdcf8 PKG_MAINTAINER:=Jan Pavlinec PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE +# FIXME: remove when GCC10 is the oldest supported compiler, or the issue goes away +PKG_USE_MIPS16:=0 include ../pypi.mk include $(INCLUDE_DIR)/package.mk @@ -31,7 +33,7 @@ define Package/python3-greenlet DEPENDS:= \ +python3-light \ +libstdcpp \ - @!(arc||mips) + @!arc endef define Package/python3-greenlet/description @@ -39,6 +41,13 @@ define Package/python3-greenlet/description a version of CPython that supports micro-threads called tasklets. endef +# FIXME: remove when GCC10 is the oldest supported compiler, or the issue goes away +# This is required in addition to PKG_USE_MIPS16:=0 because otherwise MIPS16 +# flags are inherited from the Python base package (via sysconfig module) +ifdef CONFIG_USE_MIPS16 +TARGET_CFLAGS += -mno-mips16 -mno-interlink-mips16 +endif + $(eval $(call Py3Package,python3-greenlet)) $(eval $(call BuildPackage,python3-greenlet)) $(eval $(call BuildPackage,python3-greenlet-src))