From 7828b94aad8d18cbbdd3d6e4a94382342e2bfaca Mon Sep 17 00:00:00 2001 From: nitz Date: Sun, 15 Aug 2021 22:01:39 -0400 Subject: [PATCH] Add support for MICROPY_CPYTHON_COMPAT make var MICROPY_CPYTHON_COMPAT was used before to toggle the aptly named CPyhthon compatability, but was being controlled by `CIRCUITPY_FULL_BUILD` instead. This change allows ports/boards to set `MICROPY_CPYTHON_COMPAT = 1` in their `.mk` to enable the CPython compatabilty code. --- py/circuitpy_mpconfig.h | 2 ++ py/circuitpy_mpconfig.mk | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/py/circuitpy_mpconfig.h b/py/circuitpy_mpconfig.h index d0a65a6a7a4aa..4d7510eb7ede0 100644 --- a/py/circuitpy_mpconfig.h +++ b/py/circuitpy_mpconfig.h @@ -188,7 +188,9 @@ typedef long mp_off_t; // Turning off FULL_BUILD removes some functionality to reduce flash size on tiny SAMD21s #define MICROPY_BUILTIN_METHOD_CHECK_SELF_ARG (CIRCUITPY_FULL_BUILD) +#ifndef MICROPY_CPYTHON_COMPAT #define MICROPY_CPYTHON_COMPAT (CIRCUITPY_FULL_BUILD) +#endif #define MICROPY_PY_BUILTINS_POW3 (CIRCUITPY_BUILTINS_POW3) #define MICROPY_COMP_FSTRING_LITERAL (MICROPY_CPYTHON_COMPAT) #define MICROPY_MODULE_WEAK_LINKS (0) diff --git a/py/circuitpy_mpconfig.mk b/py/circuitpy_mpconfig.mk index b486497692779..0e82b31495c11 100644 --- a/py/circuitpy_mpconfig.mk +++ b/py/circuitpy_mpconfig.mk @@ -36,6 +36,11 @@ CFLAGS += -DCIRCUITPY_FULL_BUILD=$(CIRCUITPY_FULL_BUILD) MICROPY_PY_ASYNC_AWAIT ?= $(CIRCUITPY_FULL_BUILD) CFLAGS += -DMICROPY_PY_ASYNC_AWAIT=$(MICROPY_PY_ASYNC_AWAIT) +# Non-full builds may optionally set MICROPY_CPYTHON_COMPAT for a few rarely +# used CPython features. Omitting it reduces flash usage by ~2 KB +MICROPY_CPYTHON_COMPAT ?= $(CIRCUITPY_FULL_BUILD) +CFLAGS += -DMICROPY_CPYTHON_COMPAT=$(MICROPY_CPYTHON_COMPAT) + CIRCUITPY_AESIO ?= 0 CFLAGS += -DCIRCUITPY_AESIO=$(CIRCUITPY_AESIO)