From 0b48d5978e4d7173eb7e9932b93234aeb3f2283a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A1n=20Pan=C3=AD=C4=8Dek?= <693432+adrianpanicek@users.noreply.github.com> Date: Thu, 9 Nov 2017 22:46:38 +0100 Subject: [PATCH 1/2] ringbuf.h: Add anti name-mangling definition When using CPP and C combination this particular file threw error on linking. Merges https://github.com/espressif/esp-idf/pull/1249 (Amended to add INC_FREERTOS_H guard, comment on #endif) --- components/freertos/include/freertos/ringbuf.h | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/components/freertos/include/freertos/ringbuf.h b/components/freertos/include/freertos/ringbuf.h index 93ba30758e..362381ab60 100644 --- a/components/freertos/include/freertos/ringbuf.h +++ b/components/freertos/include/freertos/ringbuf.h @@ -1,6 +1,14 @@ #ifndef FREERTOS_RINGBUF_H #define FREERTOS_RINGBUF_H +#ifndef INC_FREERTOS_H + #error "include FreeRTOS.h" must appear in source files before "include ringbuf.h" +#endif + +#ifdef __cplusplus +extern "C" { +#endif + /* Header definitions for a FreeRTOS ringbuffer object @@ -242,5 +250,9 @@ BaseType_t xRingbufferRemoveFromQueueSetWrite(RingbufHandle_t ringbuf, QueueSetH */ void xRingbufferPrintInfo(RingbufHandle_t ringbuf); - +#ifdef __cplusplus +} #endif + +#endif /* FREERTOS_RINGBUF_H */ + From a556e1c782129339471a360d5f4d8eb54dfc24ef Mon Sep 17 00:00:00 2001 From: Angus Gratton Date: Fri, 17 Nov 2017 10:16:46 +1100 Subject: [PATCH 2/2] heap: Add C++ header guards to heap headers Closes https://github.com/espressif/esp-idf/issues/1195 --- components/heap/include/esp_heap_caps_init.h | 9 +++++++-- components/heap/include/esp_heap_trace.h | 8 ++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/components/heap/include/esp_heap_caps_init.h b/components/heap/include/esp_heap_caps_init.h index 5cfb8d82b5..3cf23ff7f3 100644 --- a/components/heap/include/esp_heap_caps_init.h +++ b/components/heap/include/esp_heap_caps_init.h @@ -17,6 +17,10 @@ #include "esp_heap_caps.h" #include "soc/soc_memory_layout.h" +#ifdef __cplusplus +extern "C" { +#endif + /** * @brief Initialize the capability-aware heap allocator. * @@ -82,5 +86,6 @@ esp_err_t heap_caps_add_region(intptr_t start, intptr_t end); esp_err_t heap_caps_add_region_with_caps(const uint32_t caps[], intptr_t start, intptr_t end); - - +#ifdef __cplusplus +} +#endif diff --git a/components/heap/include/esp_heap_trace.h b/components/heap/include/esp_heap_trace.h index 24b5c60f55..08b8caa218 100644 --- a/components/heap/include/esp_heap_trace.h +++ b/components/heap/include/esp_heap_trace.h @@ -17,6 +17,10 @@ #include #include +#ifdef __cplusplus +extern "C" { +#endif + #if !defined(CONFIG_HEAP_TRACING) && !defined(HEAP_TRACE_SRCFILE) #warning "esp_heap_trace.h is included but heap tracing is disabled in menuconfig, functions are no-ops" #endif @@ -134,3 +138,7 @@ esp_err_t heap_trace_get(size_t index, heap_trace_record_t *record); * */ void heap_trace_dump(void); + +#ifdef __cplusplus +} +#endif