From 5c6e1e6e673fd5c6de127a4a933ecb3e2f8bf83b Mon Sep 17 00:00:00 2001 From: morris Date: Tue, 10 Jul 2018 17:01:56 +0800 Subject: [PATCH] pthread: fix esp_pthread.h to compatible with c++ esp_pthread.h is missing the necessary extern "C"{ ... } wrapper to be compatible with C++. The result is link errors when you call its functions from C++ code, because the compiler generates mangled names. Closes https://github.com/espressif/esp-idf/issues/2121 Closes https://github.com/espressif/esp-idf/issues/2172 --- components/pthread/include/esp_pthread.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/components/pthread/include/esp_pthread.h b/components/pthread/include/esp_pthread.h index ae3c2d68f..56849328f 100644 --- a/components/pthread/include/esp_pthread.h +++ b/components/pthread/include/esp_pthread.h @@ -11,6 +11,13 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. + +#pragma once + +#ifdef __cplusplus +extern "C" { +#endif + #include /** pthread configuration structure that influences pthread creation */ @@ -55,3 +62,6 @@ esp_err_t esp_pthread_set_cfg(const esp_pthread_cfg_t *cfg); */ esp_err_t esp_pthread_get_cfg(esp_pthread_cfg_t *p); +#ifdef __cplusplus +} +#endif