Skip to content

Patch 0018: a fresh ESP-IDF clone builds the S3 again; lock at the KeDei merges - #35

Merged
bdbarnett merged 1 commit into
mainfrom
fix/esp32-missing-include-dirs
Oct 6, 2026
Merged

bdbarnett merged 1 commit into
mainfrom
fix/esp32-missing-include-dirs

Conversation

@bdbarnett

Copy link
Copy Markdown
Contributor

The second cloud run of scripts/exercise_build.sh (2026-10-06) built every target in one go, ESP-IDF fetched by build_mp.py included, except the ESP32-S3. It failed at configure: Include directory '.../esp_hw_support/mspi_timing_tuning/port/esp32s3/include' is not a directory.

The cause. ESP-IDF v5.5.4's S3 port declares that include directory but tracks no files in it, so a fresh clone never creates it. ESP-IDF itself tolerates that. MicroPython's esp32 port doesn't. usermod.cmake gathers include directories transitively from every library a user C module links, and cameraif and displayif link ESP-IDF driver components that pull in esp_hw_support. idf_component_register() then refuses the missing directory. The ESP-IDF in the workspace had once been at an older tag and still had the empty directory, which hid it. With that removed, so the checkout matches a clean v5.5.4, the failure reproduced here in 28 seconds.

The fix. Overlay patch 0018 drops non-existent directories (generator expressions are kept) from MICROPY_INC_USERMOD before idf_component_register(). It's in the series' usual form, with a justification header and its checksum in provenance.json. apply_patches.py --check: the series applies clean to v1.29.0. With it, the S3 LCD-7 --modules all build passes against the clean ESP-IDF (9 m 0 s, autosize included). It's an upstream MicroPython bug too, and the draft for upstream is a separate issue.

modules.lock moves displayif to PyDevices/displayif#48 (mipidsi non_burst/continuous_clock) and pydevices to PyDevices/pydevices#123 (the DEV-KIT + KeDei board config), both proven on Brad's bench today.

…xist (a fresh ESP-IDF v5.5.4 clone broke every S3 build with cameraif or displayif); modules.lock: displayif and pydevices at the KeDei merges
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant