From 1ea93e7ef19f7cb63eccb332211e5765be2bbbbd Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Mon, 5 Sep 2022 21:54:10 +0200 Subject: [PATCH] pthread-h: Fix compilation error on mingw with --enable-threads=windows. * lib/pthread.in.h: In C++ mode, if mingw's has not been used, import many pthread_* symbols from the GNULIB_NAMESPACE into the global namespace. --- ChangeLog | 7 +++++++ lib/pthread.in.h | 29 +++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/ChangeLog b/ChangeLog index 7b2c109bee..26231407bb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2022-09-05 Bruno Haible + + pthread-h: Fix compilation error on mingw with --enable-threads=windows. + * lib/pthread.in.h: In C++ mode, if mingw's has not been + used, import many pthread_* symbols from the GNULIB_NAMESPACE into the + global namespace. + 2022-09-04 Bruno Haible Fix various test link errors on MSVC. diff --git a/lib/pthread.in.h b/lib/pthread.in.h index 5a658db9ab..cf9ca3a4a5 100644 --- a/lib/pthread.in.h +++ b/lib/pthread.in.h @@ -1968,6 +1968,35 @@ _GL_WARN_ON_USE (pthread_spin_destroy, "pthread_spin_destroy is not portable - " #endif +#if defined __cplusplus && defined GNULIB_NAMESPACE && !@HAVE_PTHREAD_H@ && defined __MINGW32__ +/* Provide the symbols required by mingw's . */ +using GNULIB_NAMESPACE::pthread_create; +using GNULIB_NAMESPACE::pthread_self; +using GNULIB_NAMESPACE::pthread_equal; +using GNULIB_NAMESPACE::pthread_detach; +using GNULIB_NAMESPACE::pthread_join; +using GNULIB_NAMESPACE::pthread_once; +using GNULIB_NAMESPACE::pthread_mutex_init; +using GNULIB_NAMESPACE::pthread_mutexattr_init; +using GNULIB_NAMESPACE::pthread_mutexattr_settype; +using GNULIB_NAMESPACE::pthread_mutexattr_destroy; +using GNULIB_NAMESPACE::pthread_mutex_lock; +using GNULIB_NAMESPACE::pthread_mutex_trylock; +using GNULIB_NAMESPACE::pthread_mutex_timedlock; +using GNULIB_NAMESPACE::pthread_mutex_unlock; +using GNULIB_NAMESPACE::pthread_mutex_destroy; +using GNULIB_NAMESPACE::pthread_cond_wait; +using GNULIB_NAMESPACE::pthread_cond_timedwait; +using GNULIB_NAMESPACE::pthread_cond_signal; +using GNULIB_NAMESPACE::pthread_cond_broadcast; +using GNULIB_NAMESPACE::pthread_cond_destroy; +using GNULIB_NAMESPACE::pthread_key_create; +using GNULIB_NAMESPACE::pthread_setspecific; +using GNULIB_NAMESPACE::pthread_getspecific; +using GNULIB_NAMESPACE::pthread_key_delete; +#endif + + #endif /* _@GUARD_PREFIX@_PTHREAD_H_ */ #endif /* _@GUARD_PREFIX@_PTHREAD_H_ */ #endif -- 2.39.5