From: Bruno Haible Date: Mon, 5 Sep 2022 19:54:10 +0000 (+0200) Subject: pthread-h: Fix compilation error on mingw with --enable-threads=windows. X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=1c06c41acdd495eb2896be6b53c59101687bcf8d;p=gnulib.git 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. --- diff --git a/ChangeLog b/ChangeLog index 3127f529cd..4c9405b54c 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