espressif/rust-esp32-example

Build fails

VoidField101 opened this issue · 2 comments

After running the installation steps for ESP-IDF and esp-rs/rust-build as well as sourcing the environment for both esp-idf and the rust environment the build fails:

get_idf
source ~/esp32/rust-build/export-esp-rust.sh
idf.py set-target esp32
idf.py build

The build fails with the following error:

[848/854] Building C object esp-idf/main/CMakeFiles/__idf_main.dir/main.c.obj
FAILED: esp-idf/main/CMakeFiles/__idf_main.dir/main.c.obj 
/home/void/.espressif/tools/xtensa-esp32-elf/esp-2021r2-patch3-8.4.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc -DMBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\" -DUNITY_INCLUDE_CONFIG_H -I/home/void/esp32/rust-esp32-example/build/config -I/home/void/esp32/esp-idf/components/newlib/platform_include -I/home/void/esp32/esp-idf/components/freertos/FreeRTOS-Kernel/include -I/home/void/esp32/esp-idf/components/freertos/esp_additions/include/freertos -I/home/void/esp32/esp-idf/components/freertos/FreeRTOS-Kernel/portable/xtensa/include -I/home/void/esp32/esp-idf/components/freertos/esp_additions/include -I/home/void/esp32/esp-idf/components/esp_hw_support/include -I/home/void/esp32/esp-idf/components/esp_hw_support/include/soc -I/home/void/esp32/esp-idf/components/esp_hw_support/include/soc/esp32 -I/home/void/esp32/esp-idf/components/esp_hw_support/port/esp32/. -I/home/void/esp32/esp-idf/components/esp_hw_support/port/esp32/private_include -I/home/void/esp32/esp-idf/components/heap/include -I/home/void/esp32/esp-idf/components/log/include -I/home/void/esp32/esp-idf/components/lwip/include/apps -I/home/void/esp32/esp-idf/components/lwip/include/apps/sntp -I/home/void/esp32/esp-idf/components/lwip/lwip/src/include -I/home/void/esp32/esp-idf/components/lwip/port/esp32/include -I/home/void/esp32/esp-idf/components/lwip/port/esp32/include/arch -I/home/void/esp32/esp-idf/components/soc/include -I/home/void/esp32/esp-idf/components/soc/esp32/. -I/home/void/esp32/esp-idf/components/soc/esp32/include -I/home/void/esp32/esp-idf/components/hal/esp32/include -I/home/void/esp32/esp-idf/components/hal/include -I/home/void/esp32/esp-idf/components/hal/platform_port/include -I/home/void/esp32/esp-idf/components/esp_rom/include -I/home/void/esp32/esp-idf/components/esp_rom/include/esp32 -I/home/void/esp32/esp-idf/components/esp_rom/esp32 -I/home/void/esp32/esp-idf/components/esp_common/include -I/home/void/esp32/esp-idf/components/esp_system/include -I/home/void/esp32/esp-idf/components/esp_system/port/soc -I/home/void/esp32/esp-idf/components/esp_system/port/include/private -I/home/void/esp32/esp-idf/components/xtensa/include -I/home/void/esp32/esp-idf/components/xtensa/esp32/include -I/home/void/esp32/esp-idf/components/efuse/include -I/home/void/esp32/esp-idf/components/efuse/esp32/include -I/home/void/esp32/esp-idf/components/vfs/include -I/home/void/esp32/esp-idf/components/esp_wifi/include -I/home/void/esp32/esp-idf/components/esp_event/include -I/home/void/esp32/esp-idf/components/esp_netif/include -I/home/void/esp32/esp-idf/components/esp_eth/include -I/home/void/esp32/esp-idf/components/esp_phy/include -I/home/void/esp32/esp-idf/components/esp_phy/esp32/include -I/home/void/esp32/esp-idf/components/esp_timer/include -I/home/void/esp32/esp-idf/components/esp_ringbuf/include -I/home/void/esp32/esp-idf/components/driver/include -I/home/void/esp32/esp-idf/components/driver/deprecated -I/home/void/esp32/esp-idf/components/driver/esp32/include -I/home/void/esp32/esp-idf/components/esp_pm/include -I/home/void/esp32/esp-idf/components/mbedtls/port/include -I/home/void/esp32/esp-idf/components/mbedtls/mbedtls/include -I/home/void/esp32/esp-idf/components/mbedtls/esp_crt_bundle/include -I/home/void/esp32/esp-idf/components/mbedtls/mbedtls/library -I/home/void/esp32/esp-idf/components/app_update/include -I/home/void/esp32/esp-idf/components/spi_flash/include -I/home/void/esp32/esp-idf/components/bootloader_support/include -I/home/void/esp32/esp-idf/components/bootloader_support/bootloader_flash/include -I/home/void/esp32/esp-idf/components/nvs_flash/include -I/home/void/esp32/esp-idf/components/pthread/include -I/home/void/esp32/esp-idf/components/wpa_supplicant/include -I/home/void/esp32/esp-idf/components/wpa_supplicant/port/include -I/home/void/esp32/esp-idf/components/wpa_supplicant/esp_supplicant/include -I/home/void/esp32/esp-idf/components/app_trace/include -I/home/void/esp32/esp-idf/components/asio/asio/asio/include -I/home/void/esp32/esp-idf/components/asio/port/include -I/home/void/esp32/esp-idf/components/unity/include -I/home/void/esp32/esp-idf/components/unity/unity/src -I/home/void/esp32/esp-idf/components/cmock/CMock/src -I/home/void/esp32/esp-idf/components/console -I/home/void/esp32/esp-idf/components/http_parser -I/home/void/esp32/esp-idf/components/esp-tls -I/home/void/esp32/esp-idf/components/esp-tls/esp-tls-crypto -I/home/void/esp32/esp-idf/components/esp_adc_cal/include -I/home/void/esp32/esp-idf/components/esp_gdbstub/include -I/home/void/esp32/esp-idf/components/esp_gdbstub/xtensa -I/home/void/esp32/esp-idf/components/esp_gdbstub/esp32 -I/home/void/esp32/esp-idf/components/esp_hid/include -I/home/void/esp32/esp-idf/components/tcp_transport/include -I/home/void/esp32/esp-idf/components/esp_http_client/include -I/home/void/esp32/esp-idf/components/esp_http_server/include -I/home/void/esp32/esp-idf/components/esp_https_ota/include -I/home/void/esp32/esp-idf/components/esp_lcd/include -I/home/void/esp32/esp-idf/components/esp_lcd/interface -I/home/void/esp32/esp-idf/components/protobuf-c/protobuf-c -I/home/void/esp32/esp-idf/components/protocomm/include/common -I/home/void/esp32/esp-idf/components/protocomm/include/security -I/home/void/esp32/esp-idf/components/protocomm/include/transports -I/home/void/esp32/esp-idf/components/mdns/include -I/home/void/esp32/esp-idf/components/esp_local_ctrl/include -I/home/void/esp32/esp-idf/components/sdmmc/include -I/home/void/esp32/esp-idf/components/esp_serial_slave_link/include -I/home/void/esp32/esp-idf/components/espcoredump/include -I/home/void/esp32/esp-idf/components/espcoredump/include/port/xtensa -I/home/void/esp32/esp-idf/components/wear_levelling/include -I/home/void/esp32/esp-idf/components/fatfs/diskio -I/home/void/esp32/esp-idf/components/fatfs/vfs -I/home/void/esp32/esp-idf/components/fatfs/src -I/home/void/esp32/esp-idf/components/freemodbus/common/include -I/home/void/esp32/esp-idf/components/idf_test/include -I/home/void/esp32/esp-idf/components/idf_test/include/esp32 -I/home/void/esp32/esp-idf/components/ieee802154/include -I/home/void/esp32/esp-idf/components/json/cJSON -I/home/void/esp32/esp-idf/components/mqtt/esp-mqtt/include -I/home/void/esp32/esp-idf/components/perfmon/include -I/home/void/esp32/esp-idf/components/spiffs/include -I/home/void/esp32/esp-idf/components/ulp/ulp_common/include -I/home/void/esp32/esp-idf/components/ulp/ulp_common/include/esp32 -I/home/void/esp32/esp-idf/components/wifi_provisioning/include -I/home/void/esp32/rust-esp32-example/components/clib/include -I/home/void/esp32/rust-esp32-example/build/esp-idf/rustlib/target -mlongcalls -Wno-frame-address  -ffunction-sections -fdata-sections -Wall -Werror=all -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wextra -Wno-unused-parameter -Wno-sign-compare -ggdb -Og -fmacro-prefix-map=/home/void/esp32/rust-esp32-example=. -fmacro-prefix-map=/home/void/esp32/esp-idf=/IDF -fstrict-volatile-bitfields -Wno-error=unused-but-set-variable -fno-jump-tables -fno-tree-switch-conversion -DconfigENABLE_FREERTOS_DEBUG_OCDAWARE=1 -std=gnu99 -Wno-old-style-declaration -D_GNU_SOURCE -DIDF_VER=\"v5.0-dev-2137-g2f9d47c708\" -DESP_PLATFORM -D_POSIX_READER_WRITER_LOCKS -MD -MT esp-idf/main/CMakeFiles/__idf_main.dir/main.c.obj -MF esp-idf/main/CMakeFiles/__idf_main.dir/main.c.obj.d -o esp-idf/main/CMakeFiles/__idf_main.dir/main.c.obj -c /home/void/esp32/rust-esp32-example/main/main.c
/home/void/esp32/rust-esp32-example/main/main.c: In function 'app_main':
/home/void/esp32/rust-esp32-example/main/main.c:23:5: error: unknown type name 'esp_chip_info_t'; did you mean 'multi_heap_info_t'?
     esp_chip_info_t chip_info;
     ^~~~~~~~~~~~~~~
     multi_heap_info_terror=implicit-function-declaration]
     esp_chip_info(&chip_info);
     ^~~~~~~~~~~~~
     esp_rom_printf
/home/void/esp32/rust-esp32-example/main/main.c:27:22: error: request for member 'cores' in something not a structure or union
             chip_info.cores,
                      ^
/home/void/esp32/rust-esp32-example/main/main.c:28:23: error: request for member 'features' in something not a structure or union
             (chip_info.features & CHIP_FEATURE_BT) ? "/BT" : "",
                       ^
/home/void/esp32/rust-esp32-example/main/main.c:28:35: error: 'CHIP_FEATURE_BT' undeclared (first use in this function)
             (chip_info.features & CHIP_FEATURE_BT) ? "/BT" : "",
                                   ^~~~~~~~~~~~~~~
/home/void/esp32/rust-esp32-example/main/main.c:28:35: note: each undeclared identifier is reported only once for each function it appears in
/home/void/esp32/rust-esp32-example/main/main.c:29:23: error: request for member 'features' in something not a structure or union
             (chip_info.features & CHIP_FEATURE_BLE) ? "/BLE" : "");
                       ^
/home/void/esp32/rust-esp32-example/main/main.c:29:35: error: 'CHIP_FEATURE_BLE' undeclared (first use in this function)
             (chip_info.features & CHIP_FEATURE_BLE) ? "/BLE" : "");
                                   ^~~~~~~~~~~~~~~~
/home/void/esp32/rust-esp32-example/main/main.c:31:46: error: request for member 'revision' in something not a structure or union
     printf("silicon revision %d, ", chip_info.revision);
/home/void/esp32/rust-esp32-example/main/main.c:24:5: error: implicit declaration of function 'esp_chip_info'; did you mean 'esp_rom_printf'? [-W
                                              ^
/home/void/esp32/rust-esp32-example/main/main.c:34:23: error: request for member 'features' in something not a structure or union
             (chip_info.features & CHIP_FEATURE_EMB_FLASH) ? "embedded" : "external");
                       ^
/home/void/esp32/rust-esp32-example/main/main.c:34:35: error: 'CHIP_FEATURE_EMB_FLASH' undeclared (first use in this function)
             (chip_info.features & CHIP_FEATURE_EMB_FLASH) ? "embedded" : "external");
                                   ^~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
ninja: build stopped: subcommand failed.
ninja failed with exit code 1

igrr commented

@VoidField101 thank you for reporting, could you please try the fix proposed in #47?

Yes.
I just found that the include was just missing and added it in my test and it worked.

Also just tested the PR on my setup and it also fixed the issue.