Skip to content

Cannot compile with 2.0.0RC1 in PlatformIO #5436

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

Closed
garageeks opened this issue Jul 21, 2021 · 14 comments
Closed

Cannot compile with 2.0.0RC1 in PlatformIO #5436

garageeks opened this issue Jul 21, 2021 · 14 comments

Comments

@garageeks
Copy link

Make your question, not a Statement, inclusive. Include all pertinent information:

What you are trying to do?
Compiling an Arduino sketch in PlatformIO using the latest 2.0.0 RC1 release
Describe your system( Hardware, computer, O/S, core version, environment).
Windows 10 x64 version 20H2, Visual Studio Code 1.58.2, PlatformIO Core 5.1.1

I wanted to get latest version that has a patch for issue #3659, therefore I modified my platformio.ini project file with these environment variables:

[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
platform_packages = 
	toolchain-xtensa32 @ ~2.80400.0
	framework-arduinoespressif32@https://github.com/espressif/arduino-esp32.git#2.0.0-rc1

Then compiling fails. I cleaned up, as well as closed and restarted Visual Studio Code. It looks like wrong compiler.
I tried to remove the toolchain-xtensa32 line in platformio.ini, and different errors appear.
I have platform Espressif32 2.1.0 installed, shouldn't it pick up the latest SDK and compiler?

Thank you in advance for your support
Nick

This is the compiler output:

Processing esp32dev (platform: espressif32; board: esp32dev; framework: arduino)
---------------------------------------------------------------------------------------------------------------------------------------Verbose mode can be enabled via -v, --verbose option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/esp32dev.html
PLATFORM: Espressif 32 (2.1.0) > Espressif ESP32 Dev Module
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
DEBUG: Current (esp-prog) External (esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
PACKAGES:

  • framework-arduinoespressif32 0.0.0+sha.4ada3f5
  • tool-esptoolpy 1.30000.201119 (3.0.0)
  • toolchain-xtensa32 2.80400.210211 (8.4.0)
    Converting PSC-Gen2-FirmwareESP32.ino
    LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
    LDF Modes: Finder ~ chain, Compatibility ~ soft
    Found 44 compatible libraries
    Scanning dependencies...
    Dependency Graph
    |-- 1.1.4
    |-- 2.1.2
    | |-- 1.1.4
    | |-- 2.0.0
    | |-- 2.0.0
    |-- 1.3.0
    | |-- 1.7.1
    | | |-- 2.0.0
    | | |-- 2.0.0
    | |-- 2.0.0
    | |-- 2.0.0
    | |-- 1.1.4
    |-- 1.1.0
    |-- 1.6.0
    |-- 2.1.0
    | |-- 1.7.1
    | | |-- 2.0.0
    | | |-- 2.0.0
    | |-- 2.0.0
    | |-- 2.0.0
    |-- 6.17.2
    |-- 1.1.1
    | |-- 2.0.0
    |-- 1.1.1
    |-- 0.3.3
    |-- 2.2.5
    | |-- 1.1.1
    | |-- 1.2.3
    | | |-- 1.1.1
    | | |-- 2.0.0
    | | |-- 2.0.0
    | | |-- 6.17.2
    | |-- 2.0.0
    | |-- 2.0.0
    | |-- 2.0.0
    |-- 1.2.3
    | |-- 1.1.1
    | |-- 2.0.0
    | |-- 2.0.0
    | |-- 6.17.2
    |-- 2.0.0
    | |-- 2.0.0
    | |-- 2.0.0
    | | |-- 2.0.0
    |-- 2.0.0
    Building in release mode
    Compiling .pio\build\esp32dev\src\PSC-Gen2-FirmwareESP32.ino.cpp.o
    Compiling .pio\build\esp32dev\src\src\EspSoftwareSerial\src\SoftwareSerial.cpp.o
    Compiling .pio\build\esp32dev\src\src\ModbusMaster\src\ModbusMaster.cpp.o
    Generating partitions .pio\build\esp32dev\partitions.bin
    Compiling .pio\build\esp32dev\libd10\Adafruit Unified Sensor\Adafruit_Sensor.cpp.o
    Compiling .pio\build\esp32dev\lib0a4\SPI\SPI.cpp.o
    Compiling .pio\build\esp32dev\libc5a\Wire\Wire.cpp.o
    Compiling .pio\build\esp32dev\lib00b\Adafruit BME280 Library\Adafruit_BME280.cpp.o
    Compiling .pio\build\esp32dev\lib1ed\Adafruit BusIO\Adafruit_BusIO_Register.cpp.o
    Compiling .pio\build\esp32dev\lib1ed\Adafruit BusIO\Adafruit_I2CDevice.cpp.o
    Compiling .pio\build\esp32dev\lib1ed\Adafruit BusIO\Adafruit_SPIDevice.cpp.o
    Compiling .pio\build\esp32dev\lib91f\Adafruit ADXL343\Adafruit_ADXL343.cpp.o
    Archiving .pio\build\esp32dev\libc5a\libWire.a
    Archiving .pio\build\esp32dev\libd10\libAdafruit Unified Sensor.a
    Archiving .pio\build\esp32dev\lib0a4\libSPI.a
    Compiling .pio\build\esp32dev\lib5a7\PMS Library\PMS.cpp.o
    Compiling .pio\build\esp32dev\libc14\Time\DateStrings.cpp.o
    Archiving .pio\build\esp32dev\lib1ed\libAdafruit BusIO.a
    Archiving .pio\build\esp32dev\lib00b\libAdafruit BME280 Library.a
    Compiling .pio\build\esp32dev\libc14\Time\Time.cpp.o
    Compiling .pio\build\esp32dev\libce0\Adafruit MCP23008 library\Adafruit_MCP23008.cpp.o
    Archiving .pio\build\esp32dev\lib1b5\libArduinoJson.a
    Compiling .pio\build\esp32dev\libb32\Adafruit SI1145 Library\Adafruit_SI1145.cpp.o
    Compiling .pio\build\esp32dev\libdca\AsyncTCP-esphome\AsyncTCP.cpp.o
    Compiling .pio\build\esp32dev\lib32a\RunningMedian\RunningMedian.cpp.o
    Archiving .pio\build\esp32dev\libce0\libAdafruit MCP23008 library.a
    Archiving .pio\build\esp32dev\libc14\libTime.a
    Archiving .pio\build\esp32dev\lib5a7\libPMS Library.a
    Archiving .pio\build\esp32dev\lib91f\libAdafruit ADXL343.a
    Compiling .pio\build\esp32dev\libc04\FS\FS.cpp.o
    Compiling .pio\build\esp32dev\libc04\FS\vfs_api.cpp.o
    Compiling .pio\build\esp32dev\lib80d\WiFi\ETH.cpp.o
    Compiling .pio\build\esp32dev\lib80d\WiFi\WiFi.cpp.o
    Archiving .pio\build\esp32dev\libb32\libAdafruit SI1145 Library.a
    Compiling .pio\build\esp32dev\lib80d\WiFi\WiFiAP.cpp.o
    Compiling .pio\build\esp32dev\lib80d\WiFi\WiFiClient.cpp.o
    Compiling .pio\build\esp32dev\lib80d\WiFi\WiFiGeneric.cpp.o
    Compiling .pio\build\esp32dev\lib80d\WiFi\WiFiMulti.cpp.o
    Archiving .pio\build\esp32dev\lib32a\libRunningMedian.a
    Compiling .pio\build\esp32dev\lib80d\WiFi\WiFiSTA.cpp.o
    Compiling .pio\build\esp32dev\lib80d\WiFi\WiFiScan.cpp.o
    Archiving .pio\build\esp32dev\libdca\libAsyncTCP-esphome.a
    Compiling .pio\build\esp32dev\lib80d\WiFi\WiFiServer.cpp.o
    Compiling .pio\build\esp32dev\lib80d\WiFi\WiFiUdp.cpp.o
    Compiling .pio\build\esp32dev\libaa7\ESPAsyncWebServerFixed\AsyncEventSource.cpp.o
    Archiving .pio\build\esp32dev\libc04\libFS.a
    Compiling .pio\build\esp32dev\libaa7\ESPAsyncWebServerFixed\AsyncWebSocket.cpp.o
    Compiling .pio\build\esp32dev\libaa7\ESPAsyncWebServerFixed\SPIFFSEditor.cpp.o
    Compiling .pio\build\esp32dev\libaa7\ESPAsyncWebServerFixed\WebAuthentication.cpp.o
    Compiling .pio\build\esp32dev\libaa7\ESPAsyncWebServerFixed\WebHandlers.cpp.o
    Compiling .pio\build\esp32dev\libaa7\ESPAsyncWebServerFixed\WebRequest.cpp.o
    Compiling .pio\build\esp32dev\libaa7\ESPAsyncWebServerFixed\WebResponses.cpp.o
    Compiling .pio\build\esp32dev\libaa7\ESPAsyncWebServerFixed\WebServer.cpp.o
    Compiling .pio\build\esp32dev\lib2db\Update\HttpsOTAUpdate.cpp.o
    Archiving .pio\build\esp32dev\lib80d\libWiFi.a
    Compiling .pio\build\esp32dev\lib2db\Update\Updater.cpp.o
    Archiving .pio\build\esp32dev\lib7fb\libAsyncElegantOTA.a
    Compiling .pio\build\esp32dev\lib76a\WiFiClientSecure\WiFiClientSecure.cpp.o
    Compiling .pio\build\esp32dev\lib76a\WiFiClientSecure\ssl_client.cpp.o
    Compiling .pio\build\esp32dev\libff2\HTTPClient\HTTPClient.cpp.o
    Archiving .pio\build\esp32dev\libFrameworkArduinoVariant.a
    Compiling .pio\build\esp32dev\FrameworkArduino\Esp.cpp.o
    Compiling .pio\build\esp32dev\FrameworkArduino\FunctionalInterrupt.cpp.o
    Compiling .pio\build\esp32dev\FrameworkArduino\HardwareSerial.cpp.o
    Archiving .pio\build\esp32dev\lib2db\libUpdate.a
    Compiling .pio\build\esp32dev\FrameworkArduino\IPAddress.cpp.o
    Compiling .pio\build\esp32dev\FrameworkArduino\IPv6Address.cpp.o
    Compiling .pio\build\esp32dev\FrameworkArduino\MD5Builder.cpp.o
    Compiling .pio\build\esp32dev\FrameworkArduino\Print.cpp.o
    Compiling .pio\build\esp32dev\FrameworkArduino\Stream.cpp.o
    Compiling .pio\build\esp32dev\FrameworkArduino\StreamString.cpp.o
    Compiling .pio\build\esp32dev\FrameworkArduino\USB.cpp.o
    Archiving .pio\build\esp32dev\lib76a\libWiFiClientSecure.a
    Compiling .pio\build\esp32dev\FrameworkArduino\USBCDC.cpp.o
    Archiving .pio\build\esp32dev\libaa7\libESPAsyncWebServerFixed.a
    Compiling .pio\build\esp32dev\FrameworkArduino\WMath.cpp.o
    Compiling .pio\build\esp32dev\FrameworkArduino\WString.cpp.o
    Compiling .pio\build\esp32dev\FrameworkArduino\base64.cpp.o
    Compiling .pio\build\esp32dev\FrameworkArduino\cbuf.cpp.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-adc.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-bt.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-cpu.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-dac.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-gpio.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-i2c.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-ledc.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-matrix.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-misc.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-psram.c.o
    Archiving .pio\build\esp32dev\libff2\libHTTPClient.a
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-rmt.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-sigmadelta.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-spi.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-time.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-timer.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-tinyusb.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-touch.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-uart.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\libb64\cdecode.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\libb64\cencode.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\main.cpp.o
    Compiling .pio\build\esp32dev\FrameworkArduino\stdlib_noniso.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\wiring_pulse.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\wiring_shift.c.o
    Archiving .pio\build\esp32dev\libFrameworkArduino.a
    Linking .pio\build\esp32dev\firmware.elf
    c:/users/proprietario/.platformio/packages/toolchain-xtensa32/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: final link failed: bad value
    collect2.exe: error: ld returned 1 exit status
    *** [.pio\build\esp32dev\firmware.elf] Error 1
    ===================================================== [FAILED] Took 36.53 seconds =====================================================The terminal process "C:\Users\proprietario.platformio\penv\Scripts\platformio.exe 'run', '--environment', 'esp32dev'" terminated with exit code: 1.

Terminal will be reused by tasks, press any key to close it.

@garageeks
Copy link
Author

I tried to upgrade espressif32 to latest version 3.3 but still no joy. It looks like this one uses ESP-IDF 4.3... xtensa32-toolchain 8.4.0 appears to be latest version. Maybe it cannot compile until ESP-IDF 4.4 is installed? But I have no idea how to install it on PlatformIO

Here latest output

Processing esp32dev (platform: espressif32; board: esp32dev; framework: arduino)
---------------------------------------------------------------------------------------------------------------------------------------Verbose mode can be enabled via -v, --verbose option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/esp32dev.html
PLATFORM: Espressif 32 (3.3.0) > Espressif ESP32 Dev Module
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
DEBUG: Current (esp-prog) External (esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
PACKAGES:

  • framework-arduinoespressif32 0.0.0+sha.4ada3f5
  • tool-esptoolpy 1.30100.210531 (3.1.0)
  • toolchain-xtensa32 2.80400.210211 (8.4.0)
    Converting PSC-Gen2-FirmwareESP32.ino
    LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
    LDF Modes: Finder ~ chain, Compatibility ~ soft
    Found 44 compatible libraries
    Scanning dependencies...
    Dependency Graph
    |-- 1.1.4
    |-- 2.1.2
    | |-- 1.1.4
    | |-- 2.0.0
    | |-- 2.0.0
    |-- 1.3.0
    | |-- 1.7.1
    | | |-- 2.0.0
    | | |-- 2.0.0
    | |-- 2.0.0
    | |-- 2.0.0
    | |-- 1.1.4
    |-- 1.1.0
    |-- 1.6.0
    |-- 2.1.0
    | |-- 1.7.1
    | | |-- 2.0.0
    | | |-- 2.0.0
    | |-- 2.0.0
    | |-- 2.0.0
    |-- 6.17.2
    |-- 1.1.1
    | |-- 2.0.0
    |-- 1.1.1
    |-- 0.3.3
    |-- 2.2.5
    | |-- 1.1.1
    | |-- 1.2.3
    | | |-- 1.1.1
    | | |-- 2.0.0
    | | |-- 2.0.0
    | | |-- 6.17.2
    | |-- 2.0.0
    | |-- 2.0.0
    | |-- 2.0.0
    |-- 1.2.3
    | |-- 1.1.1
    | |-- 2.0.0
    | |-- 2.0.0
    | |-- 6.17.2
    |-- 2.0.0
    | |-- 2.0.0
    | |-- 2.0.0
    | | |-- 2.0.0
    |-- 2.0.0
    Building in release mode
    Compiling .pio\build\esp32dev\src\PSC-Gen2-FirmwareESP32.ino.cpp.o
    Compiling .pio\build\esp32dev\src\src\EspSoftwareSerial\src\SoftwareSerial.cpp.o
    Compiling .pio\build\esp32dev\src\src\ModbusMaster\src\ModbusMaster.cpp.o
    Generating partitions .pio\build\esp32dev\partitions.bin
    Compiling .pio\build\esp32dev\libd10\Adafruit Unified Sensor\Adafruit_Sensor.cpp.o
    Compiling .pio\build\esp32dev\lib0a4\SPI\SPI.cpp.o
    Compiling .pio\build\esp32dev\libc5a\Wire\Wire.cpp.o
    Compiling .pio\build\esp32dev\lib00b\Adafruit BME280 Library\Adafruit_BME280.cpp.o
    Compiling .pio\build\esp32dev\lib1ed\Adafruit BusIO\Adafruit_BusIO_Register.cpp.o
    Compiling .pio\build\esp32dev\lib1ed\Adafruit BusIO\Adafruit_I2CDevice.cpp.o
    Compiling .pio\build\esp32dev\lib1ed\Adafruit BusIO\Adafruit_SPIDevice.cpp.o
    Compiling .pio\build\esp32dev\lib91f\Adafruit ADXL343\Adafruit_ADXL343.cpp.o
    Archiving .pio\build\esp32dev\libc5a\libWire.a
    Archiving .pio\build\esp32dev\libd10\libAdafruit Unified Sensor.a
    Archiving .pio\build\esp32dev\lib0a4\libSPI.a
    Compiling .pio\build\esp32dev\lib5a7\PMS Library\PMS.cpp.o
    Compiling .pio\build\esp32dev\libc14\Time\DateStrings.cpp.o
    Archiving .pio\build\esp32dev\lib1ed\libAdafruit BusIO.a
    Archiving .pio\build\esp32dev\lib00b\libAdafruit BME280 Library.a
    Compiling .pio\build\esp32dev\libc14\Time\Time.cpp.o
    Compiling .pio\build\esp32dev\libce0\Adafruit MCP23008 library\Adafruit_MCP23008.cpp.o
    Archiving .pio\build\esp32dev\lib1b5\libArduinoJson.a
    Compiling .pio\build\esp32dev\libb32\Adafruit SI1145 Library\Adafruit_SI1145.cpp.o
    Compiling .pio\build\esp32dev\libdca\AsyncTCP-esphome\AsyncTCP.cpp.o
    Compiling .pio\build\esp32dev\lib32a\RunningMedian\RunningMedian.cpp.o
    Archiving .pio\build\esp32dev\libce0\libAdafruit MCP23008 library.a
    Archiving .pio\build\esp32dev\libc14\libTime.a
    Archiving .pio\build\esp32dev\lib5a7\libPMS Library.a
    Archiving .pio\build\esp32dev\lib91f\libAdafruit ADXL343.a
    Compiling .pio\build\esp32dev\libc04\FS\FS.cpp.o
    Compiling .pio\build\esp32dev\libc04\FS\vfs_api.cpp.o
    Compiling .pio\build\esp32dev\lib80d\WiFi\ETH.cpp.o
    Compiling .pio\build\esp32dev\lib80d\WiFi\WiFi.cpp.o
    Archiving .pio\build\esp32dev\libb32\libAdafruit SI1145 Library.a
    Compiling .pio\build\esp32dev\lib80d\WiFi\WiFiAP.cpp.o
    Compiling .pio\build\esp32dev\lib80d\WiFi\WiFiClient.cpp.o
    Compiling .pio\build\esp32dev\lib80d\WiFi\WiFiGeneric.cpp.o
    Compiling .pio\build\esp32dev\lib80d\WiFi\WiFiMulti.cpp.o
    Archiving .pio\build\esp32dev\lib32a\libRunningMedian.a
    Compiling .pio\build\esp32dev\lib80d\WiFi\WiFiSTA.cpp.o
    Compiling .pio\build\esp32dev\lib80d\WiFi\WiFiScan.cpp.o
    Archiving .pio\build\esp32dev\libdca\libAsyncTCP-esphome.a
    Compiling .pio\build\esp32dev\lib80d\WiFi\WiFiServer.cpp.o
    Compiling .pio\build\esp32dev\lib80d\WiFi\WiFiUdp.cpp.o
    Compiling .pio\build\esp32dev\libaa7\ESPAsyncWebServerFixed\AsyncEventSource.cpp.o
    Archiving .pio\build\esp32dev\libc04\libFS.a
    Compiling .pio\build\esp32dev\libaa7\ESPAsyncWebServerFixed\AsyncWebSocket.cpp.o
    Compiling .pio\build\esp32dev\libaa7\ESPAsyncWebServerFixed\SPIFFSEditor.cpp.o
    Compiling .pio\build\esp32dev\libaa7\ESPAsyncWebServerFixed\WebAuthentication.cpp.o
    Compiling .pio\build\esp32dev\libaa7\ESPAsyncWebServerFixed\WebHandlers.cpp.o
    Compiling .pio\build\esp32dev\libaa7\ESPAsyncWebServerFixed\WebRequest.cpp.o
    Compiling .pio\build\esp32dev\libaa7\ESPAsyncWebServerFixed\WebResponses.cpp.o
    Compiling .pio\build\esp32dev\libaa7\ESPAsyncWebServerFixed\WebServer.cpp.o
    Compiling .pio\build\esp32dev\lib2db\Update\HttpsOTAUpdate.cpp.o
    Archiving .pio\build\esp32dev\lib80d\libWiFi.a
    Compiling .pio\build\esp32dev\lib2db\Update\Updater.cpp.o
    Archiving .pio\build\esp32dev\lib7fb\libAsyncElegantOTA.a
    Compiling .pio\build\esp32dev\lib76a\WiFiClientSecure\WiFiClientSecure.cpp.o
    Compiling .pio\build\esp32dev\lib76a\WiFiClientSecure\ssl_client.cpp.o
    Compiling .pio\build\esp32dev\libff2\HTTPClient\HTTPClient.cpp.o
    Archiving .pio\build\esp32dev\libFrameworkArduinoVariant.a
    Compiling .pio\build\esp32dev\FrameworkArduino\Esp.cpp.o
    Compiling .pio\build\esp32dev\FrameworkArduino\FunctionalInterrupt.cpp.o
    Compiling .pio\build\esp32dev\FrameworkArduino\HardwareSerial.cpp.o
    Archiving .pio\build\esp32dev\lib2db\libUpdate.a
    Compiling .pio\build\esp32dev\FrameworkArduino\IPAddress.cpp.o
    Compiling .pio\build\esp32dev\FrameworkArduino\IPv6Address.cpp.o
    Compiling .pio\build\esp32dev\FrameworkArduino\MD5Builder.cpp.o
    Compiling .pio\build\esp32dev\FrameworkArduino\Print.cpp.o
    Compiling .pio\build\esp32dev\FrameworkArduino\Stream.cpp.o
    Compiling .pio\build\esp32dev\FrameworkArduino\StreamString.cpp.o
    Compiling .pio\build\esp32dev\FrameworkArduino\USB.cpp.o
    Archiving .pio\build\esp32dev\lib76a\libWiFiClientSecure.a
    Compiling .pio\build\esp32dev\FrameworkArduino\USBCDC.cpp.o
    Archiving .pio\build\esp32dev\libaa7\libESPAsyncWebServerFixed.a
    Compiling .pio\build\esp32dev\FrameworkArduino\WMath.cpp.o
    Compiling .pio\build\esp32dev\FrameworkArduino\WString.cpp.o
    Compiling .pio\build\esp32dev\FrameworkArduino\base64.cpp.o
    Compiling .pio\build\esp32dev\FrameworkArduino\cbuf.cpp.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-adc.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-bt.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-cpu.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-dac.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-gpio.c.o
    Archiving .pio\build\esp32dev\libff2\libHTTPClient.a
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-i2c.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-ledc.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-matrix.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-misc.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-psram.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-rmt.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-sigmadelta.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-spi.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-time.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-timer.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-tinyusb.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-touch.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\esp32-hal-uart.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\libb64\cdecode.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\libb64\cencode.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\main.cpp.o
    Compiling .pio\build\esp32dev\FrameworkArduino\stdlib_noniso.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\wiring_pulse.c.o
    Compiling .pio\build\esp32dev\FrameworkArduino\wiring_shift.c.o
    Archiving .pio\build\esp32dev\libFrameworkArduino.a
    Linking .pio\build\esp32dev\firmware.elf
    c:/users/proprietario/.platformio/packages/[email protected]/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: final link failed: bad value
    collect2.exe: error: ld returned 1 exit status
    *** [.pio\build\esp32dev\firmware.elf] Error 1

@chegewara
Copy link
Contributor

I can confirm it. With arduino-esp32#2.0.0-alpha1 i can build, even for S2, but rc1 fail to build.

@HDPlayser
Copy link

Same Issue here. Can't even link.

@me-no-dev
Copy link
Member

Yes, this is a "known" issue on which the PlatformIO guys are working. This is not an issue with this repository, but an issue with PIO.

Try adding platform_packages = espressif/toolchain-xtensa-esp32 @ 8.4.0+2021r1 to your project config.
If you need support for S2 and C3, packages are espressif/toolchain-xtensa-esp32s2 @ 8.4.0+2021r1 and espressif/toolchain-riscv32-esp @ 8.4.0+2021r1

@garageeks
Copy link
Author

Hi @me-no-dev thank you for your feedback.
I have tried this platform_packages configuration:

platform_packages = 
	toolchain-xtensa-esp32 @ 8.4.0+2021r1
	toolchain-xtensa32 @ ~2.80400.0
    platformio/framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32.git#2.0.0-rc1

It seems to pickup a newer version of toolchain-xtensa32 but not toolchain-xtensa-esp32.
Nonetheless it still fails the same way

Linking .pio\build\esp32dev\firmware.elf
c:/users/proprietario/.platformio/packages/[email protected]/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: final link failed: bad value
collect2.exe: error: ld returned 1 exit status
*** [.pio\build\esp32dev\firmware.elf] Error 1

If I use this configuration:

platform_packages = 
	toolchain-xtensa-esp32 @ 8.4.0+2021r1
    platformio/framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32.git#2.0.0-rc1

Thank it ignores the toolchain and uses the default Espressif 3.3.0 toolchain (latest platform version available on PIO), that is missing some files:

Linking .pio\build\esp32dev\firmware.elf
c:/users/proprietario/.platformio/packages/[email protected]/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: cannot find crt1-sim.o: No such file or directory
c:/users/proprietario/.platformio/packages/[email protected]/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: cannot find _vectors.o: No such file or directory
collect2.exe: error: ld returned 1 exit status
*** [.pio\build\esp32dev\firmware.elf] Error 1

How can I force it to use toolchain-xtensa-esp32 @ 8.4.0+2021r1 ?
In any case I'll open an issue on PIO GitHub so we can track their side.

Thank you
Nick

@me-no-dev
Copy link
Member

@valeros @ivankravets please take a look!

@valeros
Copy link
Contributor

valeros commented Jul 23, 2021

Hi guys, as no one has submitted an issue to the PlatformIO repository I'll briefly answer here. In a nutshell, as we're approaching the core v2.0, PlatformIO's espressif32 dev-platform is being gradually switched to the official packages provided by Espressif as well. This includes new package names, new versions of these packages, etc. During this transitional period, anyone who wants to use the upstream Arduino core from master, any release candidates, etc. need to install the dev-platform from a special branch that contains required changes, something like this:

[env:esp32-s2-saola-1]
platform = https://github.com/platformio/platform-espressif32.git#feature/arduino-upstream
framework = arduino
board = esp32-s2-saola-1

This workflow is temporary and once the core v2.0 is officially released, everything will get back to normal. In case you still have any problem, please report them directly to https://github.com/platformio/platform-espressif32

@garageeks
Copy link
Author

garageeks commented Jul 23, 2021

Hi @valeros
Thank you for answering, indeed the trick worked.
I changed my project platformio.ini as follows:

[env:esp32dev]
platform = https://github.com/platformio/platform-espressif32.git#feature/arduino-upstream
board = esp32dev
framework = arduino
platform_packages = 
    platformio/framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32.git#2.0.0-rc1

... and indeed now it compiles. Now, let's put 2.0RC1 up to its paces!

Linking .pio\build\esp32dev\firmware.elf
Retrieving maximum program size .pio\build\esp32dev\firmware.elf
Checking size .pio\build\esp32dev\firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM:   [=         ]  11.6% (used 37960 bytes from 327680 bytes)
Flash: [========= ]  87.6% (used 1148149 bytes from 1310720 bytes)
Building .pio\build\esp32dev\firmware.bin
esptool.py v3.1
Merged 25 ELF sections

@rinscr3003
Copy link

This also cannot be compiled in Arduino IDE. With the same error.
@me-no-dev

@rinscr3003
Copy link

Solved.
I changed the toolchain version to 2021r1.
@me-no-dev

@ullix
Copy link

ullix commented Aug 11, 2021

@valeros I tried your ini settings from #5436 (comment) but got this response:

Tool Manager: Installing platform-espressif32 @ *
Error: Could not find the package with 'platform-espressif32 @ *' requirements for your system 'linux_x86_64'

Is this valid only for Windows? I there a Linux version also available?

@ivankravets
Copy link
Contributor

@ullix do you use the latest PlatformIO Core version? pio ––version

Please check also Internet connection

@ullix
Copy link

ullix commented Aug 11, 2021

$ pio --version
PlatformIO Core, version 5.1.1

Just reinstalled after this problem: https://community.platformio.org/t/pio-upgrading-actually-downgraded/22876

@ullix
Copy link

ullix commented Aug 11, 2021

Ooops, sorry, my mistake: I put the line under platform_packages not under platform!

At the correct position it compiles, but linking fails with:

/home/ullix/.platformio/packages/toolchain-xtensa-esp32/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: .pio/build/esp32dev/lib741/libESP Async WebServer.a(WebAuthentication.cpp.o):(.literal._ZL6getMD5PhtPc+0x8): undefined reference to `mbedtls_md5_starts'

Is a different ESP Async WebServer needed? If so, how can I get it?

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

8 participants