diff --git a/esphome/build_gen/espidf.py b/esphome/build_gen/espidf.py index 5a23fc78eb..376f389d29 100644 --- a/esphome/build_gen/espidf.py +++ b/esphome/build_gen/espidf.py @@ -33,15 +33,10 @@ list(FILTER esphome_cxx_compile_options EXCLUDE REGEX "^-std=") list(APPEND esphome_cxx_compile_options "-std={standard}") idf_build_set_property(CXX_COMPILE_OPTIONS "${{esphome_cxx_compile_options}}")""" -# Drops the app archive from ldgen's inputs (the sections.ld DEPENDS and the -# ldgen_libraries file) by overriding the IDF helper that collects them, so -# app-only edits skip the sections.ld regeneration and ldgen never opens the -# archive. Safe because no linker mapping fragment references the app archive -# (run_compile re-checks that each build); the override filters only the top -# level call, after the recursive walk finished, so the walker's cycle guard -# is untouched. CMake keeps the prior definition reachable with an underscore -# prefix; a future IDF that renames the helper skips the override and keeps -# stock behavior. Emitted after include(project.cmake), before project(). +# Drops the app archive from ldgen's inputs so app-only edits skip the +# sections.ld regeneration. Safe: no mapping fragment references it +# (run_compile re-checks each build). Filters only the top-level call; +# the prior definition stays reachable with an underscore prefix. _LDGEN_OVERRIDE = """\ if(COMMAND __ldgen_get_lib_deps_of_target) function(__ldgen_get_lib_deps_of_target target out_list_var) diff --git a/esphome/espidf/toolchain.py b/esphome/espidf/toolchain.py index fce99c2e24..0ad563bf52 100644 --- a/esphome/espidf/toolchain.py +++ b/esphome/espidf/toolchain.py @@ -484,11 +484,9 @@ _APP_ARCHIVE_MAPPED_RE = re.compile(r"^archive:\s*libsrc\.a\s*$", re.MULTILINE) def _warn_if_app_archive_mapped() -> None: - """Belt for the ldgen dependency exclusion (see build_gen/espidf.py). - - The exclusion is safe only while no linker fragment names the app - archive; if one ever did, ldgen would silently skip remapping it, so - surface that loudly instead of relying on the invariant forever. + """Belt for the ldgen exclusion (see build_gen/espidf.py): warn if any + linker fragment names the app archive, since ldgen would silently skip + remapping it rather than fail. """ build_ninja = CORE.relative_build_path("build", "build.ninja") try: