Files
arduino-home-assistant/docs/ESP8266-LINKER-WORKAROUND.md
T

1.3 KiB

ESP8266 Postmortem linker workaround

The ESP8266 Arduino framework pin used by the DeviceFramework, WiFiManager, and DFTE test projects is intentional:

platform_packages =
    platformio/framework-arduinoespressif8266 @ https://github.com/esp8266/Arduino.git#521ae60a89e64bb0d1eb7a0b7addf620ced5cad3

That upstream commit fixes Postmortem's large-jump failure, dangerous relocation: j: cannot encode. It changes the restart wrapper to use a relaxed jump and adds an EPC1 address check. The failure is a framework linker/runtime-support issue, not an ArduinoHA or application-source error.

Keep this exact framework snapshot in ESP8266 environments that need the maintained test contract. It is unrelated to ESP32, whose pioarduino platform selects its framework and compiler as a unit. Do not replace the SHA with a version range: remove or advance the pin only after an upstream release includes the fix and the affected large firmware has compiled successfully.

The corresponding ESP32 Core 3 pin and shared PlatformIO-cache recovery steps are documented in DeviceFramework's toolchain guide.

Back to the documentation map.