From 0d2c1bf2bb130e5ddf7913165e6ae873a723dcf7 Mon Sep 17 00:00:00 2001 From: Dan Halbert Date: Sat, 15 Jul 2017 17:03:24 -0400 Subject: Fix problems that prevented use of internal frozen modules: 1. Allow -Wlto-type-mismatch to be just a warning when building with frozen modules. 2. Fix extern decls that triggered -Wnested-externs when building with frozen modules. 3. Pass the correct value of -mlongint-impl to $(MPY_TOOL). New file mpconfigport.mk to do this. --- py/builtinhelp.c | 12 ++++++++++-- py/mkrules.mk | 4 +++- 2 files changed, 13 insertions(+), 3 deletions(-) (limited to 'py') diff --git a/py/builtinhelp.c b/py/builtinhelp.c index 8ad23bc06..9903f2690 100644 --- a/py/builtinhelp.c +++ b/py/builtinhelp.c @@ -76,6 +76,16 @@ STATIC void mp_help_add_from_names(mp_obj_t list, const char *name) { } #endif +// These externs were originally declared inside mp_help_print_modules(), +// but they triggered -Wnested-externs, so they were moved outside. +#if MICROPY_MODULE_FROZEN_STR +extern const char mp_frozen_str_names[]; +#endif + +#if MICROPY_MODULE_FROZEN_MPY +extern const char mp_frozen_mpy_names[]; +#endif + STATIC void mp_help_print_modules(void) { mp_obj_t list = mp_obj_new_list(0, NULL); @@ -86,12 +96,10 @@ STATIC void mp_help_print_modules(void) { #endif #if MICROPY_MODULE_FROZEN_STR - extern const char mp_frozen_str_names[]; mp_help_add_from_names(list, mp_frozen_str_names); #endif #if MICROPY_MODULE_FROZEN_MPY - extern const char mp_frozen_mpy_names[]; mp_help_add_from_names(list, mp_frozen_mpy_names); #endif diff --git a/py/mkrules.mk b/py/mkrules.mk index 337c662a4..63640c03a 100644 --- a/py/mkrules.mk +++ b/py/mkrules.mk @@ -118,9 +118,11 @@ $(BUILD)/frozen_mpy/%.mpy: $(FROZEN_MPY_DIR)/%.py $(TOP)/mpy-cross/mpy-cross $(Q)$(MPY_CROSS) -o $@ -s $(<:$(FROZEN_MPY_DIR)/%=%) $(MPY_CROSS_FLAGS) $< # to build frozen_mpy.c from all .mpy files +# You need to define MPY_TOOL_LONGINT_IMPL in mpconfigport.mk +# if the default will not work (mpz is the default). $(BUILD)/frozen_mpy.c: $(FROZEN_MPY_MPY_FILES) $(BUILD)/genhdr/qstrdefs.generated.h $(STEPECHO) "Creating $@" - $(Q)$(PYTHON) $(MPY_TOOL) -f -q $(BUILD)/genhdr/qstrdefs.preprocessed.h $(FROZEN_MPY_MPY_FILES) > $@ + $(Q)$(PYTHON) $(MPY_TOOL) $(MPY_TOOL_LONGINT_IMPL) -f -q $(BUILD)/genhdr/qstrdefs.preprocessed.h $(FROZEN_MPY_MPY_FILES) > $@ endif ifneq ($(PROG),) -- cgit v1.2.3