libcoexist.a directly references phy_coex_force_rx_ant and
phy_coex_dismiss_rx_ant from libphy.a (esp_phy component) but never
declared this dependency. It only worked because esp_common privately
linked esp_wifi (which transitively brings esp_phy) with
LINK_INTERFACE_MULTIPLICITY 4, causing libphy.a to repeat in the link
line. An upcoming esp_common change removes that mechanism, exposing
this missing dependency.
CMakev2's DEFERRED mode for idf_component_optional_requires only links
optional components already present in the dependency graph. This caused
esp_coex headers to be unavailable when building minimal examples on
targets with both WiFi and IEEE802154 (e.g. esp32c5, esp32c6).
Moving init_coexist to esp_coex removes the cross-component dependency
and ensures the init function is only compiled when esp_coex itself is
part of the build. A linker hook is added to guarantee the object file
is not silently discarded by the linker.
Made-with: Cursor
* All components which won't build (yet) on Linux are excluded.
This enables switching to Linux in an application without
explicitly setting COMPONENTS to main in the main
CMakeLists.txt.
* ESP Timer provides headers for Linux now
* automatically disabling LWIP in Kconfig if it is not available
doc(linux): brought section
"Component Linux/Mock Support Overview" up to date