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

ESP-IDF Environment Auto-Loading #49

Closed
vpochapuis opened this issue Jul 29, 2022 · 5 comments
Closed

ESP-IDF Environment Auto-Loading #49

vpochapuis opened this issue Jul 29, 2022 · 5 comments

Comments

@vpochapuis
Copy link

Sorry to bother, I am new with those tools.
I previously used ESP-IDF with C. I know we needed to always do a get_idf before compiling, but for esp-rs, I thought that given this templates will generate at build a full ESP-IDF environment in the .embuild it was designed to automatically load the environment when doing cargo build? (Its a supposition it might not be the case, please let me know).

So my question is: Is my setup incorrect, or should we always manually source the export.sh file? (Manually doing it would be quite troublesome as when using Rust Analyzer with Flycheck, as they are not in the same env, they would break in VsCode for example and I didn't find yet a workaround).

For further information on my issue when launching cargo check or cargo build, here is the output (I think its the usual output for a missing ESP-IDF Python Env, but there might be other information useful if it was supposed to be loaded automatically):

cargo check
   Compiling esp-idf-sys v0.31.6
error: failed to run custom build command for `esp-idf-sys v0.31.6`

Caused by:
  process didn't exit successfully: `/[...]/rust-tests/nrg-hub/target/debug/build/esp-idf-sys-01984a316360a59f/build-script-build` (exit status: 101)
  --- stdout
  cargo:rerun-if-env-changed=IDF_PATH
  cargo:rerun-if-env-changed=ESP_IDF_TOOLS_INSTALL_DIR
  cargo:rerun-if-env-changed=ESP_IDF_VERSION
  cargo:rerun-if-env-changed=ESP_IDF_REPOSITORY
  cargo:rerun-if-env-changed=ESP_IDF_SDKCONFIG_DEFAULTS
  cargo:rerun-if-env-changed=ESP_IDF_SDKCONFIG
  cargo:rerun-if-env-changed=MCU
  IDF_PYTHON_ENV_PATH=/[...]/rust-tests/nrg-hub/.embuild/espressif/python_env/idf4.4_py3.10_env
  PATH=/[...]/rust-tests/nrg-hub/.embuild/espressif/tools/esp32ulp-elf/2.28.51-esp-20191205/esp32ulp-elf-binutils/bin:/[...]/rust-tests/nrg-hub/.embuild/espressif/tools/esp32s2ulp-elf/2.28.51-esp-20191205/esp32s2ulp-elf-binutils/bin:/[...]/rust-tests/nrg-hub/.embuild/espressif/tools/cmake/3.23.1/bin:/[...]/rust-tests/nrg-hub/.embuild/espressif/tools/ninja/1.10.2/:/[...]/rust-tests/nrg-hub/.embuild/espressif/python_env/idf4.4_py3.10_env/bin:/[...]/rust-tests/nrg-hub/.embuild/espressif/esp-idf/release-v4.4/tools:$PATH
  Current system platform: linux-amd64
  Skipping xtensa-esp32-elf@esp-2021r2-patch3-8.4.0 (already installed)
  Skipping cmake@3.23.1 (already installed)
  Skipping ninja@1.10.2 (already installed)
  Skipping esp32ulp-elf@2.28.51-esp-20191205 (already installed)
  IDF_PYTHON_ENV_PATH=/[...]/rust-tests/nrg-hub/.embuild/espressif/python_env/idf4.4_py3.10_env
  PATH=/[...]/rust-tests/nrg-hub/.embuild/espressif/tools/esp32ulp-elf/2.28.51-esp-20191205/esp32ulp-elf-binutils/bin:/[...]/rust-tests/nrg-hub/.embuild/espressif/tools/esp32s2ulp-elf/2.28.51-esp-20191205/esp32s2ulp-elf-binutils/bin:/[...]/rust-tests/nrg-hub/.embuild/espressif/tools/cmake/3.23.1/bin:/[...]/rust-tests/nrg-hub/.embuild/espressif/tools/ninja/1.10.2/:/[...]/rust-tests/nrg-hub/.embuild/espressif/python_env/idf4.4_py3.10_env/bin:/[...]/rust-tests/nrg-hub/.embuild/espressif/esp-idf/release-v4.4/tools:$PATH
  cargo:rerun-if-changed=/[...]/rust-tests/nrg-hub/sdkconfig.defaults
  CMAKE_PREFIX_PATH_xtensa-esp32-espidf = None
  CMAKE_PREFIX_PATH_xtensa_esp32_espidf = None
  TARGET_CMAKE_PREFIX_PATH = None
  CMAKE_PREFIX_PATH = None
  CMAKE_xtensa-esp32-espidf = None
  CMAKE_xtensa_esp32_espidf = None
  TARGET_CMAKE = None
  CMAKE = None
  running: "cmake" "/[...]/rust-tests/nrg-hub/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-fdd86283b5a21988/out" "-G" "Ninja" "-DCMAKE_TOOLCHAIN_FILE=/[...]/rust-tests/nrg-hub/.embuild/espressif/esp-idf/release-v4.4/tools/cmake/toolchain-esp32.cmake" "-DCMAKE_BUILD_TYPE=" "-DCMAKE_INSTALL_PREFIX=/[...]/rust-tests/nrg-hub/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-fdd86283b5a21988/out" "-DCMAKE_C_FLAGS= -mlongcalls -Wno-frame-address -ffunction-sections -fdata-sections" "-DCMAKE_CXX_FLAGS= -mlongcalls -Wno-frame-address -ffunction-sections -fdata-sections" "-DCMAKE_ASM_FLAGS= -mlongcalls -ffunction-sections -fdata-sections"
  -- Checking Python dependencies...
  The following Python requirements are not satisfied:
  click>=7.0
  pyserial>=3.3
  future>=0.15.2
  cryptography>=2.1.4
  pyparsing>=2.0.3,<2.4.0
  pyelftools>=0.22
  idf-component-manager~=1.0
  gdbgui==0.13.2.0
  pygdbmi<=0.9.0.2
  python-socketio<5
  jinja2<3.1  # See https://github.com/espressif/esp-idf/issues/8760
  itsdangerous<2.1
  kconfiglib==13.7.1
  reedsolo>=1.5.3,<=1.5.4
  bitstring>=3.1.6
  ecdsa>=0.16.0
  construct==2.10.54
  Please follow the instructions found in the "Set up the tools" section of ESP-IDF Getting Started Guide
  Diagnostic information:
      IDF_PYTHON_ENV_PATH: (not set)
      Python interpreter used: /[...]/rust-tests/nrg-hub/.embuild/espressif/python_env/idf4.4_py3.10_env/bin/python
      Warning: python interpreter not running from IDF_PYTHON_ENV_PATH
      PATH: /[...]/rust-tests/nrg-hub/.embuild/espressif/tools/cmake/3.23.1/bin:/[...]/rust-tests/nrg-hub/.embuild/espressif/tools/ninja/1.10.2/:/[...]/rust-tests/nrg-hub/.embuild/espressif/tools/esp32s2ulp-elf/2.28.51-esp-20191205/esp32s2ulp-elf-binutils/bin:/[...]/rust-tests/nrg-hub/.embuild/espressif/esp-idf/release-v4.4/tools:/[...]/rust-tests/nrg-hub/.embuild/espressif/tools/esp32ulp-elf/2.28.51-esp-20191205/esp32ulp-elf-binutils/bin:/[...]/rust-tests/nrg-hub/.embuild/espressif/python_env/idf4.4_py3.10_env/bin:/home/vchapuis/.espressif/tools/xtensa-esp32-elf-gcc/8_4_0-esp-2021r2-patch3-x86_64-unknown-linux-gnu/bin/:/home/vchapuis/.espressif/tools/xtensa-esp32s2-elf-gcc/8_4_0-esp-2021r2-patch3-x86_64-unknown-linux-gnu/bin/:/home/vchapuis/.espressif/tools/xtensa-esp32s3-elf-gcc/8_4_0-esp-2021r2-patch3-x86_64-unknown-linux-gnu/bin/:/home/vchapuis/.espressif/tools/:/home/vchapuis/.emacs.d/bin:/home/vchapuis/.local/bin:/home/vchapuis/.cargo/bin:/home/vchapuis/.cargo/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl
  -- Configuring incomplete, errors occurred!
  See also "/[...]/rust-tests/nrg-hub/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-fdd86283b5a21988/out/build/CMakeFiles/CMakeOutput.log".

  --- stderr
  Using managed esp-idf repository: EspIdfRemote { repo_url: None, git_ref: Branch("release/v4.4") }
  fatal: No names found, cannot describe anything.
  Using esp-idf v4.4.1 at '/[...]/rust-tests/nrg-hub/.embuild/espressif/esp-idf/release-v4.4'
  fatal: No names found, cannot describe anything.
  CMake Error at /[...]/rust-tests/nrg-hub/.embuild/espressif/esp-idf/release-v4.4/tools/cmake/build.cmake:287 (message):
    Some Python dependencies must be installed.  Check above message for
    details.
  Call Stack (most recent call first):
    /[...]/rust-tests/nrg-hub/.embuild/espressif/esp-idf/release-v4.4/tools/cmake/build.cmake:416 (__build_check_python)
    CMakeLists.txt:6 (idf_build_process)


  thread 'main' panicked at '
  command did not execute successfully, got: exit status: 1

  build script failed, must exit now', /home/vchapuis/.cargo/registry/src/github.com-1ecc6299db9ec823/cmake-0.1.48/src/lib.rs:975:5
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Thanks for your help.

@ivmarkov
Copy link
Collaborator

It is suppised to download and fetch everything
Are you running in a python virtual environment? If yes, exit that.

@vpochapuis
Copy link
Author

It is supposed to download and fetch everything Are you running in a python virtual environment? If yes, exit that.

I tried again from scratch and it worked when building manually.
What I think happened, is like you said, I must have cargo build for the first time after doing an get_idf command and must have messed with the configs.
I think I was mixed up with the cargo first and idf first approaches.

So it works well when I do the command myself.
However when opening the project in VsCode, the Rust-Analyzer build fails with:

[ERROR rust_analyzer::lsp_utils] rust-analyzer failed to run build scripts

error: failed to run custom build command for `esp-idf-sys v0.31.6`

Caused by:
  process didn't exit successfully: `/tmp/test-project/target/debug/build/esp-idf-sys-01984a316360a59f/build-script-build` (exit status: 101)
  --- stdout
  cargo:rerun-if-env-changed=IDF_PATH
  cargo:rerun-if-env-changed=ESP_IDF_TOOLS_INSTALL_DIR
  cargo:rerun-if-env-changed=ESP_IDF_VERSION
  cargo:rerun-if-env-changed=ESP_IDF_REPOSITORY
  cargo:rerun-if-env-changed=ESP_IDF_SDKCONFIG_DEFAULTS
  cargo:rerun-if-env-changed=ESP_IDF_SDKCONFIG
  cargo:rerun-if-env-changed=MCU
  IDF_PYTHON_ENV_PATH=/tmp/test-project/.embuild/espressif/python_env/idf4.4_py3.10_env
  PATH=/tmp/test-project/.embuild/espressif/tools/xtensa-esp32-elf/esp-2021r2-patch3-8.4.0/xtensa-esp32-elf/bin:/tmp/test-project/.embuild/espressif/tools/esp32ulp-elf/2.28.51-esp-20191205/esp32ulp-elf-binutils/bin:/tmp/test-project/.embuild/espressif/tools/cmake/3.23.1/bin:/tmp/test-project/.embuild/espressif/tools/ninja/1.10.2/:/tmp/test-project/.embuild/espressif/python_env/idf4.4_py3.10_env/bin:/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/tools:$PATH
  Current system platform: linux-amd64
  Skipping xtensa-esp32-elf@esp-2021r2-patch3-8.4.0 (already installed)
  Skipping cmake@3.23.1 (already installed)
  Skipping ninja@1.10.2 (already installed)
  Skipping esp32ulp-elf@2.28.51-esp-20191205 (already installed)
  IDF_PYTHON_ENV_PATH=/tmp/test-project/.embuild/espressif/python_env/idf4.4_py3.10_env
  PATH=/tmp/test-project/.embuild/espressif/tools/xtensa-esp32-elf/esp-2021r2-patch3-8.4.0/xtensa-esp32-elf/bin:/tmp/test-project/.embuild/espressif/tools/esp32ulp-elf/2.28.51-esp-20191205/esp32ulp-elf-binutils/bin:/tmp/test-project/.embuild/espressif/tools/cmake/3.23.1/bin:/tmp/test-project/.embuild/espressif/tools/ninja/1.10.2/:/tmp/test-project/.embuild/espressif/python_env/idf4.4_py3.10_env/bin:/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/tools:$PATH
  cargo:rerun-if-changed=/tmp/test-project/sdkconfig.defaults
  CMAKE_PREFIX_PATH_xtensa-esp32-espidf = None
  CMAKE_PREFIX_PATH_xtensa_esp32_espidf = None
  TARGET_CMAKE_PREFIX_PATH = None
  CMAKE_PREFIX_PATH = None
  CMAKE_xtensa-esp32-espidf = None
  CMAKE_xtensa_esp32_espidf = None
  TARGET_CMAKE = None
  CMAKE = None
  running: "cmake" "/tmp/test-project/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-fdd86283b5a21988/out" "-G" "Ninja" "-DCMAKE_TOOLCHAIN_FILE=/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/tools/cmake/toolchain-esp32.cmake" "-DCMAKE_BUILD_TYPE=" "-DCMAKE_INSTALL_PREFIX=/tmp/test-project/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-fdd86283b5a21988/out" "-DCMAKE_C_FLAGS= -mlongcalls -Wno-frame-address -ffunction-sections -fdata-sections" "-DCMAKE_CXX_FLAGS= -mlongcalls -Wno-frame-address -ffunction-sections -fdata-sections" "-DCMAKE_ASM_FLAGS= -mlongcalls -ffunction-sections -fdata-sections"
  -- Checking Python dependencies...
  Python requirements from /tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/requirements.txt are satisfied.
  -- Project sdkconfig file /tmp/test-project/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-fdd86283b5a21988/out/sdkconfig
  Loading defaults file /tmp/test-project/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-fdd86283b5a21988/out/gen-sdkconfig.defaults...
  Loading defaults file /tmp/test-project/sdkconfig.defaults...
  -- App "libespidf" version: 1
  -- Adding linker script /tmp/test-project/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-fdd86283b5a21988/out/build/esp-idf/esp_system/ld/memory.ld
  -- Adding linker script /tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_system/ld/esp32/sections.ld.in
  -- Adding linker script /tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_rom/esp32/ld/esp32.rom.ld
  -- Adding linker script /tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_rom/esp32/ld/esp32.rom.api.ld
  -- Adding linker script /tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_rom/esp32/ld/esp32.rom.libgcc.ld
  -- Adding linker script /tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_rom/esp32/ld/esp32.rom.newlib-data.ld
  -- Adding linker script /tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_rom/esp32/ld/esp32.rom.syscalls.ld
  -- Adding linker script /tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_rom/esp32/ld/esp32.rom.newlib-funcs.ld
  -- Adding linker script /tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_rom/esp32/ld/esp32.rom.newlib-time.ld
  -- Adding linker script /tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/soc/esp32/ld/esp32.peripherals.ld
  -- Configuring done
  -- Generating done
  -- Build files have been written to: /tmp/test-project/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-fdd86283b5a21988/out/build
  running: "cmake" "--build" "." "--config" "MinSizeRel" "--parallel" "16"
  [1/7] Generating ld/sections.ld
  [2/7] Performing build step for 'bootloader'
  [0/1] Re-running CMake...
  -- Building ESP-IDF components for target esp32
  -- Project sdkconfig file /tmp/test-project/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-fdd86283b5a21988/out/sdkconfig
  Loading defaults file /tmp/test-project/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-fdd86283b5a21988/out/gen-sdkconfig.defaults...
  Loading defaults file /tmp/test-project/sdkconfig.defaults...
  -- Adding linker script /tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/soc/esp32/ld/esp32.peripherals.ld
  -- Adding linker script /tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_rom/esp32/ld/esp32.rom.ld
  -- Adding linker script /tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_rom/esp32/ld/esp32.rom.api.ld
  -- Adding linker script /tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_rom/esp32/ld/esp32.rom.libgcc.ld
  -- Adding linker script /tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_rom/esp32/ld/esp32.rom.newlib-funcs.ld
  -- Adding linker script /tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/bootloader/subproject/main/ld/esp32/bootloader.ld
  -- Adding linker script /tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/bootloader/subproject/main/ld/esp32/bootloader.rom.ld
  -- Components: bootloader bootloader_support efuse esp32 esp_common esp_hw_support esp_rom esp_system esptool_py freertos hal log main micro-ecc newlib partition_table soc spi_flash xtensa
  -- Component paths: /tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/bootloader /tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/bootloader_support /tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/efuse /tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp32 /tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_common /tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_hw_support /tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_rom /tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_system /tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esptool_py /tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/freertos /tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/hal /tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/log /tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/bootloader/subproject/main /tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/bootloader/subproject/components/micro-ecc /tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/newlib /tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/partition_table /tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/soc /tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/spi_flash /tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/xtensa
  -- Configuring done
  -- Generating done
  -- Build files have been written to: /tmp/test-project/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-fdd86283b5a21988/out/build/bootloader
  [1/1] cd /tmp/test-project/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-fdd86283b5a21988/out/build/bootloader/esp-idf/esptool_py && python /tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/partition_table/check_sizes.py --offset 0x8000 bootloader 0x1000 /tmp/test-project/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-fdd86283b5a21988/out/build/bootloader/bootloader.bin
  Bootloader binary size 0x6330 bytes. 0xcd0 bytes (11%) free.
  [3/5] Linking C executable libespidf.elf
  [4/5] Generating binary image from built executable
  esptool.py v3.3.2-dev
  Creating esp32 image...
  Merged 2 ELF sections
  Successfully created esp32 image.
  Generated /tmp/test-project/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-fdd86283b5a21988/out/build/libespidf.bin
  [5/5] cd /tmp/test-project/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-fdd86283b5a21988/out/build/esp-idf/esptool_py && python /tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/partition_table/check_sizes.py --offset 0x8000 partition --type app /tmp/test-project/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-fdd86283b5a21988/out/build/partition_table/partition-table.bin /tmp/test-project/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-fdd86283b5a21988/out/build/libespidf.bin
  libespidf.bin binary size 0x26a80 bytes. Smallest app partition is 0x100000 bytes. 0xd9580 bytes (85%) free.
  cargo:root=/tmp/test-project/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-fdd86283b5a21988/out
  cargo:rerun-if-changed=/home/vchapuis/.cargo/registry/src/github.com-1ecc6299db9ec823/esp-idf-sys-0.31.6/src/include/esp-idf/bindings.h

  --- stderr
  Using managed esp-idf repository: EspIdfRemote { repo_url: None, git_ref: Branch("release/v4.4") }
  fatal: No names found, cannot describe anything.
  Using esp-idf v4.4.1 at '/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4'
  fatal: No names found, cannot describe anything.
  Output: "/tmp/test-project/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-fdd86283b5a21988/out/bindings.rs"
  Bindgen builder flags: ["/home/vchapuis/.cargo/registry/src/github.com-1ecc6299db9ec823/esp-idf-sys-0.31.6/src/include/esp-idf/bindings.h", "--rust-target", "1.47", "--blocklist-function", "strtold", "--blocklist-function", "_strtold_r", "--blocklist-function", "v.*printf", "--blocklist-function", "v.*scanf", "--blocklist-function", "_v.*printf_r", "--blocklist-function", "_v.*scanf_r", "--blocklist-function", "esp_log_writev", "--no-layout-tests", "--with-derive-default", "--ctypes-prefix", "c_types", "--generate", "functions,types,vars,methods,constructors,destructors", "--use-core", "--no-rustfmt-bindings", "--", "-D__bindgen", "-DHAVE_CONFIG_H", "-DMBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\"", "-DUNITY_INCLUDE_CONFIG_H", "-DWITH_POSIX", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_ringbuf/include", "-I/tmp/test-project/target/xtensa-esp32-espidf/debug/build/esp-idf-sys-fdd86283b5a21988/out/build/config", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/newlib/platform_include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/freertos/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/freertos/include/esp_additions/freertos", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/freertos/port/xtensa/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/freertos/include/esp_additions", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_hw_support/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_hw_support/include/soc", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_hw_support/include/soc/esp32", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_hw_support/port/esp32/.", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_hw_support/port/esp32/private_include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/heap/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/log/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/lwip/include/apps", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/lwip/include/apps/sntp", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/lwip/lwip/src/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/lwip/port/esp32/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/lwip/port/esp32/include/arch", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/soc/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/soc/esp32/.", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/soc/esp32/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/hal/esp32/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/hal/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/hal/platform_port/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_rom/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_rom/include/esp32", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_rom/esp32", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_common/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_system/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_system/port/soc", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_system/port/public_compat", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp32/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/xtensa/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/xtensa/esp32/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/driver/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/driver/esp32/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_pm/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/efuse/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/efuse/esp32/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/vfs/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_wifi/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_event/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_netif/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_eth/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/tcpip_adapter/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_phy/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_phy/esp32/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_ipc/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/app_trace/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_timer/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/mbedtls/port/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/mbedtls/mbedtls/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/mbedtls/esp_crt_bundle/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/app_update/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/spi_flash/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/bootloader_support/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/nvs_flash/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/pthread/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_gdbstub/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_gdbstub/xtensa", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_gdbstub/esp32", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/espcoredump/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/espcoredump/include/port/xtensa", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/wpa_supplicant/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/wpa_supplicant/port/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/wpa_supplicant/esp_supplicant/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/ieee802154/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/console", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/asio/asio/asio/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/asio/port/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/cbor/port/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/unity/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/unity/unity/src", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/cmock/CMock/src", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/coap/port/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/coap/libcoap/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/nghttp/port/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/nghttp/nghttp2/lib/includes", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp-tls", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp-tls/esp-tls-crypto", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_adc_cal/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_hid/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/tcp_transport/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_http_client/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_http_server/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_https_ota/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_lcd/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_lcd/interface", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/protobuf-c/protobuf-c", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/protocomm/include/common", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/protocomm/include/security", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/protocomm/include/transports", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/mdns/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_local_ctrl/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/sdmmc/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_serial_slave_link/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/esp_websocket_client/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/expat/expat/expat/lib", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/expat/port/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/wear_levelling/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/fatfs/diskio", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/fatfs/vfs", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/fatfs/src", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/freemodbus/common/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/idf_test/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/idf_test/include/esp32", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/jsmn/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/json/cJSON", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/libsodium/libsodium/src/libsodium/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/libsodium/port_include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/mqtt/esp-mqtt/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/openssl/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/perfmon/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/spiffs/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/ulp/include", "-I/tmp/test-project/.embuild/espressif/esp-idf/release-v4.4/components/wifi_provisioning/include", "--sysroot=/home/vchapuis/.espressif/tools/xtensa-esp32-elf-gcc/8_4_0-esp-2021r2-patch3-x86_64-unknown-linux-gnu/bin/../xtensa-esp32-elf", "-I/home/vchapuis/.espressif/tools/xtensa-esp32-elf-gcc/8_4_0-esp-2021r2-patch3-x86_64-unknown-linux-gnu/bin/../xtensa-esp32-elf/include", "-x", "c", "-DESP_IDF_COMP_XTENSA_ENABLED", "-DESP_IDF_COMP_WPA_SUPPLICANT_ENABLED", "-DESP_IDF_COMP_WIFI_PROVISIONING_ENABLED", "-DESP_IDF_COMP_WEAR_LEVELLING_ENABLED", "-DESP_IDF_COMP_VFS_ENABLED", "-DESP_IDF_COMP_USB_ENABLED", "-DESP_IDF_COMP_UNITY_ENABLED", "-DESP_IDF_COMP_ULP_ENABLED", "-DESP_IDF_COMP_TOUCH_ELEMENT_ENABLED", "-DESP_IDF_COMP_TINYUSB_ENABLED", "-DESP_IDF_COMP_TCPIP_ADAPTER_ENABLED", "-DESP_IDF_COMP_TCP_TRANSPORT_ENABLED", "-DESP_IDF_COMP_SPIFFS_ENABLED", "-DESP_IDF_COMP_SPI_FLASH_ENABLED", "-DESP_IDF_COMP_SOC_ENABLED", "-DESP_IDF_COMP_SDMMC_ENABLED", "-DESP_IDF_COMP_RISCV_ENABLED", "-DESP_IDF_COMP_PTHREAD_ENABLED", "-DESP_IDF_COMP_PROTOCOMM_ENABLED", "-DESP_IDF_COMP_PROTOBUF_C_ENABLED", "-DESP_IDF_COMP_PERFMON_ENABLED", "-DESP_IDF_COMP_PARTITION_TABLE_ENABLED", "-DESP_IDF_COMP_OPENTHREAD_ENABLED", "-DESP_IDF_COMP_OPENSSL_ENABLED", "-DESP_IDF_COMP_NVS_FLASH_ENABLED", "-DESP_IDF_COMP_NGHTTP_ENABLED", "-DESP_IDF_COMP_NEWLIB_ENABLED", "-DESP_IDF_COMP_MQTT_ENABLED", "-DESP_IDF_COMP_MDNS_ENABLED", "-DESP_IDF_COMP_MBEDTLS_ENABLED", "-DESP_IDF_COMP_LWIP_ENABLED", "-DESP_IDF_COMP_LOG_ENABLED", "-DESP_IDF_COMP_LINUX_ENABLED", "-DESP_IDF_COMP_LIBSODIUM_ENABLED", "-DESP_IDF_COMP_JSON_ENABLED", "-DESP_IDF_COMP_JSMN_ENABLED", "-DESP_IDF_COMP_IEEE802154_ENABLED", "-DESP_IDF_COMP_IDF_TEST_ENABLED", "-DESP_IDF_COMP_HEAP_ENABLED", "-DESP_IDF_COMP_HAL_ENABLED", "-DESP_IDF_COMP_FREERTOS_ENABLED", "-DESP_IDF_COMP_FREEMODBUS_ENABLED", "-DESP_IDF_COMP_FATFS_ENABLED", "-DESP_IDF_COMP_EXPAT_ENABLED", "-DESP_IDF_COMP_ESPTOOL_PY_ENABLED", "-DESP_IDF_COMP_ESPCOREDUMP_ENABLED", "-DESP_IDF_COMP_ESP_WIFI_ENABLED", "-DESP_IDF_COMP_ESP_WEBSOCKET_CLIENT_ENABLED", "-DESP_IDF_COMP_ESP_TIMER_ENABLED", "-DESP_IDF_COMP_ESP_SYSTEM_ENABLED", "-DESP_IDF_COMP_ESP_SERIAL_SLAVE_LINK_ENABLED", "-DESP_IDF_COMP_ESP_ROM_ENABLED", "-DESP_IDF_COMP_ESP_RINGBUF_ENABLED", "-DESP_IDF_COMP_ESP_PM_ENABLED", "-DESP_IDF_COMP_ESP_PHY_ENABLED", "-DESP_IDF_COMP_ESP_NETIF_ENABLED", "-DESP_IDF_COMP_ESP_LOCAL_CTRL_ENABLED", "-DESP_IDF_COMP_ESP_LCD_ENABLED", "-DESP_IDF_COMP_ESP_IPC_ENABLED", "-DESP_IDF_COMP_ESP_HW_SUPPORT_ENABLED", "-DESP_IDF_COMP_ESP_HTTPS_SERVER_ENABLED", "-DESP_IDF_COMP_ESP_HTTPS_OTA_ENABLED", "-DESP_IDF_COMP_ESP_HTTP_SERVER_ENABLED", "-DESP_IDF_COMP_ESP_HTTP_CLIENT_ENABLED", "-DESP_IDF_COMP_ESP_HID_ENABLED", "-DESP_IDF_COMP_ESP_GDBSTUB_ENABLED", "-DESP_IDF_COMP_ESP_EVENT_ENABLED", "-DESP_IDF_COMP_ESP_ETH_ENABLED", "-DESP_IDF_COMP_ESP_COMMON_ENABLED", "-DESP_IDF_COMP_ESP_ADC_CAL_ENABLED", "-DESP_IDF_COMP_ESP32S3_ENABLED", "-DESP_IDF_COMP_ESP32S2_ENABLED", "-DESP_IDF_COMP_ESP32H2_ENABLED", "-DESP_IDF_COMP_ESP32C3_ENABLED", "-DESP_IDF_COMP_ESP32_ENABLED", "-DESP_IDF_COMP_ESP_TLS_ENABLED", "-DESP_IDF_COMP_EFUSE_ENABLED", "-DESP_IDF_COMP_DRIVER_ENABLED", "-DESP_IDF_COMP_CXX_ENABLED", "-DESP_IDF_COMP_CONSOLE_ENABLED", "-DESP_IDF_COMP_COAP_ENABLED", "-DESP_IDF_COMP_CMOCK_ENABLED", "-DESP_IDF_COMP_CBOR_ENABLED", "-DESP_IDF_COMP_BT_ENABLED", "-DESP_IDF_COMP_BOOTLOADER_SUPPORT_ENABLED", "-DESP_IDF_COMP_BOOTLOADER_ENABLED", "-DESP_IDF_COMP_ASIO_ENABLED", "-DESP_IDF_COMP_APP_UPDATE_ENABLED", "-DESP_IDF_COMP_APP_TRACE_ENABLED", "-target", "xtensa"]
  error: unknown target triple 'xtensa', please use -triple or -arch
  thread 'main' panicked at 'libclang error; possible causes include:
  - Invalid flag syntax
  - Unrecognized flags
  - Invalid flag arguments
  - File I/O errors
  - Host vs. target architecture mismatch
  If you encounter an error missing from this list, please file an issue or a PR!', /home/vchapuis/.cargo/registry/src/github.com-1ecc6299db9ec823/bindgen-0.59.2/src/ir/context.rs:538:15
  stack backtrace:
     0: rust_begin_unwind
     1: core::panicking::panic_fmt
     2: core::panicking::panic_display
     3: core::panicking::panic_str
     4: core::option::expect_failed
     5: core::option::Option<T>::expect
               at /home/rust/rust/library/core/src/option.rs:718:21
     6: bindgen::ir::context::BindgenContext::new
               at /home/vchapuis/.cargo/registry/src/github.com-1ecc6299db9ec823/bindgen-0.59.2/src/ir/context.rs:532:13
     7: bindgen::Bindings::generate
               at /home/vchapuis/.cargo/registry/src/github.com-1ecc6299db9ec823/bindgen-0.59.2/src/lib.rs:2357:27
     8: bindgen::Builder::generate
               at /home/vchapuis/.cargo/registry/src/github.com-1ecc6299db9ec823/bindgen-0.59.2/src/lib.rs:1478:9
     9: embuild::bindgen::run_for_file
               at /home/vchapuis/.cargo/registry/src/github.com-1ecc6299db9ec823/embuild-0.29.3/src/bindgen.rs:162:20
    10: embuild::bindgen::run
               at /home/vchapuis/.cargo/registry/src/github.com-1ecc6299db9ec823/embuild-0.29.3/src/bindgen.rs:149:5
    11: build_script_build::main
               at ./build/build.rs:91:25
    12: core::ops::function::FnOnce::call_once
               at /home/rust/rust/library/core/src/ops/function.rs:248:5
  note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

Any idea why would this happen?

Thank you.

@ivmarkov
Copy link
Collaborator

Yes. When you install the rust compiler using rust-build it tells you at the end of the installation to put something in your ~/.bashrc. Please do that. That something is the Xtensa Clang compiler. Without it, you cannot really generate the Rust bindings for ESP-IDF.

@ivmarkov
Copy link
Collaborator

If it is not clear what is happening: your shell does have Xtensa clang in your $path, while VScode does not have access to it, because you did not put it in .bashrc and did not restart VScode.

@vpochapuis
Copy link
Author

Thanks for everything @ivmarkov !

I restarted everything and checked my .bashrc the export PATH was there. VsCode was still unhappy so I added the CLANG Path to the .vscode/settings.json "rust-analyzer.server.extraEnv" and it just works now!
Thank you for showing me it was a CLANG path issue, it was very helpful!

I am grateful to have all this help.
Wish you all the best.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants