fix(ci): pin tool-scons to 4.8.1 for ESP targets (#11756)

PlatformIO Core now pulls tool-scons ~4.41101.0 (SCons 4.11.1), which
overrides the 4.8.1 the pioarduino espressif32 platform asks for. In
4.11.1 the lazy "import SCons.Tool.FortranCommon" that smart_link() uses
to pick a linker raises ModuleNotFoundError, so every ESP environment
fails at link-action resolution, before a single file is compiled:

  *** [.pio/build/<env>/firmware-<env>.elf] ModuleNotFoundError :
      No module named 'SCons.Tool.FortranCommon'

The package is not at fault; FortranCommon.py is present in
tool-scons-4.41101.0 and imports cleanly outside SCons. The failure comes
from the module state SCons's own tool loader leaves behind.

Scoped to esp32_common, which all six ESP architectures extend. nRF52,
STM32 and rp2040 are unaffected and keep the toolchain they have.
This commit is contained in:
Thomas Göttgens authored and GitHub committed 2026-09-07 10:44:51 +02:00
1 parent 5920d05f5b
commit a8912b1eb5
1 file changed
+4
+4
View File
@@ -12,6 +12,10 @@ platform =
platform_packages =
# renovate: datasource=custom.pio depName=platformio/tool-mklittlefs packageName=platformio/tool/tool-mklittlefs
platformio/tool-mklittlefs@1.203.210628
; Hold at 4.8.1: in 4.11.1 the lazy FortranCommon import in smart_link() kills every
; ESP build before it compiles. Drop once PlatformIO ships a tool-scons that imports.
# renovate: datasource=custom.pio depName=platformio/tool-scons packageName=platformio/tool/tool-scons
platformio/tool-scons@4.40801.0
extra_scripts =
${env.extra_scripts}