bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

pthread-h: Fix compilation error on mingw with --enable-threads=windows


From: Bruno Haible
Subject: pthread-h: Fix compilation error on mingw with --enable-threads=windows
Date: Mon, 05 Sep 2022 21:55:01 +0200

Compiling a gnulib testdir on mingw, with --enable-threads=windows, I get a
compilation error (attached).

This patch fixes it.


2022-09-05  Bruno Haible  <bruno@clisp.org>

        pthread-h: Fix compilation error on mingw with --enable-threads=windows.
        * lib/pthread.in.h: In C++ mode, if mingw's <pthread.h> has not been
        used, import many pthread_* symbols from the GNULIB_NAMESPACE into the
        global namespace.

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 <bits/gthr-default.h>.  */
+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

Attachment: mingw-c++-error.log
Description: Text Data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]