Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

C6 Wifi Compile Errors #22

Open
joseph-montanez opened this issue Feb 2, 2025 · 11 comments
Open

C6 Wifi Compile Errors #22

joseph-montanez opened this issue Feb 2, 2025 · 11 comments
Labels
bug Something isn't working

Comments

@joseph-montanez
Copy link

joseph-montanez commented Feb 2, 2025

I had to make some changes for station (wifi acting as client) and having issues with missing symbols

: && /Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/riscv32-esp-elf-g++ -march=rv32imac_zicsr_zifencei -nostartfiles -march=rv32imac_zicsr_zifencei --specs=nosys.specs    -Wl,--cref -Wl,--defsym=IDF_TARGET_ESP32C6=0 -Wl,--Map=/Users/josephmontanez_1/Documents/zig-esp-idf-sample/build/zig-sample-idf.map -Wl,--no-warn-rwx-segments -Wl,--orphan-handling=warn -fno-rtti -fno-lto -Wl,--gc-sections -Wl,--warn-common -T rom.api.ld -T esp32c6.peripherals.ld -T esp32c6.rom.ld -T esp32c6.rom.api.ld -T esp32c6.rom.rvfp.ld -T esp32c6.rom.wdt.ld -T esp32c6.rom.systimer.ld -T esp32c6.rom.version.ld -T esp32c6.rom.phy.ld -T esp32c6.rom.coexist.ld -T esp32c6.rom.net80211.ld -T esp32c6.rom.pp.ld -T esp32c6.rom.newlib.ld -T esp32c6.rom.newlib-normal.ld -T esp32c6.rom.heap.ld -T memory.ld -T sections.ld CMakeFiles/zig-sample-idf.elf.dir/project_elf_src_esp32c6.c.obj -o zig-sample-idf.elf -L/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/riscv/ld   -L/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/soc/esp32c6/ld   -L/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_rom/esp32c6/ld   -L/Users/josephmontanez_1/Documents/zig-esp-idf-sample/build/esp-idf/esp_system/ld   -L/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_phy/lib/esp32c6   -L/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_coex/lib/esp32c6   -L/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6 esp-idf/riscv/libriscv.a  esp-idf/esp_driver_gpio/libesp_driver_gpio.a  esp-idf/esp_pm/libesp_pm.a  esp-idf/mbedtls/libmbedtls.a  esp-idf/esp_app_format/libesp_app_format.a  esp-idf/esp_bootloader_format/libesp_bootloader_format.a  esp-idf/app_update/libapp_update.a  esp-idf/esp_partition/libesp_partition.a  esp-idf/efuse/libefuse.a  esp-idf/bootloader_support/libbootloader_support.a  esp-idf/esp_mm/libesp_mm.a  esp-idf/spi_flash/libspi_flash.a  esp-idf/esp_system/libesp_system.a  esp-idf/esp_common/libesp_common.a  esp-idf/esp_rom/libesp_rom.a  esp-idf/hal/libhal.a  esp-idf/log/liblog.a  esp-idf/heap/libheap.a  esp-idf/soc/libsoc.a  esp-idf/esp_security/libesp_security.a  esp-idf/esp_hw_support/libesp_hw_support.a  esp-idf/freertos/libfreertos.a  esp-idf/newlib/libnewlib.a  esp-idf/pthread/libpthread.a  esp-idf/cxx/libcxx.a  esp-idf/esp_timer/libesp_timer.a  esp-idf/esp_driver_gptimer/libesp_driver_gptimer.a  esp-idf/esp_ringbuf/libesp_ringbuf.a  esp-idf/esp_driver_uart/libesp_driver_uart.a  esp-idf/app_trace/libapp_trace.a  esp-idf/esp_event/libesp_event.a  esp-idf/nvs_flash/libnvs_flash.a  esp-idf/esp_driver_pcnt/libesp_driver_pcnt.a  esp-idf/esp_driver_spi/libesp_driver_spi.a  esp-idf/esp_driver_mcpwm/libesp_driver_mcpwm.a  esp-idf/esp_driver_i2s/libesp_driver_i2s.a  esp-idf/sdmmc/libsdmmc.a  esp-idf/esp_driver_sdspi/libesp_driver_sdspi.a  esp-idf/esp_driver_sdio/libesp_driver_sdio.a  esp-idf/esp_driver_rmt/libesp_driver_rmt.a  esp-idf/esp_driver_tsens/libesp_driver_tsens.a  esp-idf/esp_driver_sdm/libesp_driver_sdm.a  esp-idf/esp_driver_i2c/libesp_driver_i2c.a  esp-idf/esp_driver_ledc/libesp_driver_ledc.a  esp-idf/esp_driver_parlio/libesp_driver_parlio.a  esp-idf/esp_driver_usb_serial_jtag/libesp_driver_usb_serial_jtag.a  esp-idf/driver/libdriver.a  esp-idf/esp_phy/libesp_phy.a  esp-idf/esp_vfs_console/libesp_vfs_console.a  esp-idf/vfs/libvfs.a  esp-idf/lwip/liblwip.a  esp-idf/esp_netif/libesp_netif.a  esp-idf/wpa_supplicant/libwpa_supplicant.a  esp-idf/esp_coex/libesp_coex.a  esp-idf/esp_wifi/libesp_wifi.a  esp-idf/unity/libunity.a  esp-idf/cmock/libcmock.a  esp-idf/console/libconsole.a  esp-idf/http_parser/libhttp_parser.a  esp-idf/esp-tls/libesp-tls.a  esp-idf/esp_adc/libesp_adc.a  esp-idf/esp_driver_cam/libesp_driver_cam.a  esp-idf/esp_eth/libesp_eth.a  esp-idf/esp_gdbstub/libesp_gdbstub.a  esp-idf/esp_hid/libesp_hid.a  esp-idf/tcp_transport/libtcp_transport.a  esp-idf/esp_http_client/libesp_http_client.a  esp-idf/esp_http_server/libesp_http_server.a  esp-idf/esp_https_ota/libesp_https_ota.a  esp-idf/esp_https_server/libesp_https_server.a  esp-idf/esp_lcd/libesp_lcd.a  esp-idf/protobuf-c/libprotobuf-c.a  esp-idf/protocomm/libprotocomm.a  esp-idf/esp_local_ctrl/libesp_local_ctrl.a  esp-idf/espcoredump/libespcoredump.a  esp-idf/wear_levelling/libwear_levelling.a  esp-idf/fatfs/libfatfs.a  esp-idf/ieee802154/libieee802154.a  esp-idf/json/libjson.a  esp-idf/mqtt/libmqtt.a  esp-idf/nvs_sec_provider/libnvs_sec_provider.a  esp-idf/rt/librt.a  esp-idf/spiffs/libspiffs.a  esp-idf/wifi_provisioning/libwifi_provisioning.a  esp-idf/main/libmain.a  esp-idf/app_trace/libapp_trace.a  esp-idf/unity/libunity.a  esp-idf/esp_https_server/libesp_https_server.a  -u esp_system_include_coredump_init  esp-idf/wear_levelling/libwear_levelling.a  -u nvs_sec_provider_include_impl  esp-idf/protocomm/libprotocomm.a  esp-idf/console/libconsole.a  esp-idf/protobuf-c/libprotobuf-c.a  esp-idf/json/libjson.a  esp-idf/riscv/libriscv.a  esp-idf/esp_driver_gpio/libesp_driver_gpio.a  esp-idf/esp_pm/libesp_pm.a  esp-idf/mbedtls/libmbedtls.a  esp-idf/esp_app_format/libesp_app_format.a  esp-idf/esp_bootloader_format/libesp_bootloader_format.a  esp-idf/app_update/libapp_update.a  esp-idf/esp_partition/libesp_partition.a  esp-idf/efuse/libefuse.a  esp-idf/bootloader_support/libbootloader_support.a  esp-idf/esp_mm/libesp_mm.a  esp-idf/spi_flash/libspi_flash.a  esp-idf/esp_system/libesp_system.a  esp-idf/esp_common/libesp_common.a  esp-idf/esp_rom/libesp_rom.a  esp-idf/hal/libhal.a  esp-idf/log/liblog.a  esp-idf/heap/libheap.a  esp-idf/soc/libsoc.a  esp-idf/esp_security/libesp_security.a  esp-idf/esp_hw_support/libesp_hw_support.a  esp-idf/freertos/libfreertos.a  esp-idf/newlib/libnewlib.a  esp-idf/pthread/libpthread.a  esp-idf/cxx/libcxx.a  esp-idf/esp_timer/libesp_timer.a  esp-idf/esp_driver_gptimer/libesp_driver_gptimer.a  esp-idf/esp_ringbuf/libesp_ringbuf.a  esp-idf/esp_driver_uart/libesp_driver_uart.a  esp-idf/esp_event/libesp_event.a  esp-idf/nvs_flash/libnvs_flash.a  esp-idf/esp_driver_pcnt/libesp_driver_pcnt.a  esp-idf/esp_driver_spi/libesp_driver_spi.a  esp-idf/esp_driver_mcpwm/libesp_driver_mcpwm.a  esp-idf/esp_driver_i2s/libesp_driver_i2s.a  esp-idf/sdmmc/libsdmmc.a  esp-idf/esp_driver_sdspi/libesp_driver_sdspi.a  esp-idf/esp_driver_sdio/libesp_driver_sdio.a  esp-idf/esp_driver_rmt/libesp_driver_rmt.a  esp-idf/esp_driver_tsens/libesp_driver_tsens.a  esp-idf/esp_driver_sdm/libesp_driver_sdm.a  esp-idf/esp_driver_i2c/libesp_driver_i2c.a  esp-idf/esp_driver_ledc/libesp_driver_ledc.a  esp-idf/esp_driver_parlio/libesp_driver_parlio.a  esp-idf/esp_driver_usb_serial_jtag/libesp_driver_usb_serial_jtag.a  esp-idf/driver/libdriver.a  esp-idf/esp_phy/libesp_phy.a  esp-idf/esp_vfs_console/libesp_vfs_console.a  esp-idf/vfs/libvfs.a  esp-idf/lwip/liblwip.a  esp-idf/esp_netif/libesp_netif.a  esp-idf/wpa_supplicant/libwpa_supplicant.a  esp-idf/esp_coex/libesp_coex.a  esp-idf/esp_wifi/libesp_wifi.a  esp-idf/http_parser/libhttp_parser.a  esp-idf/esp-tls/libesp-tls.a  esp-idf/esp_adc/libesp_adc.a  esp-idf/esp_gdbstub/libesp_gdbstub.a  esp-idf/tcp_transport/libtcp_transport.a  esp-idf/esp_http_client/libesp_http_client.a  esp-idf/esp_http_server/libesp_http_server.a  esp-idf/esp_https_ota/libesp_https_ota.a  esp-idf/mbedtls/mbedtls/library/libmbedtls.a  esp-idf/mbedtls/mbedtls/library/libmbedcrypto.a  esp-idf/mbedtls/mbedtls/library/libmbedx509.a  esp-idf/mbedtls/mbedtls/3rdparty/everest/libeverest.a  esp-idf/mbedtls/mbedtls/3rdparty/p256-m/libp256m.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_coex/lib/esp32c6/libcoexist.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libcore.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libespnow.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libmesh.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libnet80211.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libpp.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libsmartconfig.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libwapi.a  esp-idf/riscv/libriscv.a  esp-idf/esp_driver_gpio/libesp_driver_gpio.a  esp-idf/esp_pm/libesp_pm.a  esp-idf/mbedtls/libmbedtls.a  esp-idf/esp_app_format/libesp_app_format.a  esp-idf/esp_bootloader_format/libesp_bootloader_format.a  esp-idf/app_update/libapp_update.a  esp-idf/esp_partition/libesp_partition.a  esp-idf/efuse/libefuse.a  esp-idf/bootloader_support/libbootloader_support.a  esp-idf/esp_mm/libesp_mm.a  esp-idf/spi_flash/libspi_flash.a  esp-idf/esp_system/libesp_system.a  esp-idf/esp_common/libesp_common.a  esp-idf/esp_rom/libesp_rom.a  esp-idf/hal/libhal.a  esp-idf/log/liblog.a  esp-idf/heap/libheap.a  esp-idf/soc/libsoc.a  esp-idf/esp_security/libesp_security.a  esp-idf/esp_hw_support/libesp_hw_support.a  esp-idf/freertos/libfreertos.a  esp-idf/newlib/libnewlib.a  esp-idf/pthread/libpthread.a  esp-idf/cxx/libcxx.a  esp-idf/esp_timer/libesp_timer.a  esp-idf/esp_driver_gptimer/libesp_driver_gptimer.a  esp-idf/esp_ringbuf/libesp_ringbuf.a  esp-idf/esp_driver_uart/libesp_driver_uart.a  esp-idf/esp_event/libesp_event.a  esp-idf/nvs_flash/libnvs_flash.a  esp-idf/esp_driver_pcnt/libesp_driver_pcnt.a  esp-idf/esp_driver_spi/libesp_driver_spi.a  esp-idf/esp_driver_mcpwm/libesp_driver_mcpwm.a  esp-idf/esp_driver_i2s/libesp_driver_i2s.a  esp-idf/sdmmc/libsdmmc.a  esp-idf/esp_driver_sdspi/libesp_driver_sdspi.a  esp-idf/esp_driver_sdio/libesp_driver_sdio.a  esp-idf/esp_driver_rmt/libesp_driver_rmt.a  esp-idf/esp_driver_tsens/libesp_driver_tsens.a  esp-idf/esp_driver_sdm/libesp_driver_sdm.a  esp-idf/esp_driver_i2c/libesp_driver_i2c.a  esp-idf/esp_driver_ledc/libesp_driver_ledc.a  esp-idf/esp_driver_parlio/libesp_driver_parlio.a  esp-idf/esp_driver_usb_serial_jtag/libesp_driver_usb_serial_jtag.a  esp-idf/driver/libdriver.a  esp-idf/esp_phy/libesp_phy.a  esp-idf/esp_vfs_console/libesp_vfs_console.a  esp-idf/vfs/libvfs.a  esp-idf/lwip/liblwip.a  esp-idf/esp_netif/libesp_netif.a  esp-idf/wpa_supplicant/libwpa_supplicant.a  esp-idf/esp_coex/libesp_coex.a  esp-idf/esp_wifi/libesp_wifi.a  esp-idf/http_parser/libhttp_parser.a  esp-idf/esp-tls/libesp-tls.a  esp-idf/esp_adc/libesp_adc.a  esp-idf/esp_gdbstub/libesp_gdbstub.a  esp-idf/tcp_transport/libtcp_transport.a  esp-idf/esp_http_client/libesp_http_client.a  esp-idf/esp_http_server/libesp_http_server.a  esp-idf/esp_https_ota/libesp_https_ota.a  esp-idf/mbedtls/mbedtls/library/libmbedtls.a  esp-idf/mbedtls/mbedtls/library/libmbedcrypto.a  esp-idf/mbedtls/mbedtls/library/libmbedx509.a  esp-idf/mbedtls/mbedtls/3rdparty/everest/libeverest.a  esp-idf/mbedtls/mbedtls/3rdparty/p256-m/libp256m.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_coex/lib/esp32c6/libcoexist.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libcore.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libespnow.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libmesh.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libnet80211.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libpp.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libsmartconfig.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libwapi.a  esp-idf/riscv/libriscv.a  esp-idf/esp_driver_gpio/libesp_driver_gpio.a  esp-idf/esp_pm/libesp_pm.a  esp-idf/mbedtls/libmbedtls.a  esp-idf/esp_app_format/libesp_app_format.a  esp-idf/esp_bootloader_format/libesp_bootloader_format.a  esp-idf/app_update/libapp_update.a  esp-idf/esp_partition/libesp_partition.a  esp-idf/efuse/libefuse.a  esp-idf/bootloader_support/libbootloader_support.a  esp-idf/esp_mm/libesp_mm.a  esp-idf/spi_flash/libspi_flash.a  esp-idf/esp_system/libesp_system.a  esp-idf/esp_common/libesp_common.a  esp-idf/esp_rom/libesp_rom.a  esp-idf/hal/libhal.a  esp-idf/log/liblog.a  esp-idf/heap/libheap.a  esp-idf/soc/libsoc.a  esp-idf/esp_security/libesp_security.a  esp-idf/esp_hw_support/libesp_hw_support.a  esp-idf/freertos/libfreertos.a  esp-idf/newlib/libnewlib.a  esp-idf/pthread/libpthread.a  esp-idf/cxx/libcxx.a  esp-idf/esp_timer/libesp_timer.a  esp-idf/esp_driver_gptimer/libesp_driver_gptimer.a  esp-idf/esp_ringbuf/libesp_ringbuf.a  esp-idf/esp_driver_uart/libesp_driver_uart.a  esp-idf/esp_event/libesp_event.a  esp-idf/nvs_flash/libnvs_flash.a  esp-idf/esp_driver_pcnt/libesp_driver_pcnt.a  esp-idf/esp_driver_spi/libesp_driver_spi.a  esp-idf/esp_driver_mcpwm/libesp_driver_mcpwm.a  esp-idf/esp_driver_i2s/libesp_driver_i2s.a  esp-idf/sdmmc/libsdmmc.a  esp-idf/esp_driver_sdspi/libesp_driver_sdspi.a  esp-idf/esp_driver_sdio/libesp_driver_sdio.a  esp-idf/esp_driver_rmt/libesp_driver_rmt.a  esp-idf/esp_driver_tsens/libesp_driver_tsens.a  esp-idf/esp_driver_sdm/libesp_driver_sdm.a  esp-idf/esp_driver_i2c/libesp_driver_i2c.a  esp-idf/esp_driver_ledc/libesp_driver_ledc.a  esp-idf/esp_driver_parlio/libesp_driver_parlio.a  esp-idf/esp_driver_usb_serial_jtag/libesp_driver_usb_serial_jtag.a  esp-idf/driver/libdriver.a  esp-idf/esp_phy/libesp_phy.a  esp-idf/esp_vfs_console/libesp_vfs_console.a  esp-idf/vfs/libvfs.a  esp-idf/lwip/liblwip.a  esp-idf/esp_netif/libesp_netif.a  esp-idf/wpa_supplicant/libwpa_supplicant.a  esp-idf/esp_coex/libesp_coex.a  esp-idf/esp_wifi/libesp_wifi.a  esp-idf/http_parser/libhttp_parser.a  esp-idf/esp-tls/libesp-tls.a  esp-idf/esp_adc/libesp_adc.a  esp-idf/esp_gdbstub/libesp_gdbstub.a  esp-idf/tcp_transport/libtcp_transport.a  esp-idf/esp_http_client/libesp_http_client.a  esp-idf/esp_http_server/libesp_http_server.a  esp-idf/esp_https_ota/libesp_https_ota.a  esp-idf/mbedtls/mbedtls/library/libmbedtls.a  esp-idf/mbedtls/mbedtls/library/libmbedcrypto.a  esp-idf/mbedtls/mbedtls/library/libmbedx509.a  esp-idf/mbedtls/mbedtls/3rdparty/everest/libeverest.a  esp-idf/mbedtls/mbedtls/3rdparty/p256-m/libp256m.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_coex/lib/esp32c6/libcoexist.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libcore.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libespnow.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libmesh.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libnet80211.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libpp.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libsmartconfig.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libwapi.a  esp-idf/riscv/libriscv.a  esp-idf/esp_driver_gpio/libesp_driver_gpio.a  esp-idf/esp_pm/libesp_pm.a  esp-idf/mbedtls/libmbedtls.a  esp-idf/esp_app_format/libesp_app_format.a  esp-idf/esp_bootloader_format/libesp_bootloader_format.a  esp-idf/app_update/libapp_update.a  esp-idf/esp_partition/libesp_partition.a  esp-idf/efuse/libefuse.a  esp-idf/bootloader_support/libbootloader_support.a  esp-idf/esp_mm/libesp_mm.a  esp-idf/spi_flash/libspi_flash.a  esp-idf/esp_system/libesp_system.a  esp-idf/esp_common/libesp_common.a  esp-idf/esp_rom/libesp_rom.a  esp-idf/hal/libhal.a  esp-idf/log/liblog.a  esp-idf/heap/libheap.a  esp-idf/soc/libsoc.a  esp-idf/esp_security/libesp_security.a  esp-idf/esp_hw_support/libesp_hw_support.a  esp-idf/freertos/libfreertos.a  esp-idf/newlib/libnewlib.a  esp-idf/pthread/libpthread.a  esp-idf/cxx/libcxx.a  esp-idf/esp_timer/libesp_timer.a  esp-idf/esp_driver_gptimer/libesp_driver_gptimer.a  esp-idf/esp_ringbuf/libesp_ringbuf.a  esp-idf/esp_driver_uart/libesp_driver_uart.a  esp-idf/esp_event/libesp_event.a  esp-idf/nvs_flash/libnvs_flash.a  esp-idf/esp_driver_pcnt/libesp_driver_pcnt.a  esp-idf/esp_driver_spi/libesp_driver_spi.a  esp-idf/esp_driver_mcpwm/libesp_driver_mcpwm.a  esp-idf/esp_driver_i2s/libesp_driver_i2s.a  esp-idf/sdmmc/libsdmmc.a  esp-idf/esp_driver_sdspi/libesp_driver_sdspi.a  esp-idf/esp_driver_sdio/libesp_driver_sdio.a  esp-idf/esp_driver_rmt/libesp_driver_rmt.a  esp-idf/esp_driver_tsens/libesp_driver_tsens.a  esp-idf/esp_driver_sdm/libesp_driver_sdm.a  esp-idf/esp_driver_i2c/libesp_driver_i2c.a  esp-idf/esp_driver_ledc/libesp_driver_ledc.a  esp-idf/esp_driver_parlio/libesp_driver_parlio.a  esp-idf/esp_driver_usb_serial_jtag/libesp_driver_usb_serial_jtag.a  esp-idf/driver/libdriver.a  esp-idf/esp_phy/libesp_phy.a  esp-idf/esp_vfs_console/libesp_vfs_console.a  esp-idf/vfs/libvfs.a  esp-idf/lwip/liblwip.a  esp-idf/esp_netif/libesp_netif.a  esp-idf/wpa_supplicant/libwpa_supplicant.a  esp-idf/esp_coex/libesp_coex.a  esp-idf/esp_wifi/libesp_wifi.a  esp-idf/http_parser/libhttp_parser.a  esp-idf/esp-tls/libesp-tls.a  esp-idf/esp_adc/libesp_adc.a  esp-idf/esp_gdbstub/libesp_gdbstub.a  esp-idf/tcp_transport/libtcp_transport.a  esp-idf/esp_http_client/libesp_http_client.a  esp-idf/esp_http_server/libesp_http_server.a  esp-idf/esp_https_ota/libesp_https_ota.a  esp-idf/mbedtls/mbedtls/library/libmbedtls.a  esp-idf/mbedtls/mbedtls/library/libmbedcrypto.a  esp-idf/mbedtls/mbedtls/library/libmbedx509.a  esp-idf/mbedtls/mbedtls/3rdparty/everest/libeverest.a  esp-idf/mbedtls/mbedtls/3rdparty/p256-m/libp256m.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_coex/lib/esp32c6/libcoexist.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libcore.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libespnow.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libmesh.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libnet80211.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libpp.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libsmartconfig.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libwapi.a  esp-idf/riscv/libriscv.a  esp-idf/esp_driver_gpio/libesp_driver_gpio.a  esp-idf/esp_pm/libesp_pm.a  esp-idf/mbedtls/libmbedtls.a  esp-idf/esp_app_format/libesp_app_format.a  esp-idf/esp_bootloader_format/libesp_bootloader_format.a  esp-idf/app_update/libapp_update.a  esp-idf/esp_partition/libesp_partition.a  esp-idf/efuse/libefuse.a  esp-idf/bootloader_support/libbootloader_support.a  esp-idf/esp_mm/libesp_mm.a  esp-idf/spi_flash/libspi_flash.a  esp-idf/esp_system/libesp_system.a  esp-idf/esp_common/libesp_common.a  esp-idf/esp_rom/libesp_rom.a  esp-idf/hal/libhal.a  esp-idf/log/liblog.a  esp-idf/heap/libheap.a  esp-idf/soc/libsoc.a  esp-idf/esp_security/libesp_security.a  esp-idf/esp_hw_support/libesp_hw_support.a  esp-idf/freertos/libfreertos.a  esp-idf/newlib/libnewlib.a  esp-idf/pthread/libpthread.a  esp-idf/cxx/libcxx.a  esp-idf/esp_timer/libesp_timer.a  esp-idf/esp_driver_gptimer/libesp_driver_gptimer.a  esp-idf/esp_ringbuf/libesp_ringbuf.a  esp-idf/esp_driver_uart/libesp_driver_uart.a  esp-idf/esp_event/libesp_event.a  esp-idf/nvs_flash/libnvs_flash.a  esp-idf/esp_driver_pcnt/libesp_driver_pcnt.a  esp-idf/esp_driver_spi/libesp_driver_spi.a  esp-idf/esp_driver_mcpwm/libesp_driver_mcpwm.a  esp-idf/esp_driver_i2s/libesp_driver_i2s.a  esp-idf/sdmmc/libsdmmc.a  esp-idf/esp_driver_sdspi/libesp_driver_sdspi.a  esp-idf/esp_driver_sdio/libesp_driver_sdio.a  esp-idf/esp_driver_rmt/libesp_driver_rmt.a  esp-idf/esp_driver_tsens/libesp_driver_tsens.a  esp-idf/esp_driver_sdm/libesp_driver_sdm.a  esp-idf/esp_driver_i2c/libesp_driver_i2c.a  esp-idf/esp_driver_ledc/libesp_driver_ledc.a  esp-idf/esp_driver_parlio/libesp_driver_parlio.a  esp-idf/esp_driver_usb_serial_jtag/libesp_driver_usb_serial_jtag.a  esp-idf/driver/libdriver.a  esp-idf/esp_phy/libesp_phy.a  esp-idf/esp_vfs_console/libesp_vfs_console.a  esp-idf/vfs/libvfs.a  esp-idf/lwip/liblwip.a  esp-idf/esp_netif/libesp_netif.a  esp-idf/wpa_supplicant/libwpa_supplicant.a  esp-idf/esp_coex/libesp_coex.a  esp-idf/esp_wifi/libesp_wifi.a  esp-idf/http_parser/libhttp_parser.a  esp-idf/esp-tls/libesp-tls.a  esp-idf/esp_adc/libesp_adc.a  esp-idf/esp_gdbstub/libesp_gdbstub.a  esp-idf/tcp_transport/libtcp_transport.a  esp-idf/esp_http_client/libesp_http_client.a  esp-idf/esp_http_server/libesp_http_server.a  esp-idf/esp_https_ota/libesp_https_ota.a  esp-idf/mbedtls/mbedtls/library/libmbedtls.a  esp-idf/mbedtls/mbedtls/library/libmbedcrypto.a  esp-idf/mbedtls/mbedtls/library/libmbedx509.a  esp-idf/mbedtls/mbedtls/3rdparty/everest/libeverest.a  esp-idf/mbedtls/mbedtls/3rdparty/p256-m/libp256m.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_coex/lib/esp32c6/libcoexist.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libcore.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libespnow.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libmesh.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libnet80211.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libpp.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libsmartconfig.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libwapi.a  esp-idf/riscv/libriscv.a  esp-idf/esp_driver_gpio/libesp_driver_gpio.a  esp-idf/esp_pm/libesp_pm.a  esp-idf/mbedtls/libmbedtls.a  esp-idf/esp_app_format/libesp_app_format.a  esp-idf/esp_bootloader_format/libesp_bootloader_format.a  esp-idf/app_update/libapp_update.a  esp-idf/esp_partition/libesp_partition.a  esp-idf/efuse/libefuse.a  esp-idf/bootloader_support/libbootloader_support.a  esp-idf/esp_mm/libesp_mm.a  esp-idf/spi_flash/libspi_flash.a  esp-idf/esp_system/libesp_system.a  esp-idf/esp_common/libesp_common.a  esp-idf/esp_rom/libesp_rom.a  esp-idf/hal/libhal.a  esp-idf/log/liblog.a  esp-idf/heap/libheap.a  esp-idf/soc/libsoc.a  esp-idf/esp_security/libesp_security.a  esp-idf/esp_hw_support/libesp_hw_support.a  esp-idf/freertos/libfreertos.a  esp-idf/newlib/libnewlib.a  esp-idf/pthread/libpthread.a  esp-idf/cxx/libcxx.a  esp-idf/esp_timer/libesp_timer.a  esp-idf/esp_driver_gptimer/libesp_driver_gptimer.a  esp-idf/esp_ringbuf/libesp_ringbuf.a  esp-idf/esp_driver_uart/libesp_driver_uart.a  esp-idf/esp_event/libesp_event.a  esp-idf/nvs_flash/libnvs_flash.a  esp-idf/esp_driver_pcnt/libesp_driver_pcnt.a  esp-idf/esp_driver_spi/libesp_driver_spi.a  esp-idf/esp_driver_mcpwm/libesp_driver_mcpwm.a  esp-idf/esp_driver_i2s/libesp_driver_i2s.a  esp-idf/sdmmc/libsdmmc.a  esp-idf/esp_driver_sdspi/libesp_driver_sdspi.a  esp-idf/esp_driver_sdio/libesp_driver_sdio.a  esp-idf/esp_driver_rmt/libesp_driver_rmt.a  esp-idf/esp_driver_tsens/libesp_driver_tsens.a  esp-idf/esp_driver_sdm/libesp_driver_sdm.a  esp-idf/esp_driver_i2c/libesp_driver_i2c.a  esp-idf/esp_driver_ledc/libesp_driver_ledc.a  esp-idf/esp_driver_parlio/libesp_driver_parlio.a  esp-idf/esp_driver_usb_serial_jtag/libesp_driver_usb_serial_jtag.a  esp-idf/driver/libdriver.a  esp-idf/esp_phy/libesp_phy.a  esp-idf/esp_vfs_console/libesp_vfs_console.a  esp-idf/vfs/libvfs.a  esp-idf/lwip/liblwip.a  esp-idf/esp_netif/libesp_netif.a  esp-idf/wpa_supplicant/libwpa_supplicant.a  esp-idf/esp_coex/libesp_coex.a  esp-idf/esp_wifi/libesp_wifi.a  esp-idf/http_parser/libhttp_parser.a  esp-idf/esp-tls/libesp-tls.a  esp-idf/esp_adc/libesp_adc.a  esp-idf/esp_gdbstub/libesp_gdbstub.a  esp-idf/tcp_transport/libtcp_transport.a  esp-idf/esp_http_client/libesp_http_client.a  esp-idf/esp_http_server/libesp_http_server.a  esp-idf/esp_https_ota/libesp_https_ota.a  esp-idf/mbedtls/mbedtls/library/libmbedtls.a  esp-idf/mbedtls/mbedtls/library/libmbedcrypto.a  esp-idf/mbedtls/mbedtls/library/libmbedx509.a  esp-idf/mbedtls/mbedtls/3rdparty/everest/libeverest.a  esp-idf/mbedtls/mbedtls/3rdparty/p256-m/libp256m.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_coex/lib/esp32c6/libcoexist.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libcore.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libespnow.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libmesh.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libnet80211.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libpp.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libsmartconfig.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libwapi.a  -u esp_app_desc  -u esp_efuse_startup_include_func  -u start_app  -u __ubsan_include  -u esp_system_include_startup_funcs  -u tlsf_set_rom_patches  -u esp_rom_include_multi_heap_patch  -u __assert_func  -u esp_security_init_include_impl  -u rv_core_critical_regs_save  -u rv_core_critical_regs_restore  -u esp_sleep_gpio_include  -Wl,--undefined=FreeRTOS_openocd_params  -u app_main  -lc  -lm  -u newlib_include_heap_impl  -u newlib_include_syscalls_impl  -u newlib_include_pthread_impl  -u newlib_include_assert_impl  -u newlib_include_getentropy_impl  -u newlib_include_init_funcs  -u pthread_include_pthread_impl  -u pthread_include_pthread_cond_var_impl  -u pthread_include_pthread_local_storage_impl  -u pthread_include_pthread_rwlock_impl  -u pthread_include_pthread_semaphore_impl  -Wl,--wrap=__register_frame_info_bases  -Wl,--wrap=__register_frame_info  -Wl,--wrap=__register_frame  -Wl,--wrap=__register_frame_info_table_bases  -Wl,--wrap=__register_frame_info_table  -Wl,--wrap=__register_frame_table  -Wl,--wrap=__deregister_frame_info_bases  -Wl,--wrap=__deregister_frame_info  -Wl,--wrap=_Unwind_Find_FDE  -Wl,--wrap=_Unwind_GetGR  -Wl,--wrap=_Unwind_GetCFA  -Wl,--wrap=_Unwind_GetIP  -Wl,--wrap=_Unwind_GetIPInfo  -Wl,--wrap=_Unwind_GetRegionStart  -Wl,--wrap=_Unwind_GetDataRelBase  -Wl,--wrap=_Unwind_GetTextRelBase  -Wl,--wrap=_Unwind_SetIP  -Wl,--wrap=_Unwind_SetGR  -Wl,--wrap=_Unwind_GetLanguageSpecificData  -Wl,--wrap=_Unwind_FindEnclosingFunction  -Wl,--wrap=_Unwind_Resume  -Wl,--wrap=_Unwind_RaiseException  -Wl,--wrap=_Unwind_DeleteException  -Wl,--wrap=_Unwind_ForcedUnwind  -Wl,--wrap=_Unwind_Resume_or_Rethrow  -Wl,--wrap=_Unwind_Backtrace  -Wl,--wrap=__cxa_call_unexpected  -Wl,--wrap=__gxx_personality_v0  -Wl,--wrap=__cxa_throw  -Wl,--wrap=__cxa_allocate_exception  -u __cxa_guard_dummy  -u __cxx_init_dummy  -lstdc++  esp-idf/pthread/libpthread.a  esp-idf/newlib/libnewlib.a  -lgcc  esp-idf/cxx/libcxx.a  -u __cxx_fatal_exception  -u esp_timer_init_include_func  -u uart_vfs_include_dev_init  -u usb_serial_jtag_vfs_include_dev_init  -u usb_serial_jtag_connection_monitor_include  -u include_esp_phy_override  -lphy  -lbtbb  esp-idf/esp_phy/libesp_phy.a  -lphy  -lbtbb  esp-idf/esp_phy/libesp_phy.a  -lphy  -lbtbb  -u esp_vfs_include_console_register  -u vfs_include_syscalls_impl  -u esp_vfs_include_nullfs_register  lib/libapp_zig.a && :
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(/Users/josephmontanez_1/Documents/zig-esp-idf-sample/build/../.zig-cache/o/675f32137bd42aa6a6ed335843c3ae98/libapp_zig.a.o): in function `wifi.init':
/Users/josephmontanez_1/Documents/zig-esp-idf-sample/imports/wifi.zig:5:(.text+0x426): undefined reference to `esp_wifi_init'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(/Users/josephmontanez_1/Documents/zig-esp-idf-sample/build/../.zig-cache/o/675f32137bd42aa6a6ed335843c3ae98/libapp_zig.a.o): in function `wifi.setConfig':
/Users/josephmontanez_1/Documents/zig-esp-idf-sample/imports/wifi.zig:142:(.text+0x4bc): undefined reference to `esp_wifi_set_config'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(/Users/josephmontanez_1/Documents/zig-esp-idf-sample/build/../.zig-cache/o/675f32137bd42aa6a6ed335843c3ae98/libapp_zig.a.o): in function `wifi.start':
/Users/josephmontanez_1/Documents/zig-esp-idf-sample/imports/wifi.zig:29:(.text+0x4cc): undefined reference to `esp_wifi_start'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(/Users/josephmontanez_1/Documents/zig-esp-idf-sample/build/../.zig-cache/o/675f32137bd42aa6a6ed335843c3ae98/libapp_zig.a.o): in function `wifi.connect':
/Users/josephmontanez_1/Documents/zig-esp-idf-sample/imports/wifi.zig:38:(.text+0x4dc): undefined reference to `esp_wifi_connect'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(/Users/josephmontanez_1/Documents/zig-esp-idf-sample/build/../.zig-cache/o/675f32137bd42aa6a6ed335843c3ae98/libapp_zig.a.o): in function `panic.panic':
/Users/josephmontanez_1/Documents/zig-esp-idf-sample/imports/panic.zig:6:(.text+0xe04): undefined reference to `esp_log_system_timestamp'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.

The weird part is the libs have defined symbols:

find build -name "*.a" -exec sh -c 'nm -g {} | grep -E "T esp_wifi_init" && echo "Found in: {}"' \;
00000000 T esp_wifi_init
Found in: build/esp-idf/esp_wifi/libesp_wifi.a

/Users/josephmontanez_1/Documents/zig-esp-idf-sample/imports/wifi.zig:5:(.text+0x426): undefined reference to `esp_wifi_init'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(/Users/josephmontanez_1/Documents/zig-esp-idf-sample/build/../.zig-cache/o/675f32137bd42aa6a6ed335843c3ae98/libapp_zig.a.o): in function `wifi.setConfig':

It's also already in the linker command from CMAKE. Just incase I changed the CMakefile.txt:

set(DEPS pthread driver esp_wifi wpa_supplicant) # Added esp_wifi and wpa_supplicant

idf_component_register(SRCS "placeholder.c"
    INCLUDE_DIRS "."
    PRIV_REQUIRES "${DEPS}"
)

include(../cmake/zig-build.cmake)

Then cleaned and rebuilt:

idf.py set-target esp32c6
idf.py fullclean
idf.py reconfigure
idf.py build

But I still get the same issues:

/Users/josephmontanez_1/.espressif/tools/xtensa-esp-elf/esp-14.2.0_20241119/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/14.2.0/../../../../xtensa-esp-elf/bin/ld: warning: /Users/josephmontanez_1/.espressif/tools/xtensa-esp-elf/esp-14.2.0_20241119/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/14.2.0/esp32/no-rtti/crtn.o: missing .note.GNU-stack section implies executable stack
/Users/josephmontanez_1/.espressif/tools/xtensa-esp-elf/esp-14.2.0_20241119/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/14.2.0/../../../../xtensa-esp-elf/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
/Users/josephmontanez_1/.espressif/tools/xtensa-esp-elf/esp-14.2.0_20241119/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/14.2.0/../../../../xtensa-esp-elf/bin/ld: lib/libapp_zig.a(/Users/josephmontanez_1/Documents/zig-esp-idf-sample/build/../.zig-cache/o/a6d0f41edcfd2f24eddfc85cbd7f1272/libapp_zig.a.o):(.literal+0x90): undefined reference to `esp_wifi_init'
/Users/josephmontanez_1/.espressif/tools/xtensa-esp-elf/esp-14.2.0_20241119/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/14.2.0/../../../../xtensa-esp-elf/bin/ld: lib/libapp_zig.a(/Users/josephmontanez_1/Documents/zig-esp-idf-sample/build/../.zig-cache/o/a6d0f41edcfd2f24eddfc85cbd7f1272/libapp_zig.a.o):(.literal+0xa4): undefined reference to `esp_wifi_set_config'
/Users/josephmontanez_1/.espressif/tools/xtensa-esp-elf/esp-14.2.0_20241119/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/14.2.0/../../../../xtensa-esp-elf/bin/ld: lib/libapp_zig.a(/Users/josephmontanez_1/Documents/zig-esp-idf-sample/build/../.zig-cache/o/a6d0f41edcfd2f24eddfc85cbd7f1272/libapp_zig.a.o):(.literal+0xa8): undefined reference to `esp_wifi_start'
/Users/josephmontanez_1/.espressif/tools/xtensa-esp-elf/esp-14.2.0_20241119/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/14.2.0/../../../../xtensa-esp-elf/bin/ld: lib/libapp_zig.a(/Users/josephmontanez_1/Documents/zig-esp-idf-sample/build/../.zig-cache/o/a6d0f41edcfd2f24eddfc85cbd7f1272/libapp_zig.a.o):(.literal+0xac): undefined reference to `esp_wifi_connect'
/Users/josephmontanez_1/.espressif/tools/xtensa-esp-elf/esp-14.2.0_20241119/xtensa-esp-elf/bin/../lib/gcc/xtensa-esp-elf/14.2.0/../../../../xtensa-esp-elf/bin/ld: lib/libapp_zig.a(/Users/josephmontanez_1/Documents/zig-esp-idf-sample/build/../.zig-cache/o/a6d0f41edcfd2f24eddfc85cbd7f1272/libapp_zig.a.o):(.literal+0x150): undefined reference to `esp_log_system_timestamp'

I did need to swap:

pub const wifi_sta_config_t = opaque {};

For

pub const wifi_sta_config_t = extern struct {
    ssid: [32]u8 = std.mem.zeroes([32]u8),
    password: [64]u8 = std.mem.zeroes([64]u8),
    scan_method: wifi_scan_method_t = std.mem.zeroes(wifi_scan_method_t),
    bssid_set: bool = false,
    bssid: [6]u8 = std.mem.zeroes([6]u8),
    channel: u8 = 0,
    listen_interval: u16 = 3,
    sort_method: wifi_sort_method_t = std.mem.zeroes(wifi_sort_method_t),
    threshold: wifi_scan_threshold_t = std.mem.zeroes(wifi_scan_threshold_t),
    pmf_cfg: wifi_pmf_config_t = std.mem.zeroes(wifi_pmf_config_t),

    // Connection Feature
    // 0     rm_enabled
    // 1     btm_enabled
    // 2     mbo_enabled
    // 3     ft_enabled
    // 4     owe_enabled
    // 5     transition_disable
    // 6-31  reserved
    connection_features: u32 = 0, // Stores BTM, RM, MBO, FT, OWE, etc.

    sae_pwe_h2e: wifi_sae_pwe_method_t = std.mem.zeroes(wifi_sae_pwe_method_t),
    sae_pk_mode: wifi_sae_pk_mode_t = std.mem.zeroes(wifi_sae_pk_mode_t),
    failure_retry_cnt: u8 = 0,

    // HE Capabilities
    // 0      he_dcm_set
    // 1-2    he_dcm_max_constellation_tx (2-bit)
    // 3-4    he_dcm_max_constellation_rx (2-bit)
    // 5      he_mcs9_enabled
    // 6      he_su_beamformee_disabled
    // 7      he_trig_su_bmforming_feedback_disabled
    // 8      he_trig_mu_bmforming_partial_feedback_disabled
    // 9      he_trig_cqi_feedback_disabled
    // 10-31  he_reserved
    he_capabilities: u32 = 0, // Stores HE-related flags (DCM, MCS9, beamforming, CQI, etc.)

    sae_h2e_identifier: [32]u8 = std.mem.zeroes([32]u8),
};

I also changed wifi.init() - .{} cannot be used to initalize the struct.

pub fn init(config: ?*const sys.wifi_init_config_t) !*const sys.wifi_init_config_t {
    if (config) |c| {
        try errors.espCheckError(sys.esp_wifi_init(c));
        return c;
    } else return .{};
}

To

pub fn init(config: *const sys.wifi_init_config_t) !void {
    try errors.espCheckError(sys.esp_wifi_init(config));
}

This is some of the wifi code I was trying to call:

    var wifi_config_init = idf.sys.wifi_init_config_t{};
    idf.wifi.init(&wifi_config_init) catch {};

    var wifi_config = idf.sys.wifi_config_t{ .sta = .{ .ssid = [_]u8{0} ** 32, .password = [_]u8{0} ** 64 } };
    const ssid = "xxxxxxxxx";
    const passwd = "xxxxxx";
    @memcpy(wifi_config.sta.ssid[0..ssid.len], ssid);
    @memcpy(wifi_config.sta.password[0..passwd.len], passwd);
    idf.wifi.setConfig(.WIFI_IF_STA, &wifi_config) catch {};

    idf.wifi.start() catch {};
    idf.wifi.connect() catch {};

Note idf.sys does not exist I had to add this to the module and include into the build command which is just "idf-sys.zig". Also I know the code above is not correct but I wanted to get the linking errors fixed first. I tried idf.py menuconfig but everything around wifi and WPA was already checked. I ran a C version and it worked find with the same menuconfig. Nothing in the CMakefile was needed to be added like I tried.

@kassane kassane added the bug Something isn't working label Feb 2, 2025
@kassane
Copy link
Owner

kassane commented Feb 2, 2025

Hi @joseph-montanez,

What's IDF version? (I assume it's 5.4)

Can you confirm if this happens always or first time?

The build.zig in searched_idf_libs will try to capture build object files and not static-libraries from esp-idf. This is to increase the size of libapp_zig.
The final binary is still the responsibility of CMake. It will pull the libapp_zig [main function included] before building the binary.

pub fn searched_idf_libs(b: *std.Build, lib: *std.Build.Step.Compile) !void {

However, zig will not always run in the order of the CMake dependencies (if you have ninja-build installed, it will parallelize the build and change the order of the dependencies that are generated or downloaded).

I suggest trying the rebuild directly (without cleaning) if the first attempt fails.
But if the error continues, the problem is that the required dependencies are not available in object file.

Note idf.sys does not exist I had to add this to the module and include into the build command which is just "idf-sys.zig".

Yeah! Not imported to esp_idf pub module, but available in priv dep modules.

return b.addModule("esp_idf", .{
.root_source_file = b.path(b.pathJoin(&.{
src_path,
"imports",
"idf.zig",
})),
.imports = &.{

@joseph-montanez
Copy link
Author

joseph-montanez commented Feb 3, 2025

Yes it's IDF 5.4, I got it "working" but see my details. If I build a second time, it still an issue but not inside Zig:

/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/src/rsn_supp/wpa.c:2373:(.text.wpa_set_bss+0x170): undefined reference to `esp_wifi_get_config'

If its an order issue, one thing I've noted is that esp-idf/esp_wifi/libesp_wifi.a and esp-idf/wpa_supplicant/libwpa_supplicant.a is included far before /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libnet80211.a which has esp_wifi_get_config declared in it, but its also included 6x in the same linking, but its always much after esp-idf/esp_wifi/libesp_wifi.a and esp-idf/wpa_supplicant/libwpa_supplicant.a

: && /Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/riscv32-esp-elf-g++ -march=rv32imac_zicsr_zifencei -nostartfiles -march=rv32imac_zicsr_zifencei --specs=nosys.specs    -Wl,--cref -Wl,--defsym=IDF_TARGET_ESP32C6=0 -Wl,--Map=/Users/josephmontanez_1/Documents/zig-esp-idf-sample/build/zig-sample-idf.map -Wl,--no-warn-rwx-segments -Wl,--orphan-handling=warn -fno-rtti -fno-lto -Wl,--gc-sections -Wl,--warn-common -T rom.api.ld -T esp32c6.peripherals.ld -T esp32c6.rom.ld -T esp32c6.rom.api.ld -T esp32c6.rom.rvfp.ld -T esp32c6.rom.wdt.ld -T esp32c6.rom.systimer.ld -T esp32c6.rom.version.ld -T esp32c6.rom.phy.ld -T esp32c6.rom.coexist.ld -T esp32c6.rom.net80211.ld -T esp32c6.rom.pp.ld -T esp32c6.rom.newlib.ld -T esp32c6.rom.newlib-normal.ld -T esp32c6.rom.heap.ld -T memory.ld -T sections.ld CMakeFiles/zig-sample-idf.elf.dir/project_elf_src_esp32c6.c.obj -o zig-sample-idf.elf -L/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/riscv/ld   -L/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/soc/esp32c6/ld   -L/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_rom/esp32c6/ld   -L/Users/josephmontanez_1/Documents/zig-esp-idf-sample/build/esp-idf/esp_system/ld   -L/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_phy/lib/esp32c6   -L/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_coex/lib/esp32c6   -L/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6 esp-idf/riscv/libriscv.a  esp-idf/esp_driver_gpio/libesp_driver_gpio.a  esp-idf/esp_pm/libesp_pm.a  esp-idf/mbedtls/libmbedtls.a  esp-idf/esp_app_format/libesp_app_format.a  esp-idf/esp_bootloader_format/libesp_bootloader_format.a  esp-idf/app_update/libapp_update.a  esp-idf/esp_partition/libesp_partition.a  esp-idf/efuse/libefuse.a  esp-idf/bootloader_support/libbootloader_support.a  esp-idf/esp_mm/libesp_mm.a  esp-idf/spi_flash/libspi_flash.a  esp-idf/esp_system/libesp_system.a  esp-idf/esp_common/libesp_common.a  esp-idf/esp_rom/libesp_rom.a  esp-idf/hal/libhal.a  esp-idf/log/liblog.a  esp-idf/heap/libheap.a  esp-idf/soc/libsoc.a  esp-idf/esp_security/libesp_security.a  esp-idf/esp_hw_support/libesp_hw_support.a  esp-idf/freertos/libfreertos.a  esp-idf/newlib/libnewlib.a  esp-idf/pthread/libpthread.a  esp-idf/cxx/libcxx.a  esp-idf/esp_timer/libesp_timer.a  esp-idf/esp_driver_gptimer/libesp_driver_gptimer.a  esp-idf/esp_ringbuf/libesp_ringbuf.a  esp-idf/esp_driver_uart/libesp_driver_uart.a  esp-idf/app_trace/libapp_trace.a  esp-idf/esp_event/libesp_event.a  esp-idf/nvs_flash/libnvs_flash.a  esp-idf/esp_driver_pcnt/libesp_driver_pcnt.a  esp-idf/esp_driver_spi/libesp_driver_spi.a  esp-idf/esp_driver_mcpwm/libesp_driver_mcpwm.a  esp-idf/esp_driver_i2s/libesp_driver_i2s.a  esp-idf/sdmmc/libsdmmc.a  esp-idf/esp_driver_sdspi/libesp_driver_sdspi.a  esp-idf/esp_driver_sdio/libesp_driver_sdio.a  esp-idf/esp_driver_rmt/libesp_driver_rmt.a  esp-idf/esp_driver_tsens/libesp_driver_tsens.a  esp-idf/esp_driver_sdm/libesp_driver_sdm.a  esp-idf/esp_driver_i2c/libesp_driver_i2c.a  esp-idf/esp_driver_ledc/libesp_driver_ledc.a  esp-idf/esp_driver_parlio/libesp_driver_parlio.a  esp-idf/esp_driver_usb_serial_jtag/libesp_driver_usb_serial_jtag.a  esp-idf/driver/libdriver.a  esp-idf/esp_phy/libesp_phy.a  esp-idf/esp_vfs_console/libesp_vfs_console.a  esp-idf/vfs/libvfs.a  esp-idf/lwip/liblwip.a  esp-idf/esp_netif/libesp_netif.a  esp-idf/wpa_supplicant/libwpa_supplicant.a  esp-idf/esp_coex/libesp_coex.a  esp-idf/esp_wifi/libesp_wifi.a  esp-idf/unity/libunity.a  esp-idf/cmock/libcmock.a  esp-idf/console/libconsole.a  esp-idf/http_parser/libhttp_parser.a  esp-idf/esp-tls/libesp-tls.a  esp-idf/esp_adc/libesp_adc.a  esp-idf/esp_driver_cam/libesp_driver_cam.a  esp-idf/esp_eth/libesp_eth.a  esp-idf/esp_gdbstub/libesp_gdbstub.a  esp-idf/esp_hid/libesp_hid.a  esp-idf/tcp_transport/libtcp_transport.a  esp-idf/esp_http_client/libesp_http_client.a  esp-idf/esp_http_server/libesp_http_server.a  esp-idf/esp_https_ota/libesp_https_ota.a  esp-idf/esp_https_server/libesp_https_server.a  esp-idf/esp_lcd/libesp_lcd.a  esp-idf/protobuf-c/libprotobuf-c.a  esp-idf/protocomm/libprotocomm.a  esp-idf/esp_local_ctrl/libesp_local_ctrl.a  esp-idf/espcoredump/libespcoredump.a  esp-idf/wear_levelling/libwear_levelling.a  esp-idf/fatfs/libfatfs.a  esp-idf/ieee802154/libieee802154.a  esp-idf/json/libjson.a  esp-idf/mqtt/libmqtt.a  esp-idf/nvs_sec_provider/libnvs_sec_provider.a  esp-idf/rt/librt.a  esp-idf/spiffs/libspiffs.a  esp-idf/wifi_provisioning/libwifi_provisioning.a  esp-idf/main/libmain.a  esp-idf/app_trace/libapp_trace.a  esp-idf/unity/libunity.a  esp-idf/esp_https_server/libesp_https_server.a  -u esp_system_include_coredump_init  esp-idf/wear_levelling/libwear_levelling.a  -u nvs_sec_provider_include_impl  esp-idf/protocomm/libprotocomm.a  esp-idf/console/libconsole.a  esp-idf/protobuf-c/libprotobuf-c.a  esp-idf/json/libjson.a  esp-idf/riscv/libriscv.a  esp-idf/esp_driver_gpio/libesp_driver_gpio.a  esp-idf/esp_pm/libesp_pm.a  esp-idf/mbedtls/libmbedtls.a  esp-idf/esp_app_format/libesp_app_format.a  esp-idf/esp_bootloader_format/libesp_bootloader_format.a  esp-idf/app_update/libapp_update.a  esp-idf/esp_partition/libesp_partition.a  esp-idf/efuse/libefuse.a  esp-idf/bootloader_support/libbootloader_support.a  esp-idf/esp_mm/libesp_mm.a  esp-idf/spi_flash/libspi_flash.a  esp-idf/esp_system/libesp_system.a  esp-idf/esp_common/libesp_common.a  esp-idf/esp_rom/libesp_rom.a  esp-idf/hal/libhal.a  esp-idf/log/liblog.a  esp-idf/heap/libheap.a  esp-idf/soc/libsoc.a  esp-idf/esp_security/libesp_security.a  esp-idf/esp_hw_support/libesp_hw_support.a  esp-idf/freertos/libfreertos.a  esp-idf/newlib/libnewlib.a  esp-idf/pthread/libpthread.a  esp-idf/cxx/libcxx.a  esp-idf/esp_timer/libesp_timer.a  esp-idf/esp_driver_gptimer/libesp_driver_gptimer.a  esp-idf/esp_ringbuf/libesp_ringbuf.a  esp-idf/esp_driver_uart/libesp_driver_uart.a  esp-idf/esp_event/libesp_event.a  esp-idf/nvs_flash/libnvs_flash.a  esp-idf/esp_driver_pcnt/libesp_driver_pcnt.a  esp-idf/esp_driver_spi/libesp_driver_spi.a  esp-idf/esp_driver_mcpwm/libesp_driver_mcpwm.a  esp-idf/esp_driver_i2s/libesp_driver_i2s.a  esp-idf/sdmmc/libsdmmc.a  esp-idf/esp_driver_sdspi/libesp_driver_sdspi.a  esp-idf/esp_driver_sdio/libesp_driver_sdio.a  esp-idf/esp_driver_rmt/libesp_driver_rmt.a  esp-idf/esp_driver_tsens/libesp_driver_tsens.a  esp-idf/esp_driver_sdm/libesp_driver_sdm.a  esp-idf/esp_driver_i2c/libesp_driver_i2c.a  esp-idf/esp_driver_ledc/libesp_driver_ledc.a  esp-idf/esp_driver_parlio/libesp_driver_parlio.a  esp-idf/esp_driver_usb_serial_jtag/libesp_driver_usb_serial_jtag.a  esp-idf/driver/libdriver.a  esp-idf/esp_phy/libesp_phy.a  esp-idf/esp_vfs_console/libesp_vfs_console.a  esp-idf/vfs/libvfs.a  esp-idf/lwip/liblwip.a  esp-idf/esp_netif/libesp_netif.a  esp-idf/wpa_supplicant/libwpa_supplicant.a  esp-idf/esp_coex/libesp_coex.a  esp-idf/esp_wifi/libesp_wifi.a  esp-idf/http_parser/libhttp_parser.a  esp-idf/esp-tls/libesp-tls.a  esp-idf/esp_adc/libesp_adc.a  esp-idf/esp_gdbstub/libesp_gdbstub.a  esp-idf/tcp_transport/libtcp_transport.a  esp-idf/esp_http_client/libesp_http_client.a  esp-idf/esp_http_server/libesp_http_server.a  esp-idf/esp_https_ota/libesp_https_ota.a  esp-idf/mbedtls/mbedtls/library/libmbedtls.a  esp-idf/mbedtls/mbedtls/library/libmbedcrypto.a  esp-idf/mbedtls/mbedtls/library/libmbedx509.a  esp-idf/mbedtls/mbedtls/3rdparty/everest/libeverest.a  esp-idf/mbedtls/mbedtls/3rdparty/p256-m/libp256m.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_coex/lib/esp32c6/libcoexist.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libcore.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libespnow.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libmesh.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libnet80211.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libpp.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libsmartconfig.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libwapi.a  esp-idf/riscv/libriscv.a  esp-idf/esp_driver_gpio/libesp_driver_gpio.a  esp-idf/esp_pm/libesp_pm.a  esp-idf/mbedtls/libmbedtls.a  esp-idf/esp_app_format/libesp_app_format.a  esp-idf/esp_bootloader_format/libesp_bootloader_format.a  esp-idf/app_update/libapp_update.a  esp-idf/esp_partition/libesp_partition.a  esp-idf/efuse/libefuse.a  esp-idf/bootloader_support/libbootloader_support.a  esp-idf/esp_mm/libesp_mm.a  esp-idf/spi_flash/libspi_flash.a  esp-idf/esp_system/libesp_system.a  esp-idf/esp_common/libesp_common.a  esp-idf/esp_rom/libesp_rom.a  esp-idf/hal/libhal.a  esp-idf/log/liblog.a  esp-idf/heap/libheap.a  esp-idf/soc/libsoc.a  esp-idf/esp_security/libesp_security.a  esp-idf/esp_hw_support/libesp_hw_support.a  esp-idf/freertos/libfreertos.a  esp-idf/newlib/libnewlib.a  esp-idf/pthread/libpthread.a  esp-idf/cxx/libcxx.a  esp-idf/esp_timer/libesp_timer.a  esp-idf/esp_driver_gptimer/libesp_driver_gptimer.a  esp-idf/esp_ringbuf/libesp_ringbuf.a  esp-idf/esp_driver_uart/libesp_driver_uart.a  esp-idf/esp_event/libesp_event.a  esp-idf/nvs_flash/libnvs_flash.a  esp-idf/esp_driver_pcnt/libesp_driver_pcnt.a  esp-idf/esp_driver_spi/libesp_driver_spi.a  esp-idf/esp_driver_mcpwm/libesp_driver_mcpwm.a  esp-idf/esp_driver_i2s/libesp_driver_i2s.a  esp-idf/sdmmc/libsdmmc.a  esp-idf/esp_driver_sdspi/libesp_driver_sdspi.a  esp-idf/esp_driver_sdio/libesp_driver_sdio.a  esp-idf/esp_driver_rmt/libesp_driver_rmt.a  esp-idf/esp_driver_tsens/libesp_driver_tsens.a  esp-idf/esp_driver_sdm/libesp_driver_sdm.a  esp-idf/esp_driver_i2c/libesp_driver_i2c.a  esp-idf/esp_driver_ledc/libesp_driver_ledc.a  esp-idf/esp_driver_parlio/libesp_driver_parlio.a  esp-idf/esp_driver_usb_serial_jtag/libesp_driver_usb_serial_jtag.a  esp-idf/driver/libdriver.a  esp-idf/esp_phy/libesp_phy.a  esp-idf/esp_vfs_console/libesp_vfs_console.a  esp-idf/vfs/libvfs.a  esp-idf/lwip/liblwip.a  esp-idf/esp_netif/libesp_netif.a  esp-idf/wpa_supplicant/libwpa_supplicant.a  esp-idf/esp_coex/libesp_coex.a  esp-idf/esp_wifi/libesp_wifi.a  esp-idf/http_parser/libhttp_parser.a  esp-idf/esp-tls/libesp-tls.a  esp-idf/esp_adc/libesp_adc.a  esp-idf/esp_gdbstub/libesp_gdbstub.a  esp-idf/tcp_transport/libtcp_transport.a  esp-idf/esp_http_client/libesp_http_client.a  esp-idf/esp_http_server/libesp_http_server.a  esp-idf/esp_https_ota/libesp_https_ota.a  esp-idf/mbedtls/mbedtls/library/libmbedtls.a  esp-idf/mbedtls/mbedtls/library/libmbedcrypto.a  esp-idf/mbedtls/mbedtls/library/libmbedx509.a  esp-idf/mbedtls/mbedtls/3rdparty/everest/libeverest.a  esp-idf/mbedtls/mbedtls/3rdparty/p256-m/libp256m.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_coex/lib/esp32c6/libcoexist.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libcore.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libespnow.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libmesh.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libnet80211.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libpp.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libsmartconfig.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libwapi.a  esp-idf/riscv/libriscv.a  esp-idf/esp_driver_gpio/libesp_driver_gpio.a  esp-idf/esp_pm/libesp_pm.a  esp-idf/mbedtls/libmbedtls.a  esp-idf/esp_app_format/libesp_app_format.a  esp-idf/esp_bootloader_format/libesp_bootloader_format.a  esp-idf/app_update/libapp_update.a  esp-idf/esp_partition/libesp_partition.a  esp-idf/efuse/libefuse.a  esp-idf/bootloader_support/libbootloader_support.a  esp-idf/esp_mm/libesp_mm.a  esp-idf/spi_flash/libspi_flash.a  esp-idf/esp_system/libesp_system.a  esp-idf/esp_common/libesp_common.a  esp-idf/esp_rom/libesp_rom.a  esp-idf/hal/libhal.a  esp-idf/log/liblog.a  esp-idf/heap/libheap.a  esp-idf/soc/libsoc.a  esp-idf/esp_security/libesp_security.a  esp-idf/esp_hw_support/libesp_hw_support.a  esp-idf/freertos/libfreertos.a  esp-idf/newlib/libnewlib.a  esp-idf/pthread/libpthread.a  esp-idf/cxx/libcxx.a  esp-idf/esp_timer/libesp_timer.a  esp-idf/esp_driver_gptimer/libesp_driver_gptimer.a  esp-idf/esp_ringbuf/libesp_ringbuf.a  esp-idf/esp_driver_uart/libesp_driver_uart.a  esp-idf/esp_event/libesp_event.a  esp-idf/nvs_flash/libnvs_flash.a  esp-idf/esp_driver_pcnt/libesp_driver_pcnt.a  esp-idf/esp_driver_spi/libesp_driver_spi.a  esp-idf/esp_driver_mcpwm/libesp_driver_mcpwm.a  esp-idf/esp_driver_i2s/libesp_driver_i2s.a  esp-idf/sdmmc/libsdmmc.a  esp-idf/esp_driver_sdspi/libesp_driver_sdspi.a  esp-idf/esp_driver_sdio/libesp_driver_sdio.a  esp-idf/esp_driver_rmt/libesp_driver_rmt.a  esp-idf/esp_driver_tsens/libesp_driver_tsens.a  esp-idf/esp_driver_sdm/libesp_driver_sdm.a  esp-idf/esp_driver_i2c/libesp_driver_i2c.a  esp-idf/esp_driver_ledc/libesp_driver_ledc.a  esp-idf/esp_driver_parlio/libesp_driver_parlio.a  esp-idf/esp_driver_usb_serial_jtag/libesp_driver_usb_serial_jtag.a  esp-idf/driver/libdriver.a  esp-idf/esp_phy/libesp_phy.a  esp-idf/esp_vfs_console/libesp_vfs_console.a  esp-idf/vfs/libvfs.a  esp-idf/lwip/liblwip.a  esp-idf/esp_netif/libesp_netif.a  esp-idf/wpa_supplicant/libwpa_supplicant.a  esp-idf/esp_coex/libesp_coex.a  esp-idf/esp_wifi/libesp_wifi.a  esp-idf/http_parser/libhttp_parser.a  esp-idf/esp-tls/libesp-tls.a  esp-idf/esp_adc/libesp_adc.a  esp-idf/esp_gdbstub/libesp_gdbstub.a  esp-idf/tcp_transport/libtcp_transport.a  esp-idf/esp_http_client/libesp_http_client.a  esp-idf/esp_http_server/libesp_http_server.a  esp-idf/esp_https_ota/libesp_https_ota.a  esp-idf/mbedtls/mbedtls/library/libmbedtls.a  esp-idf/mbedtls/mbedtls/library/libmbedcrypto.a  esp-idf/mbedtls/mbedtls/library/libmbedx509.a  esp-idf/mbedtls/mbedtls/3rdparty/everest/libeverest.a  esp-idf/mbedtls/mbedtls/3rdparty/p256-m/libp256m.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_coex/lib/esp32c6/libcoexist.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libcore.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libespnow.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libmesh.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libnet80211.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libpp.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libsmartconfig.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libwapi.a  esp-idf/riscv/libriscv.a  esp-idf/esp_driver_gpio/libesp_driver_gpio.a  esp-idf/esp_pm/libesp_pm.a  esp-idf/mbedtls/libmbedtls.a  esp-idf/esp_app_format/libesp_app_format.a  esp-idf/esp_bootloader_format/libesp_bootloader_format.a  esp-idf/app_update/libapp_update.a  esp-idf/esp_partition/libesp_partition.a  esp-idf/efuse/libefuse.a  esp-idf/bootloader_support/libbootloader_support.a  esp-idf/esp_mm/libesp_mm.a  esp-idf/spi_flash/libspi_flash.a  esp-idf/esp_system/libesp_system.a  esp-idf/esp_common/libesp_common.a  esp-idf/esp_rom/libesp_rom.a  esp-idf/hal/libhal.a  esp-idf/log/liblog.a  esp-idf/heap/libheap.a  esp-idf/soc/libsoc.a  esp-idf/esp_security/libesp_security.a  esp-idf/esp_hw_support/libesp_hw_support.a  esp-idf/freertos/libfreertos.a  esp-idf/newlib/libnewlib.a  esp-idf/pthread/libpthread.a  esp-idf/cxx/libcxx.a  esp-idf/esp_timer/libesp_timer.a  esp-idf/esp_driver_gptimer/libesp_driver_gptimer.a  esp-idf/esp_ringbuf/libesp_ringbuf.a  esp-idf/esp_driver_uart/libesp_driver_uart.a  esp-idf/esp_event/libesp_event.a  esp-idf/nvs_flash/libnvs_flash.a  esp-idf/esp_driver_pcnt/libesp_driver_pcnt.a  esp-idf/esp_driver_spi/libesp_driver_spi.a  esp-idf/esp_driver_mcpwm/libesp_driver_mcpwm.a  esp-idf/esp_driver_i2s/libesp_driver_i2s.a  esp-idf/sdmmc/libsdmmc.a  esp-idf/esp_driver_sdspi/libesp_driver_sdspi.a  esp-idf/esp_driver_sdio/libesp_driver_sdio.a  esp-idf/esp_driver_rmt/libesp_driver_rmt.a  esp-idf/esp_driver_tsens/libesp_driver_tsens.a  esp-idf/esp_driver_sdm/libesp_driver_sdm.a  esp-idf/esp_driver_i2c/libesp_driver_i2c.a  esp-idf/esp_driver_ledc/libesp_driver_ledc.a  esp-idf/esp_driver_parlio/libesp_driver_parlio.a  esp-idf/esp_driver_usb_serial_jtag/libesp_driver_usb_serial_jtag.a  esp-idf/driver/libdriver.a  esp-idf/esp_phy/libesp_phy.a  esp-idf/esp_vfs_console/libesp_vfs_console.a  esp-idf/vfs/libvfs.a  esp-idf/lwip/liblwip.a  esp-idf/esp_netif/libesp_netif.a  esp-idf/wpa_supplicant/libwpa_supplicant.a  esp-idf/esp_coex/libesp_coex.a  esp-idf/esp_wifi/libesp_wifi.a  esp-idf/http_parser/libhttp_parser.a  esp-idf/esp-tls/libesp-tls.a  esp-idf/esp_adc/libesp_adc.a  esp-idf/esp_gdbstub/libesp_gdbstub.a  esp-idf/tcp_transport/libtcp_transport.a  esp-idf/esp_http_client/libesp_http_client.a  esp-idf/esp_http_server/libesp_http_server.a  esp-idf/esp_https_ota/libesp_https_ota.a  esp-idf/mbedtls/mbedtls/library/libmbedtls.a  esp-idf/mbedtls/mbedtls/library/libmbedcrypto.a  esp-idf/mbedtls/mbedtls/library/libmbedx509.a  esp-idf/mbedtls/mbedtls/3rdparty/everest/libeverest.a  esp-idf/mbedtls/mbedtls/3rdparty/p256-m/libp256m.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_coex/lib/esp32c6/libcoexist.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libcore.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libespnow.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libmesh.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libnet80211.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libpp.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libsmartconfig.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libwapi.a  esp-idf/riscv/libriscv.a  esp-idf/esp_driver_gpio/libesp_driver_gpio.a  esp-idf/esp_pm/libesp_pm.a  esp-idf/mbedtls/libmbedtls.a  esp-idf/esp_app_format/libesp_app_format.a  esp-idf/esp_bootloader_format/libesp_bootloader_format.a  esp-idf/app_update/libapp_update.a  esp-idf/esp_partition/libesp_partition.a  esp-idf/efuse/libefuse.a  esp-idf/bootloader_support/libbootloader_support.a  esp-idf/esp_mm/libesp_mm.a  esp-idf/spi_flash/libspi_flash.a  esp-idf/esp_system/libesp_system.a  esp-idf/esp_common/libesp_common.a  esp-idf/esp_rom/libesp_rom.a  esp-idf/hal/libhal.a  esp-idf/log/liblog.a  esp-idf/heap/libheap.a  esp-idf/soc/libsoc.a  esp-idf/esp_security/libesp_security.a  esp-idf/esp_hw_support/libesp_hw_support.a  esp-idf/freertos/libfreertos.a  esp-idf/newlib/libnewlib.a  esp-idf/pthread/libpthread.a  esp-idf/cxx/libcxx.a  esp-idf/esp_timer/libesp_timer.a  esp-idf/esp_driver_gptimer/libesp_driver_gptimer.a  esp-idf/esp_ringbuf/libesp_ringbuf.a  esp-idf/esp_driver_uart/libesp_driver_uart.a  esp-idf/esp_event/libesp_event.a  esp-idf/nvs_flash/libnvs_flash.a  esp-idf/esp_driver_pcnt/libesp_driver_pcnt.a  esp-idf/esp_driver_spi/libesp_driver_spi.a  esp-idf/esp_driver_mcpwm/libesp_driver_mcpwm.a  esp-idf/esp_driver_i2s/libesp_driver_i2s.a  esp-idf/sdmmc/libsdmmc.a  esp-idf/esp_driver_sdspi/libesp_driver_sdspi.a  esp-idf/esp_driver_sdio/libesp_driver_sdio.a  esp-idf/esp_driver_rmt/libesp_driver_rmt.a  esp-idf/esp_driver_tsens/libesp_driver_tsens.a  esp-idf/esp_driver_sdm/libesp_driver_sdm.a  esp-idf/esp_driver_i2c/libesp_driver_i2c.a  esp-idf/esp_driver_ledc/libesp_driver_ledc.a  esp-idf/esp_driver_parlio/libesp_driver_parlio.a  esp-idf/esp_driver_usb_serial_jtag/libesp_driver_usb_serial_jtag.a  esp-idf/driver/libdriver.a  esp-idf/esp_phy/libesp_phy.a  esp-idf/esp_vfs_console/libesp_vfs_console.a  esp-idf/vfs/libvfs.a  esp-idf/lwip/liblwip.a  esp-idf/esp_netif/libesp_netif.a  esp-idf/wpa_supplicant/libwpa_supplicant.a  esp-idf/esp_coex/libesp_coex.a  esp-idf/esp_wifi/libesp_wifi.a  esp-idf/http_parser/libhttp_parser.a  esp-idf/esp-tls/libesp-tls.a  esp-idf/esp_adc/libesp_adc.a  esp-idf/esp_gdbstub/libesp_gdbstub.a  esp-idf/tcp_transport/libtcp_transport.a  esp-idf/esp_http_client/libesp_http_client.a  esp-idf/esp_http_server/libesp_http_server.a  esp-idf/esp_https_ota/libesp_https_ota.a  esp-idf/mbedtls/mbedtls/library/libmbedtls.a  esp-idf/mbedtls/mbedtls/library/libmbedcrypto.a  esp-idf/mbedtls/mbedtls/library/libmbedx509.a  esp-idf/mbedtls/mbedtls/3rdparty/everest/libeverest.a  esp-idf/mbedtls/mbedtls/3rdparty/p256-m/libp256m.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_coex/lib/esp32c6/libcoexist.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libcore.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libespnow.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libmesh.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libnet80211.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libpp.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libsmartconfig.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libwapi.a  esp-idf/riscv/libriscv.a  esp-idf/esp_driver_gpio/libesp_driver_gpio.a  esp-idf/esp_pm/libesp_pm.a  esp-idf/mbedtls/libmbedtls.a  esp-idf/esp_app_format/libesp_app_format.a  esp-idf/esp_bootloader_format/libesp_bootloader_format.a  esp-idf/app_update/libapp_update.a  esp-idf/esp_partition/libesp_partition.a  esp-idf/efuse/libefuse.a  esp-idf/bootloader_support/libbootloader_support.a  esp-idf/esp_mm/libesp_mm.a  esp-idf/spi_flash/libspi_flash.a  esp-idf/esp_system/libesp_system.a  esp-idf/esp_common/libesp_common.a  esp-idf/esp_rom/libesp_rom.a  esp-idf/hal/libhal.a  esp-idf/log/liblog.a  esp-idf/heap/libheap.a  esp-idf/soc/libsoc.a  esp-idf/esp_security/libesp_security.a  esp-idf/esp_hw_support/libesp_hw_support.a  esp-idf/freertos/libfreertos.a  esp-idf/newlib/libnewlib.a  esp-idf/pthread/libpthread.a  esp-idf/cxx/libcxx.a  esp-idf/esp_timer/libesp_timer.a  esp-idf/esp_driver_gptimer/libesp_driver_gptimer.a  esp-idf/esp_ringbuf/libesp_ringbuf.a  esp-idf/esp_driver_uart/libesp_driver_uart.a  esp-idf/esp_event/libesp_event.a  esp-idf/nvs_flash/libnvs_flash.a  esp-idf/esp_driver_pcnt/libesp_driver_pcnt.a  esp-idf/esp_driver_spi/libesp_driver_spi.a  esp-idf/esp_driver_mcpwm/libesp_driver_mcpwm.a  esp-idf/esp_driver_i2s/libesp_driver_i2s.a  esp-idf/sdmmc/libsdmmc.a  esp-idf/esp_driver_sdspi/libesp_driver_sdspi.a  esp-idf/esp_driver_sdio/libesp_driver_sdio.a  esp-idf/esp_driver_rmt/libesp_driver_rmt.a  esp-idf/esp_driver_tsens/libesp_driver_tsens.a  esp-idf/esp_driver_sdm/libesp_driver_sdm.a  esp-idf/esp_driver_i2c/libesp_driver_i2c.a  esp-idf/esp_driver_ledc/libesp_driver_ledc.a  esp-idf/esp_driver_parlio/libesp_driver_parlio.a  esp-idf/esp_driver_usb_serial_jtag/libesp_driver_usb_serial_jtag.a  esp-idf/driver/libdriver.a  esp-idf/esp_phy/libesp_phy.a  esp-idf/esp_vfs_console/libesp_vfs_console.a  esp-idf/vfs/libvfs.a  esp-idf/lwip/liblwip.a  esp-idf/esp_netif/libesp_netif.a  esp-idf/wpa_supplicant/libwpa_supplicant.a  esp-idf/esp_coex/libesp_coex.a  esp-idf/esp_wifi/libesp_wifi.a  esp-idf/http_parser/libhttp_parser.a  esp-idf/esp-tls/libesp-tls.a  esp-idf/esp_adc/libesp_adc.a  esp-idf/esp_gdbstub/libesp_gdbstub.a  esp-idf/tcp_transport/libtcp_transport.a  esp-idf/esp_http_client/libesp_http_client.a  esp-idf/esp_http_server/libesp_http_server.a  esp-idf/esp_https_ota/libesp_https_ota.a  esp-idf/mbedtls/mbedtls/library/libmbedtls.a  esp-idf/mbedtls/mbedtls/library/libmbedcrypto.a  esp-idf/mbedtls/mbedtls/library/libmbedx509.a  esp-idf/mbedtls/mbedtls/3rdparty/everest/libeverest.a  esp-idf/mbedtls/mbedtls/3rdparty/p256-m/libp256m.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_coex/lib/esp32c6/libcoexist.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libcore.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libespnow.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libmesh.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libnet80211.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libpp.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libsmartconfig.a  /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libwapi.a  -u esp_app_desc  -u esp_efuse_startup_include_func  -u start_app  -u __ubsan_include  -u esp_system_include_startup_funcs  -u tlsf_set_rom_patches  -u esp_rom_include_multi_heap_patch  -u __assert_func  -u esp_security_init_include_impl  -u rv_core_critical_regs_save  -u rv_core_critical_regs_restore  -u esp_sleep_gpio_include  -Wl,--undefined=FreeRTOS_openocd_params  -u app_main  -lc  -lm  -u newlib_include_heap_impl  -u newlib_include_syscalls_impl  -u newlib_include_pthread_impl  -u newlib_include_assert_impl  -u newlib_include_getentropy_impl  -u newlib_include_init_funcs  -u pthread_include_pthread_impl  -u pthread_include_pthread_cond_var_impl  -u pthread_include_pthread_local_storage_impl  -u pthread_include_pthread_rwlock_impl  -u pthread_include_pthread_semaphore_impl  -Wl,--wrap=__register_frame_info_bases  -Wl,--wrap=__register_frame_info  -Wl,--wrap=__register_frame  -Wl,--wrap=__register_frame_info_table_bases  -Wl,--wrap=__register_frame_info_table  -Wl,--wrap=__register_frame_table  -Wl,--wrap=__deregister_frame_info_bases  -Wl,--wrap=__deregister_frame_info  -Wl,--wrap=_Unwind_Find_FDE  -Wl,--wrap=_Unwind_GetGR  -Wl,--wrap=_Unwind_GetCFA  -Wl,--wrap=_Unwind_GetIP  -Wl,--wrap=_Unwind_GetIPInfo  -Wl,--wrap=_Unwind_GetRegionStart  -Wl,--wrap=_Unwind_GetDataRelBase  -Wl,--wrap=_Unwind_GetTextRelBase  -Wl,--wrap=_Unwind_SetIP  -Wl,--wrap=_Unwind_SetGR  -Wl,--wrap=_Unwind_GetLanguageSpecificData  -Wl,--wrap=_Unwind_FindEnclosingFunction  -Wl,--wrap=_Unwind_Resume  -Wl,--wrap=_Unwind_RaiseException  -Wl,--wrap=_Unwind_DeleteException  -Wl,--wrap=_Unwind_ForcedUnwind  -Wl,--wrap=_Unwind_Resume_or_Rethrow  -Wl,--wrap=_Unwind_Backtrace  -Wl,--wrap=__cxa_call_unexpected  -Wl,--wrap=__gxx_personality_v0  -Wl,--wrap=__cxa_throw  -Wl,--wrap=__cxa_allocate_exception  -u __cxa_guard_dummy  -u __cxx_init_dummy  -lstdc++  esp-idf/pthread/libpthread.a  esp-idf/newlib/libnewlib.a  -lgcc  esp-idf/cxx/libcxx.a  -u __cxx_fatal_exception  -u esp_timer_init_include_func  -u uart_vfs_include_dev_init  -u usb_serial_jtag_vfs_include_dev_init  -u usb_serial_jtag_connection_monitor_include  -u include_esp_phy_override  -lphy  -lbtbb  esp-idf/esp_phy/libesp_phy.a  -lphy  -lbtbb  esp-idf/esp_phy/libesp_phy.a  -lphy  -lbtbb  -u esp_vfs_include_console_register  -u vfs_include_syscalls_impl  -u esp_vfs_include_nullfs_register  lib/libapp_zig.a && :
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/wpa_supplicant/CMakeFiles/__idf_wpa_supplicant.dir/esp_supplicant/src/esp_wpa3.c.obj): in function `wpa3_build_sae_commit':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_wpa3.c:33:(.text.wpa3_build_sae_commit+0x1a): undefined reference to `esp_wifi_sta_get_prof_password_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_wpa3.c:34:(.text.wpa3_build_sae_commit+0x24): undefined reference to `esp_wifi_sta_get_prof_ssid_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_wpa3.c:35:(.text.wpa3_build_sae_commit+0x30): undefined reference to `esp_wifi_get_config_sae_pwe_h2e_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_wpa3.c:45:(.text.wpa3_build_sae_commit+0x66): undefined reference to `esp_wifi_sta_get_rsnxe'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_wpa3.c:52:(.text.wpa3_build_sae_commit+0x7a): undefined reference to `esp_wifi_sta_get_config_sae_pk_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_wpa3.c:168:(.text.wpa3_build_sae_commit+0x1a4): undefined reference to `esp_wifi_sta_get_sae_identifier_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_wpa3.c:110:(.text.wpa3_build_sae_commit+0x248): undefined reference to `esp_wifi_get_macaddr_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/wpa_supplicant/CMakeFiles/__idf_wpa_supplicant.dir/esp_supplicant/src/esp_wpa3.c.obj): in function `wpa3_build_sae_msg':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_wpa3.c:223:(.text.wpa3_build_sae_msg+0x24): undefined reference to `esp_wifi_get_wps_status_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/wpa_supplicant/CMakeFiles/__idf_wpa_supplicant.dir/esp_supplicant/src/esp_wpa3.c.obj): in function `wpa3_process_rx_confirm':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_wpa3.c:514:(.text.wpa3_process_rx_confirm+0x10): undefined reference to `esp_wifi_get_hostap_private_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_wpa3.c:542:(.text.wpa3_process_rx_confirm+0xa6): undefined reference to `esp_wifi_ap_get_sta_aid'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_wpa3.c:544:(.text.wpa3_process_rx_confirm+0xb8): undefined reference to `esp_wifi_ap_deauth_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_wpa3.c:531:(.text.wpa3_process_rx_confirm+0xce): undefined reference to `esp_wifi_ap_notify_node_sae_auth_done'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/wpa_supplicant/CMakeFiles/__idf_wpa_supplicant.dir/esp_supplicant/src/esp_wpa3.c.obj): in function `wpa3_hostap_handle_auth':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_wpa3.c:649:(.text.wpa3_hostap_handle_auth+0x1a): undefined reference to `esp_wifi_get_hostap_private_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/wpa_supplicant/CMakeFiles/__idf_wpa_supplicant.dir/esp_supplicant/src/esp_wpa3.c.obj): in function `esp_send_sae_auth_reply':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_wpa3.c:705:(.text.esp_send_sae_auth_reply+0x92): undefined reference to `esp_wifi_send_mgmt_frm_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/wpa_supplicant/CMakeFiles/__idf_wpa_supplicant.dir/esp_supplicant/src/esp_wpa3.c.obj): in function `wpa3_process_rx_commit':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_wpa3.c:461:(.text.wpa3_process_rx_commit+0xe): undefined reference to `esp_wifi_get_hostap_private_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_wpa3.c:499:(.text.wpa3_process_rx_commit+0xea): undefined reference to `esp_wifi_ap_get_sta_aid'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_wpa3.c:501:(.text.wpa3_process_rx_commit+0xfc): undefined reference to `esp_wifi_ap_deauth_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(/Users/josephmontanez_1/Documents/zig-esp-idf-sample/build/../.zig-cache/o/4f494bf3daccb3853631b9bb3924e6de/libapp_zig.a.o): in function `wifi.setConfig':
/Users/josephmontanez_1/Documents/zig-esp-idf-sample/imports/wifi.zig:142:(.text+0x4bc): undefined reference to `esp_wifi_set_config'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(/Users/josephmontanez_1/Documents/zig-esp-idf-sample/build/../.zig-cache/o/4f494bf3daccb3853631b9bb3924e6de/libapp_zig.a.o): in function `wifi.start':
/Users/josephmontanez_1/Documents/zig-esp-idf-sample/imports/wifi.zig:29:(.text+0x4cc): undefined reference to `esp_wifi_start'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/esp_wifi/CMakeFiles/__idf_esp_wifi.dir/src/wifi_init.c.obj): in function `wifi_deinit_internal':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/src/wifi_init.c:163:(.text.wifi_deinit_internal+0x6): undefined reference to `esp_wifi_get_user_init_flag_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/src/wifi_init.c:170:(.text.wifi_deinit_internal+0x50): undefined reference to `esp_wifi_deinit_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/esp_wifi/CMakeFiles/__idf_esp_wifi.dir/src/wifi_init.c.obj): in function `esp_wifi_set_log_level':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/src/wifi_init.c:190:(.text.esp_wifi_set_log_level+0x6): undefined reference to `esp_wifi_internal_set_log_level'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/esp_wifi/CMakeFiles/__idf_esp_wifi.dir/src/wifi_init.c.obj): in function `esp_wifi_init':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/src/wifi_init.c:343:(.text.esp_wifi_init+0x28): undefined reference to `esp_wifi_set_sleep_min_active_time'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/src/wifi_init.c:346:(.text.esp_wifi_init+0x38): undefined reference to `esp_wifi_set_keep_alive_time'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/src/wifi_init.c:349:(.text.esp_wifi_init+0x46): undefined reference to `esp_wifi_set_sleep_wait_broadcast_data_time'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/src/wifi_init.c:404:(.text.esp_wifi_init+0x60): undefined reference to `esp_wifi_init_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/esp_wifi/CMakeFiles/__idf_esp_wifi.dir/src/wifi_init.c.obj): in function `esp_wifi_connect':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/src/wifi_init.c:445:(.text.esp_wifi_connect+0x4): undefined reference to `esp_wifi_connect_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/wpa_supplicant/CMakeFiles/__idf_wpa_supplicant.dir/esp_supplicant/src/esp_wpa_main.c.obj): in function `wpa_attach':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_wpa_main.c:145:(.text.wpa_attach+0x22): undefined reference to `esp_wifi_register_eapol_txdonecb_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/wpa_supplicant/CMakeFiles/__idf_wpa_supplicant.dir/esp_supplicant/src/esp_wpa_main.c.obj): in function `wpa_ap_get_wpa_ie':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_wpa_main.c:149:(.text.wpa_ap_get_wpa_ie+0x8): undefined reference to `esp_wifi_get_hostap_private_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/wpa_supplicant/CMakeFiles/__idf_wpa_supplicant.dir/esp_supplicant/src/esp_wpa_main.c.obj): in function `wpa_deattach':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_wpa_main.c:203:(.text.wpa_deattach+0x2a): undefined reference to `esp_wifi_register_eapol_txdonecb_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/wpa_supplicant/CMakeFiles/__idf_wpa_supplicant.dir/esp_supplicant/src/esp_wpa_main.c.obj): in function `hostap_sta_join':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_wpa_main.c:368:(.text.hostap_sta_join+0x56): undefined reference to `esp_wifi_ap_is_sta_sae_reauth_node'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_wpa_main.c:391:(.text.hostap_sta_join+0x11e): undefined reference to `esp_wifi_ap_deauth_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/wpa_supplicant/CMakeFiles/__idf_wpa_supplicant.dir/esp_supplicant/src/esp_wpa_main.c.obj): in function `wpa_install_key':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_wpa_main.c:303:(.text.wpa_install_key+0x8): undefined reference to `esp_wifi_set_sta_key_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/wpa_supplicant/CMakeFiles/__idf_wpa_supplicant.dir/esp_supplicant/src/esp_wpa_main.c.obj): in function `wpa_get_key':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_wpa_main.c:65:(.text.wpa_get_key+0x4): undefined reference to `esp_wifi_get_sta_key_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/wpa_supplicant/CMakeFiles/__idf_wpa_supplicant.dir/esp_supplicant/src/esp_wpa_main.c.obj): in function `wpa_deauthenticate':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_wpa_main.c:90:(.text.wpa_deauthenticate+0x4): undefined reference to `esp_wifi_deauthenticate_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/wpa_supplicant/CMakeFiles/__idf_wpa_supplicant.dir/esp_supplicant/src/esp_wpa_main.c.obj): in function `wpa_config_profile':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_wpa_main.c:97:(.text.wpa_config_profile+0x4): undefined reference to `esp_wifi_sta_prof_is_wpa_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_wpa_main.c:98:(.text.wpa_config_profile+0xe): undefined reference to `esp_wifi_sta_get_prof_authmode_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_wpa_main.c:108:(.text.wpa_config_profile+0x26): undefined reference to `esp_wifi_sta_prof_is_rsn_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_wpa_main.c:99:(.text.wpa_config_profile+0x30): undefined reference to `esp_wifi_sta_get_prof_authmode_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_wpa_main.c:100:(.text.wpa_config_profile+0x44): undefined reference to `esp_wifi_sta_prof_is_wapi_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_wpa_main.c:101:(.text.wpa_config_profile+0x4e): undefined reference to `esp_wifi_sta_get_prof_authmode_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/wpa_supplicant/CMakeFiles/__idf_wpa_supplicant.dir/esp_supplicant/src/esp_wpa_main.c.obj): in function `wpa_config_bss':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_wpa_main.c:113:(.text.wpa_config_bss+0x10): undefined reference to `esp_wifi_sta_get_prof_ssid_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_wpa_main.c:116:(.text.wpa_config_bss+0x22): undefined reference to `esp_wifi_get_macaddr_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_wpa_main.c:117:(.text.wpa_config_bss+0x2a): undefined reference to `esp_wifi_sta_get_pairwise_cipher_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_wpa_main.c:117:(.text.wpa_config_bss+0x34): undefined reference to `esp_wifi_sta_get_group_cipher_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_wpa_main.c:118:(.text.wpa_config_bss+0x3e): undefined reference to `esp_wifi_sta_get_prof_password_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/wpa_supplicant/CMakeFiles/__idf_wpa_supplicant.dir/esp_supplicant/src/esp_wpa_main.c.obj): in function `wpa_sta_connect':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_wpa_main.c:237:(.text.wpa_sta_connect+0x18): undefined reference to `esp_wifi_sta_get_prof_authmode_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_wpa_main.c:242:(.text.wpa_sta_connect+0x28): undefined reference to `esp_wifi_sta_connect_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/wpa_supplicant/CMakeFiles/__idf_wpa_supplicant.dir/esp_supplicant/src/esp_wpa_main.c.obj): in function `wpa_config_assoc_ie':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_wpa_main.c:127:(.text.wpa_config_assoc_ie+0x12): undefined reference to `esp_wifi_set_appie_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_wpa_main.c:125:(.text.wpa_config_assoc_ie+0x28): undefined reference to `esp_wifi_set_appie_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/wpa_supplicant/CMakeFiles/__idf_wpa_supplicant.dir/esp_supplicant/src/esp_wpa_main.c.obj): in function `wpa_neg_complete':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_wpa_main.c:133:(.text.wpa_neg_complete+0x4): undefined reference to `esp_wifi_auth_done_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/wpa_supplicant/CMakeFiles/__idf_wpa_supplicant.dir/esp_supplicant/src/esp_wpa_main.c.obj): in function `esp_supplicant_init':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_wpa_main.c:488:(.text.esp_supplicant_init+0x12a): undefined reference to `esp_wifi_register_wpa_cb_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/wpa_supplicant/CMakeFiles/__idf_wpa_supplicant.dir/esp_supplicant/src/esp_wpa_main.c.obj): in function `esp_supplicant_deinit':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_wpa_main.c:453:(.text.esp_supplicant_deinit+0x14): undefined reference to `esp_wifi_unregister_wpa_cb_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/wpa_supplicant/CMakeFiles/__idf_wpa_supplicant.dir/esp_supplicant/src/esp_common.c.obj): in function `esp_supplicant_unset_all_appie':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_common.c:262:(.text.esp_supplicant_unset_all_appie+0xc): undefined reference to `esp_wifi_unset_appie_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/wpa_supplicant/CMakeFiles/__idf_wpa_supplicant.dir/esp_supplicant/src/esp_common.c.obj): in function `esp_supplicant_common_deinit':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_common.c:407:(.text.esp_supplicant_common_deinit+0x2a): undefined reference to `esp_wifi_register_mgmt_frame_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/wpa_supplicant/CMakeFiles/__idf_wpa_supplicant.dir/esp_supplicant/src/esp_common.c.obj): in function `esp_supplicant_common_init':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_common.c:377:(.text.esp_supplicant_common_init+0x24): undefined reference to `esp_wifi_register_mgmt_frame_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/wpa_supplicant/CMakeFiles/__idf_wpa_supplicant.dir/esp_supplicant/src/esp_common.c.obj): in function `esp_set_assoc_ie':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_common.c:984:(.text.esp_set_assoc_ie+0x34): undefined reference to `esp_wifi_set_appie_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/wpa_supplicant/CMakeFiles/__idf_wpa_supplicant.dir/esp_supplicant/src/esp_hostap.c.obj): in function `hostap_init':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_hostap.c:43:(.text.hostap_init+0x10): undefined reference to `esp_wifi_ap_get_prof_ap_ssid_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_hostap.c:70:(.text.hostap_init+0x5e): undefined reference to `esp_wifi_get_config_sae_pwe_h2e_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_hostap.c:73:(.text.hostap_init+0x74): undefined reference to `esp_wifi_ap_get_prof_authmode_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_hostap.c:87:(.text.hostap_init+0x9e): undefined reference to `esp_wifi_ap_get_prof_pairwise_cipher_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_hostap.c:140:(.text.hostap_init+0x102): undefined reference to `esp_wifi_get_spp_attrubute_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_hostap.c:161:(.text.hostap_init+0x16c): undefined reference to `esp_wifi_ap_get_prof_password_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_hostap.c:161:(.text.hostap_init+0x176): undefined reference to `esp_wifi_ap_get_prof_password_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_hostap.c:163:(.text.hostap_init+0x19c): undefined reference to `esp_wifi_ap_get_max_sta_conn'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_hostap.c:168:(.text.hostap_init+0x1c0): undefined reference to `esp_wifi_get_macaddr_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_hostap.c:175:(.text.hostap_init+0x1e0): undefined reference to `esp_wifi_set_appie_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_hostap.c:84:(.text.hostap_init+0x238): undefined reference to `esp_wifi_get_pmf_config_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/wpa_supplicant/CMakeFiles/__idf_wpa_supplicant.dir/esp_supplicant/src/esp_hostap.c.obj): in function `hostap_deinit':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_hostap.c:241:(.text.hostap_deinit+0xc): undefined reference to `esp_wifi_unset_appie_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_hostap.c:242:(.text.hostap_deinit+0x16): undefined reference to `esp_wifi_unset_appie_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/wpa_supplicant/CMakeFiles/__idf_wpa_supplicant.dir/esp_supplicant/src/esp_hostap.c.obj): in function `esp_send_assoc_resp':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_hostap.c:304:(.text.esp_send_assoc_resp+0x22): undefined reference to `esp_wifi_set_appie_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_hostap.c:318:(.text.esp_send_assoc_resp+0x7c): undefined reference to `esp_wifi_send_mgmt_frm_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/wpa_supplicant/CMakeFiles/__idf_wpa_supplicant.dir/esp_supplicant/src/esp_hostap.c.obj): in function `hostap_new_assoc_sta':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_hostap.c:354:(.text.hostap_new_assoc_sta+0x26): undefined reference to `esp_wifi_get_hostap_private_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/wpa_supplicant/CMakeFiles/__idf_wpa_supplicant.dir/esp_supplicant/src/esp_wpas_glue.c.obj): in function `disable_wpa_wpa2':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_wpas_glue.c:98:(.text.disable_wpa_wpa2+0x4): undefined reference to `esp_wifi_sta_disable_wpa2_authmode_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/wpa_supplicant/CMakeFiles/__idf_wpa_supplicant.dir/esp_supplicant/src/esp_wpas_glue.c.obj): in function `wpa_supplicant_transition_disable':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_wpas_glue.c:114:(.text.wpa_supplicant_transition_disable+0x72): undefined reference to `esp_wifi_enable_sae_pk_only_mode_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/esp_supplicant/src/esp_wpas_glue.c:115:(.text.wpa_supplicant_transition_disable+0x82): undefined reference to `esp_wifi_sta_disable_owe_trans_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/wpa_supplicant/CMakeFiles/__idf_wpa_supplicant.dir/src/ap/ap_config.c.obj): in function `hostapd_derive_psk':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/src/ap/ap_config.c:135:(.text.hostapd_derive_psk+0x1e): undefined reference to `esp_wifi_ap_get_prof_pmk_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/wpa_supplicant/CMakeFiles/__idf_wpa_supplicant.dir/src/ap/wpa_auth.c.obj): in function `wpa_auth_set_key':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/src/ap/wpa_auth.c:178:(.text.wpa_auth_set_key+0x5c): undefined reference to `esp_wifi_set_igtk_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/src/ap/wpa_auth.c:188:(.text.wpa_auth_set_key+0x84): undefined reference to `esp_wifi_set_ap_key_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/wpa_supplicant/CMakeFiles/__idf_wpa_supplicant.dir/src/ap/wpa_auth.c.obj): in function `wpa_sta_disconnect':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/src/ap/wpa_auth.c:221:(.text.wpa_sta_disconnect+0x8): undefined reference to `esp_wifi_ap_deauth_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/wpa_supplicant/CMakeFiles/__idf_wpa_supplicant.dir/src/ap/wpa_auth.c.obj): in function `sm_WPA_PTK_PTKINITDONE_Enter':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/src/ap/wpa_auth.c:2001:(.text.sm_WPA_PTK_PTKINITDONE_Enter+0x44): undefined reference to `esp_wifi_wpa_ptk_init_done_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/wpa_supplicant/CMakeFiles/__idf_wpa_supplicant.dir/src/ap/wpa_auth.c.obj): in function `resend_eapol_handle':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/src/ap/wpa_auth.c:1188:(.text.resend_eapol_handle+0x16): undefined reference to `esp_wifi_ipc_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/wpa_supplicant/CMakeFiles/__idf_wpa_supplicant.dir/src/ap/wpa_auth.c.obj): in function `wpa_auth_sta_deinit':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/src/ap/wpa_auth.c:497:(.text.wpa_auth_sta_deinit+0xc): undefined reference to `esp_wifi_ap_is_sta_sae_reauth_node'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/wpa_supplicant/CMakeFiles/__idf_wpa_supplicant.dir/src/ap/wpa_auth.c.obj): in function `wpa_auth_set_key':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/src/ap/wpa_auth.c:188:(.text.wpa_remove_ptk+0x2a): undefined reference to `esp_wifi_set_ap_key_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/wpa_supplicant/CMakeFiles/__idf_wpa_supplicant.dir/src/ap/wpa_auth.c.obj): in function `wpa_auth_get_psk':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/src/ap/wpa_auth.c:128:(.text.wpa_auth_get_psk+0xe): undefined reference to `esp_wifi_get_hostap_private_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/wpa_supplicant/CMakeFiles/__idf_wpa_supplicant.dir/src/common/wpa_common.c.obj): in function `wpa_parse_wpa_ie_rsnxe':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/src/common/wpa_common.c:397:(.text.wpa_parse_wpa_ie_rsnxe+0x14): undefined reference to `esp_wifi_get_config_sae_pwe_h2e_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/wpa_supplicant/CMakeFiles/__idf_wpa_supplicant.dir/src/rsn_supp/wpa.c.obj): in function `is_wpa2_enterprise_connection':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/src/rsn_supp/wpa.c:1721:(.text.is_wpa2_enterprise_connection+0x4): undefined reference to `esp_wifi_sta_prof_is_wpa2_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/src/rsn_supp/wpa.c:180:(.text.is_wpa2_enterprise_connection+0x14): undefined reference to `esp_wifi_sta_get_prof_authmode_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/wpa_supplicant/CMakeFiles/__idf_wpa_supplicant.dir/src/rsn_supp/wpa.c.obj): in function `wpa_supplicant_install_igtk':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/src/rsn_supp/wpa.c:1030:(.text.wpa_supplicant_install_igtk+0x36): undefined reference to `esp_wifi_set_igtk_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/wpa_supplicant/CMakeFiles/__idf_wpa_supplicant.dir/src/rsn_supp/wpa.c.obj): in function `wpa_sm_init':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/src/rsn_supp/wpa.c:654:(.text.wpa_sm_init+0x2a): undefined reference to `esp_wifi_get_spp_attrubute_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/wpa_supplicant/CMakeFiles/__idf_wpa_supplicant.dir/src/rsn_supp/wpa.c.obj): in function `wpa_set_passphrase':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/src/rsn_supp/wpa.c:2471:(.text.wpa_set_passphrase+0xc): undefined reference to `esp_wifi_sta_get_prof_ssid_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/src/rsn_supp/wpa.c:2487:(.text.wpa_set_passphrase+0x44): undefined reference to `esp_wifi_sta_get_reset_param_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/src/rsn_supp/wpa.c:2489:(.text.wpa_set_passphrase+0x6c): undefined reference to `esp_wifi_sta_get_prof_password_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/src/rsn_supp/wpa.c:2494:(.text.wpa_set_passphrase+0x84): undefined reference to `esp_wifi_sta_get_prof_password_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/src/rsn_supp/wpa.c:2495:(.text.wpa_set_passphrase+0x94): undefined reference to `esp_wifi_sta_get_ap_info_prof_pmk_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/src/rsn_supp/wpa.c:2494:(.text.wpa_set_passphrase+0xae): undefined reference to `esp_wifi_sta_update_ap_info_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/src/rsn_supp/wpa.c:2497:(.text.wpa_set_passphrase+0xb8): undefined reference to `esp_wifi_sta_set_reset_param_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/src/rsn_supp/wpa.c:2498:(.text.wpa_set_passphrase+0xc2): undefined reference to `esp_wifi_sta_get_prof_password_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/src/rsn_supp/wpa.c:2490:(.text.wpa_set_passphrase+0xcc): undefined reference to `esp_wifi_sta_get_ap_info_prof_pmk_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/src/rsn_supp/wpa.c:2490:(.text.wpa_set_passphrase+0xe4): undefined reference to `esp_wifi_sta_get_ap_info_prof_pmk_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/wpa_supplicant/CMakeFiles/__idf_wpa_supplicant.dir/src/rsn_supp/wpa.c.obj): in function `wpa_sm_rx_eapol':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/src/rsn_supp/wpa.c:2034:(.text.wpa_sm_rx_eapol+0x296): undefined reference to `esp_wifi_internal_issue_disconnect'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/wpa_supplicant/CMakeFiles/__idf_wpa_supplicant.dir/src/rsn_supp/wpa.c.obj): in function `wpa_sm_set_ap_rsnxe':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/src/rsn_supp/wpa.c:2752:(.text.wpa_sm_set_ap_rsnxe+0x44): undefined reference to `esp_wifi_get_config_sae_pwe_h2e_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/src/rsn_supp/wpa.c:2754:(.text.wpa_sm_set_ap_rsnxe+0x58): undefined reference to `esp_wifi_sta_get_prof_password_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/src/rsn_supp/wpa.c:2755:(.text.wpa_sm_set_ap_rsnxe+0x62): undefined reference to `esp_wifi_sta_get_config_sae_pk_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/wpa_supplicant/CMakeFiles/__idf_wpa_supplicant.dir/src/rsn_supp/wpa.c.obj): in function `wpa_set_bss':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/src/rsn_supp/wpa.c:2326:(.text.wpa_set_bss+0x24): undefined reference to `esp_wifi_skip_supp_pmkcaching'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/src/rsn_supp/wpa.c:2348:(.text.wpa_set_bss+0xe6): undefined reference to `esp_wifi_sta_is_ap_notify_completed_rsne_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/src/rsn_supp/wpa.c:2350:(.text.wpa_set_bss+0x10a): undefined reference to `esp_wifi_get_config_sae_pwe_h2e_internal'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/src/rsn_supp/wpa.c:2369:(.text.wpa_set_bss+0x158): undefined reference to `esp_wifi_sta_pmf_enabled'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/src/rsn_supp/wpa.c:2369:(.text.wpa_set_bss+0x162): undefined reference to `esp_wifi_sta_get_mgmt_group_cipher'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/src/rsn_supp/wpa.c:2373:(.text.wpa_set_bss+0x170): undefined reference to `esp_wifi_get_config'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/src/rsn_supp/wpa.c:2433:(.text.wpa_set_bss+0x272): undefined reference to `esp_wifi_sta_get_rsnxe'
/Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/../lib/gcc/riscv32-esp-elf/14.2.0/../../../../riscv32-esp-elf/bin/ld: lib/libapp_zig.a(../build/esp-idf/wpa_supplicant/CMakeFiles/__idf_wpa_supplicant.dir/port/eloop.c.obj): in function `eloop_run_timer':
/Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/wpa_supplicant/port/eloop.c:60:(.text.eloop_run_timer+0x16): undefined reference to `esp_wifi_ipc_internal'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.

So since its an ordering issue for the time being I've gone ahead and force order.
cmake/zig-build.cmake

target_link_libraries(${COMPONENT_LIB} PRIVATE
    "-Wl,--start-group"
    ${IDF_PATH}/components/esp_phy/lib/esp32c6/libphy.a
    ${IDF_PATH}/components/esp_wifi/lib/esp32c6/libpp.a
    ${IDF_PATH}/components/esp_wifi/lib/esp32c6/libmesh.a
    ${IDF_PATH}/components/esp_wifi/lib/esp32c6/libnet80211.a
    ${IDF_PATH}/components/esp_wifi/lib/esp32c6/libcore.a
    ${CMAKE_BINARY_DIR}/esp-idf/log/liblog.a
    ${CMAKE_BINARY_DIR}/esp-idf/nvs_flash/libnvs_flash.a
    ${CMAKE_BINARY_DIR}/esp-idf/soc/libsoc.a
    ${CMAKE_BINARY_DIR}/esp-idf/esp_hw_support/libesp_hw_support.a
    ${CMAKE_BINARY_DIR}/esp-idf/hal/libhal.a
    ${CMAKE_BINARY_DIR}/esp-idf/freertos/libfreertos.a
    ${CMAKE_BINARY_DIR}/lib/libapp_zig.a
    ${CMAKE_BINARY_DIR}/esp-idf/esp_wifi/libesp_wifi.a
    ${CMAKE_BINARY_DIR}/esp-idf/wpa_supplicant/libwpa_supplicant.a
    "-Wl,--end-group"
)

However I also need to comment out some functions as these are defined in libnet80211.a
imports/idf-sys.zig

-pub export fn esp_wifi_internal_set_sta_ip() callconv(.C) esp_err_t {
-    return .ESP_OK;
-}
+// pub export fn esp_wifi_internal_set_sta_ip() callconv(.C) esp_err_t {
+// return .ESP_OK;
+// }
-pub export fn esp_wifi_internal_reg_netstack_buf_cb(ref: wifi_netstack_buf_ref_cb_t, free: wifi_netstack_buf_free_cb_t) esp_err_t {
-    _ = ref; // unused
-    _ = free; // unused
-    return .ESP_OK;
-}
+// pub export fn esp_wifi_internal_reg_netstack_buf_cb(ref: wifi_netstack_buf_ref_cb_t, free: wifi_netstack_buf_free_cb_t) esp_err_t {
+//     _ = ref; // unused
+//     _ = free; // unused
+//     return .ESP_OK;
+// }

-pub export fn esp_wifi_internal_free_rx_buffer(buffer: ?*anyopaque) void {
-    std.c.free(buffer);
-}
+// pub export fn esp_wifi_internal_free_rx_buffer(buffer: ?*anyopaque) void {
+// std.c.free(buffer);
+// }
-pub export fn esp_wifi_internal_tx(ifx: wifi_interface_t, buffer: ?*anyopaque, len: u16) esp_err_t {
-    if (ifx == .WIFI_IF_STA) {
-        return s_tx_cb[@as(c_uint, @intCast(@as(c_int, 0)))].?(@as(?*anyopaque, @ptrCast(s_channel[@as(c_uint, @intCast(@as(c_int, 0)))])), buffer, @as(usize, @bitCast(@as(c_ulong, len))));
-    }
-    if (ifx == .WIFI_IF_AP) {
-        return s_tx_cb[@as(c_uint, @intCast(@as(c_int, 1)))].?(@as(?*anyopaque, @ptrCast(s_channel[@as(c_uint, @intCast(@as(c_int, 1)))])), buffer, @as(usize, @bitCast(@as(c_ulong, len))));
-    }
-    return .ESP_FAIL;
-}
-pub export fn esp_wifi_internal_reg_rxcb(ifx: wifi_interface_t, @"fn": wifi_rxcb_t) esp_err_t {
-    if (ifx == .WIFI_IF_STA) {
-        s_rx_fn[@as(c_uint, @intCast(@as(c_int, 0)))] = @"fn";
-        return .ESP_OK;
-    }
-    if (ifx == .WIFI_IF_AP) {
-        s_rx_fn[@as(c_uint, @intCast(@as(c_int, 1)))] = @"fn";
-        return .ESP_OK;
-    }
-    return .ESP_FAIL;
-}
+// pub export fn esp_wifi_internal_tx(ifx: wifi_interface_t, buffer: ?*anyopaque, len: u16) esp_err_t {
+//     if (ifx == .WIFI_IF_STA) {
+//         return s_tx_cb[@as(c_uint, @intCast(@as(c_int, 0)))].?(@as(?*anyopaque, @ptrCast(s_channel[@as(c_uint, @intCast(@as(c_int, 0)))])), buffer, @as(usize, @bitCast(@as(c_ulong, len))));
+//     }
+//     if (ifx == .WIFI_IF_AP) {
+//         return s_tx_cb[@as(c_uint, @intCast(@as(c_int, 1)))].?(@as(?*anyopaque, @ptrCast(s_channel[@as(c_uint, @intCast(@as(c_int, 1)))])), buffer, @as(usize, @bitCast(@as(c_ulong, len))));
+//     }
+//     return .ESP_FAIL;
+// }
+// pub export fn esp_wifi_internal_reg_rxcb(ifx: wifi_interface_t, @"fn": wifi_rxcb_t) esp_err_t {
+//     if (ifx == .WIFI_IF_STA) {
+//         s_rx_fn[@as(c_uint, @intCast(@as(c_int, 0)))] = @"fn";
+//         return .ESP_OK;
+//     }
+//     if (ifx == .WIFI_IF_AP) {
+//         s_rx_fn[@as(c_uint, @intCast(@as(c_int, 1)))] = @"fn";
+//         return .ESP_OK;
+//     }
+//     return .ESP_FAIL;
+// }

Some of this should be solvable via main/CMakeLists.txt, however I don't know what these libs resolve so for IDF.

set(DEPS pthread driver esp_wifi wpa_supplicant)

idf_component_register(SRCS "placeholder.c"
    INCLUDE_DIRS "."
    PRIV_REQUIRES "${DEPS}"
)

include(../cmake/zig-build.cmake)

However when I try to adjust:

set(DEPS 
    pthread           # POSIX threads support
    driver            # ESP-IDF peripheral drivers
    esp_wifi          # ESP-IDF WiFi stack
    wpa_supplicant    # WPA security support
    log               # ESP logging system (for g_log_level)
    nvs_flash         # Non-volatile storage (for g_misc_nvs)
    esp_netif         # ESP networking interface
    esp_event         # ESP event loop (for esp_event_post)
    lwip              # Lightweight TCP/IP stack
    esp_phy           # Physical layer for WiFi
    esp_pm            # Power management (needed for WiFi stability)
)

I just get all the same compiling errors as before and the libs I manually included like esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libnet80211.a, esp-idf-v5.4/components/esp_wifi/lib/esp32c6/libcore.a are still missing and I don't know the corresponding names.

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━┳━━━━━━┳━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━┓
┃ Archive File                    ┃ Total Size ┃ DIRAM ┃ .bss ┃ .data ┃ .text ┃ Flash Code ┃ .rodata ┃ .appdesc ┃  .text ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━╇━━━━━━╇━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━┩
│ libapp_zig.a                    │     169476 │  2363 │ 1509 │   520 │   334 │     167113 │   10777 │        0 │ 156336 │
│ libesp_hw_support.a             │      42283 │ 12624 │  119 │  4347 │  8158 │      29659 │    2949 │        0 │  26710 │
│ libesp_app_format.a             │      38649 │    10 │   10 │     0 │     0 │      38639 │   37853 │      256 │    530 │
│ libphy.a                        │      27831 │  5539 │   44 │   911 │  4584 │      22292 │       0 │        0 │  22292 │
│ libfreertos.a                   │      16020 │ 14696 │ 2240 │    88 │ 12368 │       1324 │     994 │        0 │    330 │
│ libhal.a                        │      13861 │  8606 │   12 │   348 │  8246 │       5255 │     347 │        0 │   4908 │
│ libesp_system.a                 │      13574 │  2656 │  138 │    92 │  2426 │      10918 │     570 │        0 │  10348 │
│ libnvs_flash.a                  │      11206 │    28 │   28 │     0 │     0 │      11178 │     148 │        0 │  11030 │
│ libc.a                          │       8726 │   716 │  360 │   356 │     0 │       8010 │     100 │        0 │   7910 │
│ libesp_driver_uart.a            │       8576 │   156 │   28 │   128 │     0 │       8420 │     552 │        0 │   7868 │
│ libspi_flash.a                  │       8311 │  6773 │   14 │   733 │  6026 │       1538 │     318 │        0 │   1220 │
│ libmbedcrypto.a                 │       7214 │   228 │   96 │    88 │    44 │       6986 │     126 │        0 │   6860 │
│ libcoexist.a                    │       5474 │  1544 │    2 │  1446 │    96 │       3930 │      40 │        0 │   3890 │
│ libvfs.a                        │       5087 │   236 │   44 │   192 │     0 │       4851 │     143 │        0 │   4708 │
│ libheap.a                       │       4328 │  1324 │    8 │    12 │  1304 │       3004 │     466 │        0 │   2538 │
│ libnewlib.a                     │       4043 │  2268 │  200 │   156 │  1912 │       1775 │     111 │        0 │   1664 │
│ libesp_mm.a                     │       3772 │   662 │   44 │    28 │   590 │       3110 │     166 │        0 │   2944 │
│ libesp_timer.a                  │       3460 │  1566 │   36 │    16 │  1514 │       1894 │     104 │        0 │   1790 │
│ libesp_driver_gpio.a            │       3420 │    36 │    0 │    36 │     0 │       3384 │     418 │        0 │   2966 │
│ libesp_phy.a                    │       3197 │   397 │   44 │     1 │   352 │       2800 │     284 │        0 │   2516 │
│ libesp_driver_usb_serial_jtag.a │       2521 │   167 │   17 │    48 │   102 │       2354 │     152 │        0 │   2202 │
│ liblog.a                        │       1966 │   602 │  272 │     8 │   322 │       1364 │      48 │        0 │   1316 │
│ libesp_common.a                 │       1816 │     0 │    0 │     0 │     0 │       1816 │    1758 │        0 │     58 │
│ libefuse.a                      │       1689 │    52 │    4 │    48 │     0 │       1637 │     233 │        0 │   1404 │
│ libesp_rom.a                    │       1645 │  1594 │   84 │     0 │  1510 │         51 │      49 │        0 │      2 │
│ libesp_ringbuf.a                │       1502 │  1360 │    0 │     0 │  1360 │        142 │     142 │        0 │      0 │
│ libriscv.a                      │       1280 │  1100 │  256 │     0 │   844 │        180 │      50 │        0 │    130 │
│ libesp_partition.a              │       1251 │     8 │    8 │     0 │     0 │       1243 │      37 │        0 │   1206 │
│ libbootloader_support.a         │       1022 │   930 │    0 │     0 │   930 │         92 │      40 │        0 │     52 │
│ libesp_vfs_console.a            │        730 │    16 │   16 │     0 │     0 │        714 │     180 │        0 │    534 │
│ libesp_coex.a                   │        674 │   246 │    0 │    80 │   166 │        428 │       0 │        0 │    428 │
│ libsoc.a                        │        656 │     0 │    0 │     0 │     0 │        656 │     656 │        0 │      0 │
│ libpthread.a                    │        604 │     4 │    4 │     0 │     0 │        600 │      46 │        0 │    554 │
│ libesp_security.a               │        307 │    12 │   12 │     0 │     0 │        295 │      33 │        0 │    262 │
│ libapp_update.a                 │        232 │     4 │    4 │     0 │     0 │        228 │      30 │        0 │    198 │
│ libstdc++.a                     │         99 │     5 │    5 │     0 │     0 │         94 │       4 │        0 │     90 │
│ libcxx.a                        │         16 │     0 │    0 │     0 │     0 │         16 │       0 │        0 │     16 │
│ libnvs_sec_provider.a           │          2 │     0 │    0 │     0 │     0 │          2 │       0 │        0 │      2 │
└─────────────────────────────────┴────────────┴───────┴──────┴───────┴───────┴────────────┴─────────┴──────────┴────────┘

@kassane
Copy link
Owner

kassane commented Feb 3, 2025

However I also need to comment out some functions as these are defined in libnet80211.a

Also related (esp32-s3):

@joseph-montanez
Copy link
Author

joseph-montanez commented Feb 4, 2025

Minor update on my end:

build.zig

pub fn searched_idf_libs(b: *std.Build, lib: *std.Build.Step.Compile) !void {
    var dir = try std.fs.cwd().openDir("../build", .{
        .iterate = true,
    });
    defer dir.close();
    var walker = try dir.walk(b.allocator);
    defer walker.deinit();

    while (try walker.next()) |entry| {
        const ext = std.fs.path.extension(entry.basename);
        const lib_ext = inline for (&.{".obj"}) |e| {
            if (std.mem.eql(u8, ext, e))
                break true;
        } else false;
        if (lib_ext) {
            const src_path = std.fs.path.dirname(@src().file) orelse b.pathResolve(&.{".."});
            const cwd_path = b.pathJoin(&.{ src_path, "build", b.dupe(entry.path) });
            const lib_file: std.Build.LazyPath = .{ .cwd_relative = cwd_path };
            lib.addObjectFile(lib_file);
        }
    }
}

Two things here. First, the lib even when compile ReleaseSmall is really large (even removed -freference-trace):

                                                        Per-archive contributions to ELF file                                                        
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━┳━━━━━━━┳━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Archive File                    ┃ Total Size ┃ DIRAM ┃  .bss ┃ .data ┃ .text ┃ Flash Code ┃ .rodata ┃ .appdesc ┃  .text ┃ LP SRAM ┃ .rtc_reserved ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━╇━━━━━━━╇━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ libapp_zig.a                    │     279593 │  4935 │  4065 │   536 │   334 │     274658 │   13860 │        0 │ 260798 │       0 │             0 │
│ libnet80211.a                   │     185156 │ 19485 │ 10386 │  1785 │  7314 │     165671 │   18735 │        0 │ 146936 │       0 │             0 │
│ libpp.a                         │     110742 │ 45371 │  2746 │  3201 │ 39424 │      65371 │    9405 │        0 │  55966 │       0 │             0 │
│ libesp_app_format.a             │      59659 │    10 │    10 │     0 │     0 │      59649 │   58863 │      256 │    530 │       0 │             0 │
│ libesp_hw_support.a             │      42337 │ 12636 │   119 │  4347 │  8170 │      29677 │    2957 │        0 │  26720 │      24 │            24 │
│ libphy.a                        │      28375 │  5547 │    44 │   919 │  4584 │      22828 │       0 │        0 │  22828 │       0 │             0 │
│ libnvs_flash.a                  │      17022 │    28 │    28 │     0 │     0 │      16994 │     252 │        0 │  16742 │       0 │             0 │
│ libfreertos.a                   │      16319 │ 14982 │  2240 │    88 │ 12654 │       1337 │    1007 │        0 │    330 │       0 │             0 │
│ libhal.a                        │      13861 │  8606 │    12 │   348 │  8246 │       5255 │     347 │        0 │   4908 │       0 │             0 │
│ libesp_system.a                 │      13644 │  2664 │   138 │    92 │  2434 │      10980 │     570 │        0 │  10410 │       0 │             0 │
│ libspi_flash.a                  │      10558 │  8981 │    14 │   941 │  8026 │       1577 │     357 │        0 │   1220 │       0 │             0 │
│ libc.a                          │       8886 │   712 │   356 │   356 │     0 │       8174 │      96 │        0 │   8078 │       0 │             0 │
│ libesp_driver_uart.a            │       8576 │   156 │    28 │   128 │     0 │       8420 │     552 │        0 │   7868 │       0 │             0 │
│ libmbedcrypto.a                 │       7214 │   228 │    96 │    88 │    44 │       6986 │     126 │        0 │   6860 │       0 │             0 │
│ libvfs.a                        │       6170 │   236 │    44 │   192 │     0 │       5934 │     158 │        0 │   5776 │       0 │             0 │
│ libcoexist.a                    │       5474 │  1544 │     2 │  1446 │    96 │       3930 │      40 │        0 │   3890 │       0 │             0 │
│ libnewlib.a                     │       4071 │  2270 │   200 │   156 │  1914 │       1801 │     111 │        0 │   1690 │       0 │             0 │
│ libheap.a                       │       3949 │  1324 │     8 │    12 │  1304 │       2625 │     437 │        0 │   2188 │       0 │             0 │
│ libesp_mm.a                     │       3772 │   662 │    44 │    28 │   590 │       3110 │     166 │        0 │   2944 │       0 │             0 │
│ libesp_timer.a                  │       3460 │  1566 │    36 │    16 │  1514 │       1894 │     104 │        0 │   1790 │       0 │             0 │
│ libesp_phy.a                    │       3197 │   397 │    44 │     1 │   352 │       2800 │     284 │        0 │   2516 │       0 │             0 │
│ libesp_driver_usb_serial_jtag.a │       2521 │   167 │    17 │    48 │   102 │       2354 │     152 │        0 │   2202 │       0 │             0 │
│ libesp_partition.a              │       2214 │     8 │     8 │     0 │     0 │       2206 │     168 │        0 │   2038 │       0 │             0 │
│ libesp_driver_gpio.a            │       2145 │     0 │     0 │     0 │     0 │       2145 │     277 │        0 │   1868 │       0 │             0 │
│ liblog.a                        │       1966 │   602 │   272 │     8 │   322 │       1364 │      48 │        0 │   1316 │       0 │             0 │
│ libesp_common.a                 │       1816 │     0 │     0 │     0 │     0 │       1816 │    1758 │        0 │     58 │       0 │             0 │
│ libefuse.a                      │       1689 │    52 │     4 │    48 │     0 │       1637 │     233 │        0 │   1404 │       0 │             0 │
│ libstdc++.a                     │       1662 │    25 │    17 │     8 │     0 │       1637 │     199 │        0 │   1438 │       0 │             0 │
│ libesp_rom.a                    │       1645 │  1594 │    84 │     0 │  1510 │         51 │      49 │        0 │      2 │       0 │             0 │
│ libesp_ringbuf.a                │       1502 │  1360 │     0 │     0 │  1360 │        142 │     142 │        0 │      0 │       0 │             0 │
│ libriscv.a                      │       1280 │  1100 │   256 │     0 │   844 │        180 │      50 │        0 │    130 │       0 │             0 │
│ libbootloader_support.a         │       1022 │   930 │     0 │     0 │   930 │         92 │      40 │        0 │     52 │       0 │             0 │
│ libesp_vfs_console.a            │        730 │    16 │    16 │     0 │     0 │        714 │     180 │        0 │    534 │       0 │             0 │
│ libesp_coex.a                   │        674 │   246 │     0 │    80 │   166 │        428 │       0 │        0 │    428 │       0 │             0 │
│ libsoc.a                        │        656 │     0 │     0 │     0 │     0 │        656 │     656 │        0 │      0 │       0 │             0 │
│ libpthread.a                    │        604 │     4 │     4 │     0 │     0 │        600 │      46 │        0 │    554 │       0 │             0 │
│ libm.a                          │        368 │     0 │     0 │     0 │     0 │        368 │       0 │        0 │    368 │       0 │             0 │
│ libcore.a                       │        360 │     9 │     9 │     0 │     0 │        351 │      43 │        0 │    308 │       0 │             0 │
│ libesp_security.a               │        307 │    12 │    12 │     0 │     0 │        295 │      33 │        0 │    262 │       0 │             0 │
│ libapp_update.a                 │        232 │     4 │     4 │     0 │     0 │        228 │      30 │        0 │    198 │       0 │             0 │
│ libmesh.a                       │         68 │     4 │     4 │     0 │     0 │         64 │       0 │        0 │     64 │       0 │             0 │
│ libcxx.a                        │         60 │     0 │     0 │     0 │     0 │         60 │       0 │        0 │     60 │       0 │             0 │
│ libnvs_sec_provider.a           │          2 │     0 │     0 │     0 │     0 │          2 │       0 │        0 │      2 │       0 │             0 │
└─────────────────────────────────┴────────────┴───────┴───────┴───────┴───────┴────────────┴─────────┴──────────┴────────┴─────────┴───────────────┘

This is missing libesp_wifi.a and a few others, I think those are being bundled inside libapp_zig.a which then does not get reduced properly, seems to all functions from many obj files i.e:
../build/esp-idf/esp_wifi/CMakeFiles/__idf_esp_wifi.dir/src/mesh_event.c.obj:
../build/esp-idf/esp_wifi/CMakeFiles/__idf_esp_wifi.dir/src/smartconfig.c.obj:
../build/esp-idf/esp_wifi/CMakeFiles/__idf_esp_wifi.dir/src/lib_printf.c.obj:
../build/esp-idf/esp_wifi/CMakeFiles/__idf_esp_wifi.dir/src/wifi_default_ap.c.obj:

I am a little confused why. The C version of the project is much smaller with libmain.a only be 1,455 bytes versus the 279,593:

 Per-archive contributions to ELF file                                                        
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━┳━━━━━━━┳━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Archive File                    ┃ Total Size ┃ DIRAM ┃  .bss ┃ .data ┃ .text ┃ Flash Code ┃ .rodata ┃ .appdesc ┃  .text ┃ LP SRAM ┃ .rtc_reserved ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━╇━━━━━━━╇━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ libnet80211.a                   │     156231 │ 19435 │ 10363 │  1780 │  7292 │     136796 │   16288 │        0 │ 120508 │       0 │             0 │
│ libpp.a                         │     110548 │ 45373 │  2746 │  3201 │ 39426 │      65175 │    9417 │        0 │  55758 │       0 │             0 │
│ liblwip.a                       │     102651 │  2482 │  2470 │    12 │     0 │     100169 │    3455 │        0 │  96714 │       0 │             0 │
│ libmbedcrypto.a                 │      79599 │   454 │   252 │   116 │    86 │      79145 │    6569 │        0 │  72576 │       0 │             0 │
│ libesp_app_format.a             │      59943 │    10 │    10 │     0 │     0 │      59933 │   59147 │      256 │    530 │       0 │             0 │
│ libwpa_supplicant.a             │      56979 │  1245 │  1237 │     8 │     0 │      55734 │    1596 │        0 │  54138 │       0 │             0 │
│ libesp_hw_support.a             │      42365 │ 12636 │   119 │  4347 │  8170 │      29705 │    2957 │        0 │  26748 │      24 │            24 │
│ libphy.a                        │      28723 │  5579 │    44 │   919 │  4616 │      23144 │       0 │        0 │  23144 │       0 │             0 │
│ libfreertos.a                   │      17345 │ 15910 │  2240 │    88 │ 13582 │       1435 │    1105 │        0 │    330 │       0 │             0 │
│ libnvs_flash.a                  │      17022 │    28 │    28 │     0 │     0 │      16994 │     252 │        0 │  16742 │       0 │             0 │
│ libhal.a                        │      15097 │  8606 │    12 │   348 │  8246 │       6491 │     399 │        0 │   6092 │       0 │             0 │
│ libesp_system.a                 │      13664 │  2664 │   138 │    92 │  2434 │      11000 │     570 │        0 │  10430 │       0 │             0 │
│ libspi_flash.a                  │      10558 │  8981 │    14 │   941 │  8026 │       1577 │     357 │        0 │   1220 │       0 │             0 │
│ libesp_driver_uart.a            │       8576 │   156 │    28 │   128 │     0 │       8420 │     552 │        0 │   7868 │       0 │             0 │
│ libesp_netif.a                  │       8210 │    33 │    29 │     4 │     0 │       8177 │     163 │        0 │   8014 │       0 │             0 │
│ libvfs.a                        │       6170 │   236 │    44 │   192 │     0 │       5934 │     158 │        0 │   5776 │       0 │             0 │
│ libc.a                          │       5616 │   580 │   320 │   260 │     0 │       5036 │       0 │        0 │   5036 │       0 │             0 │
│ libcoexist.a                    │       5474 │  1544 │     2 │  1446 │    96 │       3930 │      40 │        0 │   3890 │       0 │             0 │
│ libesp_wifi.a                   │       4947 │   921 │    43 │   484 │   394 │       4026 │      42 │        0 │   3984 │       0 │             0 │
│ libnewlib.a                     │       4067 │  2270 │   200 │   156 │  1914 │       1797 │     111 │        0 │   1686 │       0 │             0 │
│ libheap.a                       │       3949 │  1324 │     8 │    12 │  1304 │       2625 │     437 │        0 │   2188 │       0 │             0 │
│ libesp_event.a                  │       3773 │     4 │     4 │     0 │     0 │       3769 │     141 │        0 │   3628 │       0 │             0 │
│ libesp_mm.a                     │       3772 │   662 │    44 │    28 │   590 │       3110 │     166 │        0 │   2944 │       0 │             0 │
│ libesp_timer.a                  │       3458 │  1566 │    36 │    16 │  1514 │       1892 │     104 │        0 │   1788 │       0 │             0 │
│ libesp_phy.a                    │       3197 │   397 │    44 │     1 │   352 │       2800 │     284 │        0 │   2516 │       0 │             0 │
│ libesp_driver_usb_serial_jtag.a │       2521 │   167 │    17 │    48 │   102 │       2354 │     152 │        0 │   2202 │       0 │             0 │
│ libesp_partition.a              │       2214 │     8 │     8 │     0 │     0 │       2206 │     168 │        0 │   2038 │       0 │             0 │
│ libesp_driver_gpio.a            │       2145 │     0 │     0 │     0 │     0 │       2145 │     277 │        0 │   1868 │       0 │             0 │
│ liblog.a                        │       1966 │   602 │   272 │     8 │   322 │       1364 │      48 │        0 │   1316 │       0 │             0 │
│ libesp_common.a                 │       1816 │     0 │     0 │     0 │     0 │       1816 │    1758 │        0 │     58 │       0 │             0 │
│ libefuse.a                      │       1689 │    52 │     4 │    48 │     0 │       1637 │     233 │        0 │   1404 │       0 │             0 │
│ libstdc++.a                     │       1662 │    25 │    17 │     8 │     0 │       1637 │     199 │        0 │   1438 │       0 │             0 │
│ libesp_rom.a                    │       1645 │  1594 │    84 │     0 │  1510 │         51 │      49 │        0 │      2 │       0 │             0 │
│ libesp_ringbuf.a                │       1502 │  1360 │     0 │     0 │  1360 │        142 │     142 │        0 │      0 │       0 │             0 │
│ libmain.a                       │       1455 │     8 │     8 │     0 │     0 │       1447 │      23 │        0 │   1424 │       0 │             0 │
│ libriscv.a                      │       1280 │  1100 │   256 │     0 │   844 │        180 │      50 │        0 │    130 │       0 │             0 │
│ libbootloader_support.a         │       1022 │   930 │     0 │     0 │   930 │         92 │      40 │        0 │     52 │       0 │             0 │
│ libesp_vfs_console.a            │        730 │    16 │    16 │     0 │     0 │        714 │     180 │        0 │    534 │       0 │             0 │
│ libsoc.a                        │        684 │     0 │     0 │     0 │     0 │        684 │     684 │        0 │      0 │       0 │             0 │
│ libesp_coex.a                   │        674 │   246 │     0 │    80 │   166 │        428 │       0 │        0 │    428 │       0 │             0 │
│ libpthread.a                    │        604 │     4 │     4 │     0 │     0 │        600 │      46 │        0 │    554 │       0 │             0 │
│ libm.a                          │        368 │     0 │     0 │     0 │     0 │        368 │       0 │        0 │    368 │       0 │             0 │
│ libcore.a                       │        360 │     9 │     9 │     0 │     0 │        351 │      43 │        0 │    308 │       0 │             0 │
│ libesp_security.a               │        307 │    12 │    12 │     0 │     0 │        295 │      33 │        0 │    262 │       0 │             0 │
│ libapp_update.a                 │        232 │     4 │     4 │     0 │     0 │        228 │      30 │        0 │    198 │       0 │             0 │
│ libmesh.a                       │         68 │     4 │     4 │     0 │     0 │         64 │       0 │        0 │     64 │       0 │             0 │
│ libcxx.a                        │         60 │     0 │     0 │     0 │     0 │         60 │       0 │        0 │     60 │       0 │             0 │
│ libnvs_sec_provider.a           │          2 │     0 │     0 │     0 │     0 │          2 │       0 │        0 │      2 │       0 │             0 │
└─────────────────────────────────┴────────────┴───────┴───────┴───────┴───────┴────────────┴─────────┴──────────┴────────┴─────────┴───────────────┘

The C version's symbols are all undefined for WIFI i.e esp_wifi_connect :

         U esp_wifi_connect
         U esp_wifi_init
         U esp_wifi_set_config
         U esp_wifi_set_mode
         U esp_wifi_start

Where the Zig version's symbols includes it esp_wifi_connect :

../build/esp-idf/esp_wifi/CMakeFiles/__idf_esp_wifi.dir/src/wifi_init.c.obj:
00000000 t esp_wifi_config_info
00000000 T esp_wifi_connect
         U esp_wifi_connect_internal
00000000 T esp_wifi_deinit
         U esp_wifi_deinit_internal
00000000 T esp_wifi_disconnect
         U esp_wifi_disconnect_internal
         U esp_wifi_get_user_init_flag_internal
00000000 T esp_wifi_init

The second item and why WIFI fails to compile is because the searched_idf_libs function is taking every object file but not linking any libs or additional object files from IDF's core components. This is why libnet80211.a and libmesh.a where missing symbols. IDF will do a shake down of whats not used but since we are compiling the lib with Zig, IDF doesn't catch this and won't include these since it's out of its control. IDF also removes all unused functions and excludes them, but again the Zig lib does not do this and just include all functions from all .obj files. This is why I had to do this:

target_link_libraries(${COMPONENT_LIB} PRIVATE
    "-Wl,--start-group"
    ${IDF_PATH}/components/esp_phy/lib/esp32c6/libphy.a
    ${IDF_PATH}/components/esp_wifi/lib/esp32c6/libpp.a
    ${IDF_PATH}/components/esp_wifi/lib/esp32c6/libmesh.a
    ${IDF_PATH}/components/esp_wifi/lib/esp32c6/libnet80211.a
    ${IDF_PATH}/components/esp_wifi/lib/esp32c6/libcore.a
    ${CMAKE_BINARY_DIR}/esp-idf/log/liblog.a
    ${CMAKE_BINARY_DIR}/esp-idf/nvs_flash/libnvs_flash.a
    ${CMAKE_BINARY_DIR}/esp-idf/soc/libsoc.a
    ${CMAKE_BINARY_DIR}/esp-idf/esp_hw_support/libesp_hw_support.a
    ${CMAKE_BINARY_DIR}/esp-idf/hal/libhal.a
    ${CMAKE_BINARY_DIR}/esp-idf/freertos/libfreertos.a
    ${CMAKE_BINARY_DIR}/lib/libapp_zig.a
    ${CMAKE_BINARY_DIR}/esp-idf/esp_wifi/libesp_wifi.a
    ${CMAKE_BINARY_DIR}/esp-idf/wpa_supplicant/libwpa_supplicant.a
    "-Wl,--end-group"
)

Its also why this cmake change does nothing:

set(DEPS 
    pthread           # POSIX threads support
    driver            # ESP-IDF peripheral drivers
    esp_wifi          # ESP-IDF WiFi stack
    wpa_supplicant    # WPA security support
    log               # ESP logging system (for g_log_level)
    nvs_flash         # Non-volatile storage (for g_misc_nvs)
    esp_netif         # ESP networking interface
    esp_event         # ESP event loop (for esp_event_post)
    lwip              # Lightweight TCP/IP stack
    esp_phy           # Physical layer for WiFi
    esp_pm            # Power management (needed for WiFi stability)
)

IDF is not tracking libapp_zig.a so the subsequent included libs that would be present are excluded because it sees they are not used.

@joseph-montanez
Copy link
Author

On more issue... The structs do not align. I looked at idf-sys.zig and it says xtensa was used, but I am using RISCV, so I don't know if it just one, or many that do not align. I don't see anywhere on how to recreate idf-sys.zig.

@kassane
Copy link
Owner

kassane commented Feb 4, 2025

On more issue... The structs do not align. I looked at idf-sys.zig and it says xtensa was used, but I am using RISCV, so I don't know if it just one, or many that do not align. I don't see anywhere on how to recreate idf-sys.zig.

It was primarily based on xtensa-gcc. However, that build.zig is currently using gcc includes for target configuration.

lib.addSystemIncludePath(.{
.cwd_relative = b.pathJoin(&.{
home_dir,
".espressif",
"tools",
archtools,
"esp-13.2.0_20240530",
archtools,
archtools,
"sys-include",
}),

Although idf-sys has xtensa bindings, this doesn't mean that it's going to be used without calling it explicit.
Doing so might cause the gnu-linker to fail.

--- Edit

Currently @cImport/@cInclude still work.
Later we will change it in build.zig to use b.addTranslateC(.{...}) (based on upstream-roadmap), this will generate the bindings for idf-sys.

@kassane
Copy link
Owner

kassane commented Feb 4, 2025

Two things here. First, the lib even when compile ReleaseSmall is really large (even removed -freference-trace):

Does -freference-trace affect build size?

The second item and why WIFI fails to compile is because the searched_idf_libs function is taking every object file but not linking any libs or additional object files from IDF's core components. This is why libnet80211.a and libmesh.a where missing symbols.

Make sense. But then, what would it take to be able to get objects from those libraries?
The attempt to bind static-lib to static-lib does not work, justifying the 'obj' capture.

@joseph-montanez
Copy link
Author

Two things here. First, the lib even when compile ReleaseSmall is really large (even removed -freference-trace):

Does -freference-trace affect build size?

The second item and why WIFI fails to compile is because the searched_idf_libs function is taking every object file but not linking any libs or additional object files from IDF's core components. This is why libnet80211.a and libmesh.a where missing symbols.

Make sense. But then, what would it take to be able to get objects from those libraries? The attempt to bind static-lib to static-lib does not work, justifying the 'obj' capture.

This goes back to this. I've dropped the obj capture and just include the libs. They are in their respective .a files so including them is enough and you won't need a large binary anymore. The problem here is you need to know what to look for since IDF is not building the Zig library.

target_link_libraries(${COMPONENT_LIB} PRIVATE
    "-Wl,--start-group"
    ${IDF_PATH}/components/esp_phy/lib/esp32c6/libphy.a
    ${IDF_PATH}/components/esp_wifi/lib/esp32c6/libpp.a
    ${IDF_PATH}/components/esp_wifi/lib/esp32c6/libmesh.a
    ${IDF_PATH}/components/esp_wifi/lib/esp32c6/libnet80211.a
    ${IDF_PATH}/components/esp_wifi/lib/esp32c6/libcore.a
    ${CMAKE_BINARY_DIR}/esp-idf/log/liblog.a
    ${CMAKE_BINARY_DIR}/esp-idf/nvs_flash/libnvs_flash.a
    ${CMAKE_BINARY_DIR}/esp-idf/soc/libsoc.a
    #${CMAKE_BINARY_DIR}/esp-idf/soc/libesp_event.a
    ${CMAKE_BINARY_DIR}/esp-idf/esp_hw_support/libesp_hw_support.a
    ${CMAKE_BINARY_DIR}/esp-idf/hal/libhal.a
    ${CMAKE_BINARY_DIR}/esp-idf/mbedtls/mbedtls/library/libmbedcrypto.a
    ${CMAKE_BINARY_DIR}/esp-idf/freertos/libfreertos.a
    ${CMAKE_BINARY_DIR}/esp-idf/lwip/liblwip.a
    ${CMAKE_BINARY_DIR}/esp-idf/esp_wifi/libesp_wifi.a
    ${CMAKE_BINARY_DIR}/esp-idf/esp_netif/libesp_netif.a
    ${CMAKE_BINARY_DIR}/esp-idf/esp_event/libesp_event.a
    ${CMAKE_BINARY_DIR}/esp-idf/wpa_supplicant/libwpa_supplicant.a
    ${CMAKE_BINARY_DIR}/lib/libapp_zig.a
    "-Wl,--end-group"
)

This brings the zig library to only 6KB versus the 200KB+ (for ReleaseSmall):

                                                        Per-archive contributions to ELF file
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━┳━━━━━━━┳━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Archive File                    ┃ Total Size ┃ DIRAM ┃  .bss ┃ .data ┃ .text ┃ Flash Code ┃ .rodata ┃ .appdesc ┃  .text ┃ LP SRAM ┃ .rtc_reserved ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━╇━━━━━━━╇━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ libnet80211.a                   │     184898 │ 19485 │ 10386 │  1785 │  7314 │     165413 │   18735 │        0 │ 146678 │       0 │             0 │
│ libpp.a                         │     110746 │ 45365 │  2746 │  3201 │ 39418 │      65381 │    9405 │        0 │  55976 │       0 │             0 │
│ liblwip.a                       │     102651 │  2482 │  2470 │    12 │     0 │     100169 │    3455 │        0 │  96714 │       0 │             0 │
│ libmbedcrypto.a                 │      79609 │   454 │   252 │   116 │    86 │      79155 │    6569 │        0 │  72586 │       0 │             0 │
│ libwpa_supplicant.a             │      78621 │  1329 │  1321 │     8 │     0 │      77292 │    1596 │        0 │  75696 │       0 │             0 │
│ libesp_app_format.a             │      59659 │    10 │    10 │     0 │     0 │      59649 │   58863 │      256 │    530 │       0 │             0 │
│ libesp_hw_support.a             │      42337 │ 12636 │   119 │  4347 │  8170 │      29677 │    2957 │        0 │  26720 │      24 │            24 │
│ libphy.a                        │      28375 │  5547 │    44 │   919 │  4584 │      22828 │       0 │        0 │  22828 │       0 │             0 │
│ libfreertos.a                   │      17343 │ 15908 │  2240 │    88 │ 13580 │       1435 │    1105 │        0 │    330 │       0 │             0 │
│ libnvs_flash.a                  │      17022 │    28 │    28 │     0 │     0 │      16994 │     252 │        0 │  16742 │       0 │             0 │
│ libhal.a                        │      15097 │  8606 │    12 │   348 │  8246 │       6491 │     399 │        0 │   6092 │       0 │             0 │
│ libesp_system.a                 │      13644 │  2664 │   138 │    92 │  2434 │      10980 │     570 │        0 │  10410 │       0 │             0 │
│ libspi_flash.a                  │      10558 │  8981 │    14 │   941 │  8026 │       1577 │     357 │        0 │   1220 │       0 │             0 │
│ libc.a                          │       8886 │   712 │   356 │   356 │     0 │       8174 │      96 │        0 │   8078 │       0 │             0 │
│ libesp_driver_uart.a            │       8576 │   156 │    28 │   128 │     0 │       8420 │     552 │        0 │   7868 │       0 │             0 │
│ libesp_netif.a                  │       8210 │    33 │    29 │     4 │     0 │       8177 │     163 │        0 │   8014 │       0 │             0 │
│ libvfs.a                        │       6170 │   236 │    44 │   192 │     0 │       5934 │     158 │        0 │   5776 │       0 │             0 │
│ libapp_zig.a                    │       6162 │    20 │    20 │     0 │     0 │       6142 │    1842 │        0 │   4300 │       0 │             0 │
│ libcoexist.a                    │       5474 │  1544 │     2 │  1446 │    96 │       3930 │      40 │        0 │   3890 │       0 │             0 │
│ libesp_wifi.a                   │       5113 │   919 │    43 │   484 │   392 │       4194 │      42 │        0 │   4152 │       0 │             0 │
│ libnewlib.a                     │       4071 │  2270 │   200 │   156 │  1914 │       1801 │     111 │        0 │   1690 │       0 │             0 │
│ libheap.a                       │       3949 │  1324 │     8 │    12 │  1304 │       2625 │     437 │        0 │   2188 │       0 │             0 │
│ libesp_event.a                  │       3773 │     4 │     4 │     0 │     0 │       3769 │     141 │        0 │   3628 │       0 │             0 │
│ libesp_mm.a                     │       3772 │   662 │    44 │    28 │   590 │       3110 │     166 │        0 │   2944 │       0 │             0 │
│ libesp_timer.a                  │       3460 │  1566 │    36 │    16 │  1514 │       1894 │     104 │        0 │   1790 │       0 │             0 │
│ libesp_phy.a                    │       3197 │   397 │    44 │     1 │   352 │       2800 │     284 │        0 │   2516 │       0 │             0 │
│ libesp_driver_usb_serial_jtag.a │       2521 │   167 │    17 │    48 │   102 │       2354 │     152 │        0 │   2202 │       0 │             0 │
│ liblog.a                        │       2258 │   624 │   294 │     8 │   322 │       1634 │      48 │        0 │   1586 │       0 │             0 │
│ libesp_partition.a              │       2214 │     8 │     8 │     0 │     0 │       2206 │     168 │        0 │   2038 │       0 │             0 │
│ libesp_driver_gpio.a            │       2145 │     0 │     0 │     0 │     0 │       2145 │     277 │        0 │   1868 │       0 │             0 │
│ libesp_common.a                 │       1816 │     0 │     0 │     0 │     0 │       1816 │    1758 │        0 │     58 │       0 │             0 │
│ libefuse.a                      │       1689 │    52 │     4 │    48 │     0 │       1637 │     233 │        0 │   1404 │       0 │             0 │
│ libstdc++.a                     │       1662 │    25 │    17 │     8 │     0 │       1637 │     199 │        0 │   1438 │       0 │             0 │
│ libesp_rom.a                    │       1645 │  1594 │    84 │     0 │  1510 │         51 │      49 │        0 │      2 │       0 │             0 │
│ libesp_ringbuf.a                │       1502 │  1360 │     0 │     0 │  1360 │        142 │     142 │        0 │      0 │       0 │             0 │
│ libriscv.a                      │       1280 │  1100 │   256 │     0 │   844 │        180 │      50 │        0 │    130 │       0 │             0 │
│ libbootloader_support.a         │       1022 │   930 │     0 │     0 │   930 │         92 │      40 │        0 │     52 │       0 │             0 │
│ libesp_vfs_console.a            │        730 │    16 │    16 │     0 │     0 │        714 │     180 │        0 │    534 │       0 │             0 │
│ libsoc.a                        │        684 │     0 │     0 │     0 │     0 │        684 │     684 │        0 │      0 │       0 │             0 │
│ libesp_coex.a                   │        674 │   246 │     0 │    80 │   166 │        428 │       0 │        0 │    428 │       0 │             0 │
│ libpthread.a                    │        604 │     4 │     4 │     0 │     0 │        600 │      46 │        0 │    554 │       0 │             0 │
│ libm.a                          │        368 │     0 │     0 │     0 │     0 │        368 │       0 │        0 │    368 │       0 │             0 │
│ libcore.a                       │        360 │     9 │     9 │     0 │     0 │        351 │      43 │        0 │    308 │       0 │             0 │
│ libesp_security.a               │        307 │    12 │    12 │     0 │     0 │        295 │      33 │        0 │    262 │       0 │             0 │
│ libapp_update.a                 │        232 │     4 │     4 │     0 │     0 │        228 │      30 │        0 │    198 │       0 │             0 │
│ libmesh.a                       │         68 │     4 │     4 │     0 │     0 │         64 │       0 │        0 │     64 │       0 │             0 │
│ libcxx.a                        │         60 │     0 │     0 │     0 │     0 │         60 │       0 │        0 │     60 │       0 │             0 │
│ libnvs_sec_provider.a           │          2 │     0 │     0 │     0 │     0 │          2 │       0 │        0 │      2 │       0 │             0 │
└─────────────────────────────────┴────────────┴───────┴───────┴───────┴───────┴────────────┴─────────┴──────────┴────────┴─────────┴───────────────┘

@joseph-montanez
Copy link
Author

joseph-montanez commented Feb 5, 2025

I got it working, regenerating the sys-idf.zig worked.

I (773) wifi:connected with XXXXX XXXXXX, aid = 1, channel 1, BW20, bssid = XX:XX:XX:XX:XX:XX
I (773) wifi:security: WPA2-PSK, phy:11bgn, rssi:-36, cipher(pairwise:0x3, group:0x3), pmf:0,
I (793) wifi:pm start, type: 1, twt_start:0

I (793) wifi:pm start, type:1, aid:0x1, trans-BSSID:XX:XX:XX:XX:XX:XX, BSSID[5]:0xXX, mbssid(max-indicator:0, index:0), he:0
I (803) wifi:dp: 1, bi: 102400, li: 3, scale listen interval from 307200 us to 307200 us
I (803) wifi:set rx beacon pti, rx_bcn_pti: 10, bcn_timeout: 25000, mt_pti: 10, mt_time: 10000
I (813) wifi:[ADDBA]TX addba request, tid:0, dialogtoken:1, bufsize:64, A-MSDU:0(not supported), policy:1(IMR), ssn:0(0x0)
I (823) wifi:[ADDBA]TX addba request, tid:7, dialogtoken:2, bufsize:64, A-MSDU:0(not supported), policy:1(IMR), ssn:0(0x20)
I (833) wifi:[ADDBA]TX addba request, tid:5, dialogtoken:3, bufsize:64, A-MSDU:0(not supported), policy:1(IMR), ssn:0(0x0)
I (843) wifi:AP's beacon interval = 102400 us, DTIM period = 1
I (853) wifi:[ADDBA]RX addba response, status:0, tid:0/tb:1(0xa1), bufsize:64, batimeout:0, txa_wnd:64
I (863) wifi:[ADDBA]RX addba response, status:0, tid:7/tb:1(0xa1), bufsize:64, batimeout:0, txa_wnd:64
I (873) wifi:[ADDBA]RX addba response, status:0, tid:5/tb:1(0xa1), bufsize:64, batimeout:0, txa_wnd:64
I (1903) esp_netif_handlers: sta ip: 192.168.3.143, mask: 255.255.255.0, gw: 192.168.3.1

Here is what I did for my version:

# How to find the include paths
# find ~/Downloads/esp-idf-v5.4 ~/Documents/esp-wifi ~/.espressif -name "sys_arch.h"
# grep -R "rv_utils_get_core_id" ~/Downloads/esp-idf-v5.4 ~/Documents/esp-wifi

zig translate-c \
    -D target=riscv32-freestanding-none \
    -D cpu_generic_rv32+a+c+m+zicsr+zifencei \
    -D CONFIG_IDF_TARGET_ESP32C6 \
    -D __riscv \
    -D __COUNTER__=0 \
    -D IRAM_ATTR= \
    -D "_SECTION_ATTR_IMPL(x,y)"= \
    -D SOC_MMU_PAGE_SIZE=0x8000 \
    -I /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/freertos/FreeRTOS-Kernel/include \
    -I /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/freertos/config/include/freertos/ \
    -I /Users/josephmontanez_1/Documents/esp-wifi/build/config \
    -I /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/freertos/config/riscv/include \
    -I /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/freertos/FreeRTOS-Kernel-SMP/portable/riscv/include/freertos \
    -I /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_hw_support/include \
    -I /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/soc/esp32c6/include \
    -I /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_common/include \
    -I /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/riscv/include \
    -I /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/soc/esp32c6/register \
    -I /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_system/include \
    -I /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/newlib/include \
    -I /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/newlib/platform_include/sys \
    -I /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/newlib/platform_include \
    -I /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/hal/platform_port/include \
    -I /Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/sys-include \
    -I /Users/josephmontanez_1/.espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/riscv32-esp-elf/include \
    -I /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/heap/include \
    -I /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_rom/include \
    -I /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_wifi/include \
    -I /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_event/include \
    -I /Users/josephmontanez_1/Downloads/esp-idf-v5.4/examples/protocols/linux_stubs/esp_stubs/include \
    -I /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/lwip/include \
    -I /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/lwip/lwip/src/include \
    -I /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/lwip/port/include \
    -I /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/freertos/config/include \
    -I /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/lwip/port/freertos/include \
    -I /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/lwip/port/esp32xx/include \
    -I /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/log/include \
    -I /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/nvs_flash/include \
    -I /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_partition/include \
    -I /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_netif/include \
    -I /Users/josephmontanez_1/Downloads/esp-idf-v5.4/components/esp_event/include \
    ~/Documents/esp-wifi/main/station_example_main.c > idf-sys.zig

The wifi C code is from the example from ESP-IDF. This changed all errors to be in global scope, so I had to change the code to work with that instead of ENUMs. I had to remove app_main from my generated version of idf-sys.zig, and change back the wifi sta opaque. Technically the wifi sat can stay opaque, but I just wanted to get this working first. Once I do a little code clean up, I'll push up my repository with the changes. I don't think anything I did is reusable though. idf-sys depends on the person's device and while @cImport is ideal, noting how many includes are needed and the following defines might be impractical.

const std = @import("std");
const builtin = @import("builtin");
const idf = @import("esp_idf");
const mem = std.mem;

// Globals
var global_allocator: ?std.mem.Allocator = null;
var s_retry_num: i32 = 0;
var s_wifi_event_group: ?*anyopaque = null;
const tag = "zig-example";

export fn app_main() callconv(.C) void {
    const heap = std.heap.raw_c_allocator;
    var arena = std.heap.ArenaAllocator.init(heap);
    defer {
        idf.ESP_LOG(global_allocator.?, tag, "ARENA DEINIT();\n", .{});
        arena.deinit();
    }
    global_allocator = arena.allocator();

    // Initalize NVS
    var ret = idf.sys.nvs_flash_init();
    if (ret == idf.sys.ESP_ERR_NVS_NO_FREE_PAGES or ret == idf.sys.ESP_ERR_NVS_NEW_VERSION_FOUND) {
        idf.espCheckError(idf.sys.nvs_flash_erase()) catch {};
        ret = idf.sys.nvs_flash_init();
    }
    idf.espCheckError(ret) catch {};

    idf.ESP_LOG(global_allocator.?, tag, "ESP_WIFI_MODE_STA\n", .{});

    wifi_init_sta(global_allocator.?);
}

// override the std panic function with idf.panic
pub const panic = idf.panic;
const log = std.log.scoped(.@"esp-idf");
pub const std_options: std.Options = .{
    .log_level = switch (builtin.mode) {
        .Debug => .debug,
        else => .info,
    },
    // Define logFn to override the std implementation
    .logFn = idf.espLogFn,
};

fn ip_to_str(ip: u32) []u8 {
    var addr: [16]u8 = [_]u8{0} ** 16; // Buffer to store the formatted string

    return std.fmt.bufPrint(&addr, "{d}.{d}.{d}.{d}", .{
        @as(u8, @intCast(ip & 0xFF)), // Byte 1
        @as(u8, @intCast((ip >> 8) & 0xFF)), // Byte 2
        @as(u8, @intCast((ip >> 16) & 0xFF)), // Byte 3
        @as(u8, @intCast((ip >> 24) & 0xFF)), // Byte 4
    }) catch "";
}

export fn event_handler(
    _: ?*anyopaque,
    event_base: idf.sys.esp_event_base_t,
    event_id: i32,
    event_data: ?*anyopaque,
) callconv(.C) void {
    if (global_allocator) |allocator| {
        if (event_base == idf.sys.WIFI_EVENT) {
            //const event_type = @as(idf.sys.wifi_event_t, @enumFromInt(@as(c_uint, @intCast(event_id))));

            if (event_id == idf.sys.WIFI_EVENT_STA_START) {
                idf.wifi.connect() catch {};
            } else if (event_id == idf.sys.WIFI_EVENT_STA_DISCONNECTED) {
                if (s_retry_num < 5) {
                    idf.wifi.connect() catch {
                        s_retry_num += 1;
                    };
                    idf.ESP_LOG(allocator, tag, "retry to connect to the AP\n", .{});
                } else {
                    _ = idf.sys.xEventGroupSetBits(@as(idf.sys.EventGroupHandle_t, @ptrCast(s_wifi_event_group)), idf.sys.WIFI_FAIL_BIT);
                }
                idf.ESP_LOG(allocator, tag, "connect to the AP fail\n", .{});
            }
        } else if (event_base == idf.sys.IP_EVENT) {
            //const event_type = @as(idf.sys.ip_event_t, @enumFromInt(@as(c_uint, @intCast(event_id))));

            if (event_id == idf.sys.IP_EVENT_STA_GOT_IP) {
                const event: *idf.sys.ip_event_got_ip_t = @ptrCast(@alignCast(event_data));
                idf.ESP_LOG(allocator, tag, "got ip: {s}\n", .{ip_to_str(event.ip_info.ip.addr)});
                s_retry_num = 0;
                _ = idf.sys.xEventGroupSetBits(@as(idf.sys.EventGroupHandle_t, @ptrCast(s_wifi_event_group)), idf.sys.WIFI_CONNECTED_BIT);
            }
        }
    }
}

fn wifi_init_sta(allocator: std.mem.Allocator) void {
    s_wifi_event_group = idf.sys.xEventGroupCreate();

    idf.espCheckError(idf.sys.esp_netif_init()) catch {};

    idf.espCheckError(idf.sys.esp_event_loop_create_default()) catch {};
    _ = idf.sys.esp_netif_create_default_wifi_sta();

    // TODO: Some of these come from the sdkconfig, how to parse in?
    var cfg = idf.wifi.init_config_default();
    idf.ESP_LOG(allocator, tag, "WiFi Init Magic: 0x{x}\n", .{cfg.magic});
    idf.espCheckError(idf.sys.esp_wifi_init(&cfg)) catch {
        idf.ESP_LOG(allocator, tag, "WiFi init failed", .{});
    };

    var instance_any_id: idf.sys.esp_event_handler_instance_t = undefined;
    var instance_got_ip: idf.sys.esp_event_handler_instance_t = undefined;

    idf.espCheckError(idf.sys.esp_event_handler_instance_register(
        idf.sys.WIFI_EVENT,
        -1,
        &event_handler,
        null,
        &instance_any_id,
    )) catch {};
    idf.espCheckError(idf.sys.esp_event_handler_instance_register(
        idf.sys.WIFI_EVENT,
        idf.sys.IP_EVENT_STA_GOT_IP,
        &event_handler,
        null,
        &instance_got_ip,
    )) catch {};

    var wifi_config = idf.sys.wifi_config_t{
        .sta = .{
            .ssid = mem.zeroes([32]u8),
            .password = mem.zeroes([64]u8),
            .threshold = .{ .authmode = idf.sys.WIFI_AUTH_WPA2_PSK },
            .sae_pwe_h2e = idf.sys.WPA3_SAE_PWE_BOTH,
            .sae_h2e_identifier = mem.zeroes([32]u8),
        },
    };
    const ssid = "";
    const passwd = "";
    const sae_h2e_id = "";

    mem.copyForwards(u8, wifi_config.sta.ssid[0..ssid.len], ssid);
    wifi_config.sta.ssid[ssid.len] = 0;

    mem.copyForwards(u8, wifi_config.sta.password[0..passwd.len], passwd);
    wifi_config.sta.password[passwd.len] = 0;

    mem.copyForwards(u8, wifi_config.sta.sae_h2e_identifier[0..sae_h2e_id.len], sae_h2e_id);
    wifi_config.sta.sae_h2e_identifier[sae_h2e_id.len] = 0;

    idf.wifi.setMode(idf.sys.WIFI_MODE_STA) catch {};
    idf.wifi.setConfig(idf.sys.WIFI_IF_STA, &wifi_config) catch {};
    idf.wifi.start() catch {};

    idf.ESP_LOG(allocator, tag, "wifi_init_sta finished.\n", .{});

    // Waiting until either the connection is established (WIFI_CONNECTED_BIT) or connection failed for the maximum
    // number of re-tries (WIFI_FAIL_BIT). The bits are set by event_handler() (see above)
    const bits = idf.sys.xEventGroupWaitBits(
        @as(idf.sys.EventGroupHandle_t, @ptrCast(s_wifi_event_group)),
        idf.sys.WIFI_CONNECTED_BIT | idf.sys.WIFI_FAIL_BIT,
        0,
        0,
        0xffffffff,
    );

    // xEventGroupWaitBits() returns the bits before the call returned, hence we can test which event actually
    // happened.
    if ((bits & idf.sys.WIFI_CONNECTED_BIT) != 0) {
        idf.ESP_LOG(allocator, tag, "connected to ap SSID: {s} password: {s}\n", .{ ssid, passwd });
    } else if ((bits & idf.sys.WIFI_FAIL_BIT) != 0) {
        idf.ESP_LOG(allocator, tag, "Failed to connect SSID: {s} password: {s}\n", .{ ssid, passwd });
    } else {
        idf.ESP_LOG(allocator, tag, "UNEXPECTED EVENT", .{});
    }
}

@kassane
Copy link
Owner

kassane commented Feb 5, 2025

I got it working, regenerating the sys-idf.zig worked.

@joseph-montanez, awesome!
PR's welcome.

@joseph-montanez
Copy link
Author

I should have a PR by this weekend. This will change errors since they will no longer be grouped to enums inside idf-sys.zig, but at least the resulting idf-sys.zig will automatically generated moving forward. @cImport won't work because the file does need to be patched.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants