tools/mpy-tool.py: Add checks for critical configuration vars.

When an mpy file is frozen it must know the values of certain
configuration variables.  This patch provides an explicit check in the
generated C file that the configuration variables are what they are
supposed to be.
This commit is contained in:
Damien George 2016-05-16 23:13:30 +01:00
parent 21ec1fd850
commit 99b4719357

View File

@ -450,6 +450,23 @@ def freeze_mpy(qcfgs, base_qstrs, raw_codes):
print('#include "py/emitglue.h"')
print()
print('#if MICROPY_OPT_CACHE_MAP_LOOKUP_IN_BYTECODE')
print('#error "MICROPY_OPT_CACHE_MAP_LOOKUP_IN_BYTECODE not supported with frozen mpy files"')
print('#endif')
print()
print('#if MICROPY_LONGINT_IMPL != %u' % config.MICROPY_LONGINT_IMPL)
print('#error "incompatible MICROPY_LONGINT_IMPL"')
print('#endif')
print()
if config.MICROPY_LONGINT_IMPL == config.MICROPY_LONGINT_IMPL_MPZ:
print('#if MPZ_DIG_SIZE != %u' % config.MPZ_DIG_SIZE)
print('#error "incompatible MPZ_DIG_SIZE"')
print('#endif')
print()
print('#if MICROPY_PY_BUILTINS_FLOAT')
print('typedef struct _mp_obj_float_t {')
print(' mp_obj_base_t base;')