mirror of
https://github.com/esphome/esphome.git
synced 2026-09-28 23:40:25 +00:00
A raw MMU_* define alongside a PIO_FRAMEWORK_ARDUINO_MMU_* knob, or a raw TCP_MSS/LWIP_* alongside the lwIP knobs, would win the compile line while the linker script or prebuilt library keeps the knob's values; both now raise like the no-knob case. _MMU_VARIANTS holds tuples and the resolved config gets a copy, so nothing aliases the module table. _lexed_build_flags lexes once and both consumers accept the tokens, so a malformed entry warns once per build. The linker-script stamp covers the header's size and mtime, an unreadable or non-UTF-8 cache regenerates instead of aborting, plain-form linker flags warn that they are not routed to the link line, and a moved rate-table anchor surfaces as a named build error.