From 4009c498d956b17dd742406f1cdabaa7b4dc5700 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Wed, 29 Apr 2026 06:50:59 -0500 Subject: [PATCH] [esp32] Fix hal.cpp include order: defines.h before crash_handler.h crash_handler.h is itself guarded by #ifdef USE_ESP32_CRASH_HANDLER, so when hal.cpp included it before defines.h, the namespace block was empty at parse time and arch_init()'s USE_ESP32_CRASH_HANDLER branch failed with: error: 'crash_handler_read_and_clear' is not a member of 'esphome::esp32' Pull defines.h first so USE_ESP32_CRASH_HANDLER is defined before crash_handler.h is parsed. --- esphome/components/esp32/hal.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/esphome/components/esp32/hal.cpp b/esphome/components/esp32/hal.cpp index 3a0836a5073..f6199d557f3 100644 --- a/esphome/components/esp32/hal.cpp +++ b/esphome/components/esp32/hal.cpp @@ -1,7 +1,9 @@ #ifdef USE_ESP32 -#include "crash_handler.h" +// defines.h must come before crash_handler.h so USE_ESP32_CRASH_HANDLER is set +// before crash_handler.h's #ifdef-guarded namespace block is parsed. #include "esphome/core/defines.h" +#include "crash_handler.h" #include "esphome/core/hal.h" #include