From fb47df0510111d356b12f6376960bd38bcc8cf1a Mon Sep 17 00:00:00 2001 From: Zach Vorhies Date: Sun, 4 Oct 2026 06:28:35 -0700 Subject: [PATCH] fix: restore ESP-IDF 4.4 SDK and linker compatibility Local-Gate: v1 tree=1ba64bcd3ed593e44262fb41d0c7073ff880395c secs=558 lanes=linux-minimal:run Ci-Attestation: {"at":1791123005,"gate":"general/all/ubuntu-ci-guards","host":"linux-x86_64","key":"1084f630b61e0b74e1d61a5fdc0da2c6647dc78752bec3dfb1d7140101c69ac4","lane":"linux-minimal","parents":["ed1d82303a53f134a4d1bbbbb02dcc11b34070de"],"secs":557,"stamp":"f4f32de9ac4c79515cbe1c3f57b81810","tree":"1ba64bcd3ed593e44262fb41d0c7073ff880395c","v":1,"via":"run"} Ci-Attestation: {"at":1791123005,"gate":"rust/x86_64-unknown-linux-gnu/workspace-clippy","host":"linux-x86_64","key":"1084f630b61e0b74e1d61a5fdc0da2c6647dc78752bec3dfb1d7140101c69ac4","lane":"linux-minimal","parents":["ed1d82303a53f134a4d1bbbbb02dcc11b34070de"],"secs":557,"stamp":"d544479f289236cca6bbed0e82e6ea2c","tree":"1ba64bcd3ed593e44262fb41d0c7073ff880395c","v":1,"via":"run"} Ci-Attestation: {"at":1791123005,"gate":"rust/x86_64-unknown-linux-gnu/workspace-test","host":"linux-x86_64","key":"1084f630b61e0b74e1d61a5fdc0da2c6647dc78752bec3dfb1d7140101c69ac4","lane":"linux-minimal","parents":["ed1d82303a53f134a4d1bbbbb02dcc11b34070de"],"secs":557,"stamp":"182a6acafae11e0653de645426c64056","tree":"1ba64bcd3ed593e44262fb41d0c7073ff880395c","v":1,"via":"run"} Ci-Attestation: {"at":1791123005,"gate":"rust/x86_64-unknown-linux-gnu/python-facade-test","host":"linux-x86_64","key":"1084f630b61e0b74e1d61a5fdc0da2c6647dc78752bec3dfb1d7140101c69ac4","lane":"linux-minimal","parents":["ed1d82303a53f134a4d1bbbbb02dcc11b34070de"],"secs":557,"stamp":"11baffac842c81a62b745fac8ee0904a","tree":"1ba64bcd3ed593e44262fb41d0c7073ff880395c","v":1,"via":"run"} --- Cargo.lock | 42 +++++++++---------- Cargo.toml | 2 +- crates/fbuild-build-esp/src/esp32/fixups.rs | 15 ++++++- .../src/library/esp32_framework/sdk_paths.rs | 9 +++- .../src/library/esp32_framework/tests.rs | 32 ++++++++++++++ pyproject.toml | 2 +- 6 files changed, 77 insertions(+), 25 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index dad18935..4f480210 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -988,7 +988,7 @@ checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "fbuild-bench-fastled-examples" -version = "2.5.33" +version = "2.5.35" dependencies = [ "fbuild-core", "fbuild-library-select", @@ -1002,7 +1002,7 @@ dependencies = [ [[package]] name = "fbuild-build" -version = "2.5.33" +version = "2.5.35" dependencies = [ "async-trait", "blake3", @@ -1039,7 +1039,7 @@ dependencies = [ [[package]] name = "fbuild-build-arm" -version = "2.5.33" +version = "2.5.35" dependencies = [ "async-trait", "blake3", @@ -1073,7 +1073,7 @@ dependencies = [ [[package]] name = "fbuild-build-engine" -version = "2.5.33" +version = "2.5.35" dependencies = [ "async-trait", "blake3", @@ -1107,7 +1107,7 @@ dependencies = [ [[package]] name = "fbuild-build-esp" -version = "2.5.33" +version = "2.5.35" dependencies = [ "async-trait", "blake3", @@ -1142,7 +1142,7 @@ dependencies = [ [[package]] name = "fbuild-build-mcu" -version = "2.5.33" +version = "2.5.35" dependencies = [ "async-trait", "blake3", @@ -1176,7 +1176,7 @@ dependencies = [ [[package]] name = "fbuild-cli" -version = "2.5.33" +version = "2.5.35" dependencies = [ "blake3", "clap", @@ -1208,7 +1208,7 @@ dependencies = [ [[package]] name = "fbuild-config" -version = "2.5.33" +version = "2.5.35" dependencies = [ "fbuild-core", "fbuild-paths", @@ -1223,7 +1223,7 @@ dependencies = [ [[package]] name = "fbuild-core" -version = "2.5.33" +version = "2.5.35" dependencies = [ "async-trait", "fs2", @@ -1252,7 +1252,7 @@ dependencies = [ [[package]] name = "fbuild-daemon" -version = "2.5.33" +version = "2.5.35" dependencies = [ "async-trait", "axum 0.7.9", @@ -1291,7 +1291,7 @@ dependencies = [ [[package]] name = "fbuild-deploy" -version = "2.5.33" +version = "2.5.35" dependencies = [ "async-trait", "espflash", @@ -1319,7 +1319,7 @@ dependencies = [ [[package]] name = "fbuild-header-scan" -version = "2.5.33" +version = "2.5.35" dependencies = [ "criterion", "fbuild-paths", @@ -1330,7 +1330,7 @@ dependencies = [ [[package]] name = "fbuild-library" -version = "2.5.33" +version = "2.5.35" dependencies = [ "async-trait", "axum 0.7.9", @@ -1362,7 +1362,7 @@ dependencies = [ [[package]] name = "fbuild-library-select" -version = "2.5.33" +version = "2.5.35" dependencies = [ "bincode", "blake3", @@ -1383,7 +1383,7 @@ dependencies = [ [[package]] name = "fbuild-packages" -version = "2.5.33" +version = "2.5.35" dependencies = [ "async-trait", "axum 0.7.9", @@ -1415,7 +1415,7 @@ dependencies = [ [[package]] name = "fbuild-packages-fetch" -version = "2.5.33" +version = "2.5.35" dependencies = [ "async-trait", "axum 0.7.9", @@ -1444,7 +1444,7 @@ dependencies = [ [[package]] name = "fbuild-paths" -version = "2.5.33" +version = "2.5.35" dependencies = [ "blake3", "fbuild-core", @@ -1456,7 +1456,7 @@ dependencies = [ [[package]] name = "fbuild-python" -version = "2.5.33" +version = "2.5.35" dependencies = [ "base64", "fbuild-core", @@ -1480,7 +1480,7 @@ dependencies = [ [[package]] name = "fbuild-serial" -version = "2.5.33" +version = "2.5.35" dependencies = [ "async-trait", "base64", @@ -1503,7 +1503,7 @@ dependencies = [ [[package]] name = "fbuild-test-support" -version = "2.5.33" +version = "2.5.35" dependencies = [ "fbuild-config", "fbuild-core", @@ -1523,7 +1523,7 @@ dependencies = [ [[package]] name = "fbuild-toolchain" -version = "2.5.33" +version = "2.5.35" dependencies = [ "async-trait", "axum 0.7.9", diff --git a/Cargo.toml b/Cargo.toml index 4aa02069..936bdc9a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -93,7 +93,7 @@ targets = [ ] [workspace.package] -version = "2.5.34" +version = "2.5.35" edition = "2021" rust-version = "1.95.0" license = "AGPL-3.0-only" diff --git a/crates/fbuild-build-esp/src/esp32/fixups.rs b/crates/fbuild-build-esp/src/esp32/fixups.rs index 53dd24e2..83a70958 100644 --- a/crates/fbuild-build-esp/src/esp32/fixups.rs +++ b/crates/fbuild-build-esp/src/esp32/fixups.rs @@ -86,7 +86,10 @@ fn drop_hardware_atomics(mut config: Esp32McuConfig) -> Esp32McuConfig { } fn legacy_gcc8(config: Esp32McuConfig) -> Esp32McuConfig { - without_lto(gcc8_language_standards(gcc8_linker_recipe(config))) + let mut config = gcc8_linker_recipe(config); + config.linker_flags = without(config.linker_flags, "-Wl,--no-warn-rwx-segments"); + config.linker_flags = without(config.linker_flags, "-Wl,--wrap=log_printf"); + without_lto(gcc8_language_standards(config)) } fn legacy_gcc5(mut config: Esp32McuConfig) -> Esp32McuConfig { @@ -275,10 +278,20 @@ mod tests { assert!(!has(&config.compiler_flags.cxx, "-std=gnu++2b")); assert!(has(&config.linker_flags, "-fno-lto")); assert!(!has(&config.linker_flags, "-Wl,--no-warn-rwx-segments")); + assert!(!has(&config.linker_flags, "-Wl,--wrap=log_printf")); assert!(has(&config.linker_scripts, "esp32s3.rom.newlib-time.ld")); assert!(!has_lto(&config)); } + #[test] + fn platformio_esp32_gcc8_omits_unsupported_linker_option() { + let config = for_toolchain( + get_mcu_config("esp32").unwrap(), + &toolchain("toolchain-xtensa-esp32", "8.4.0+2021r2-patch3"), + ); + assert!(!has(&config.linker_flags, "-Wl,--no-warn-rwx-segments")); + } + #[test] fn platformio_legacy_xtensa32_uses_supported_flags() { let package = toolchain("toolchain-xtensa32", "2.50200.97"); diff --git a/crates/fbuild-library/src/library/esp32_framework/sdk_paths.rs b/crates/fbuild-library/src/library/esp32_framework/sdk_paths.rs index ea26ef63..f2f8b4f0 100644 --- a/crates/fbuild-library/src/library/esp32_framework/sdk_paths.rs +++ b/crates/fbuild-library/src/library/esp32_framework/sdk_paths.rs @@ -123,7 +123,14 @@ fn sdk_memory_variant_dir(sdk_dir: &Path, requested: Option<&str>) -> Option