QUERY · ISSUE
Compiling with FROZEN_MANIFEST fails to build mpy-cross if it hasn't been built separately first
bug
Compiling with FROZEN_MANIFEST fails to build mpy-cross if it hasn't been built separately first.
Reproducer
(on current master)
git clean -fdx && echo "" > manifest.py && make -C ports/unix submodules && make -C ports/unix FROZEN_MANIFEST="$PWD/manifest.py"
Fails linking with:
LINK build/mpy-cross
/usr/bin/ld: build/py/qstr.o: in function `qstr_init':
qstr.c:(.text.qstr_init+0x7): undefined reference to `mp_qstr_frozen_const_pool'
collect2: error: ld returned 1 exit status
Bisect
Bisect points to f01d5fb657159f1afa9d41cf39830d17b791a67e as the culprit.
I assume the problem is that the mpy-cross Makefile inherits the wrong CFLAGS? Also, interestingly cmake-based ports have the same problem.
CANDIDATE · PULL REQUEST
freezing/manifest: Ease the transition to manifests.
py-core
- Adds error if the old way (FROZEN_MPY_DIR / FROZEN_DIR) is used at the same time as FROZEN_MANIFEST. (They are mutually exclusive).
- Adds warnings that the old way is deprecated.
- Allow building without manifests on unix and esp8266.