winpthreads: do not expose IN_WINPTHREAD in public header files
When building winpthreads, define WINPTHREAD_API in config.h
instead of public pthread_compat.h.
Definition of WINPTHREAD_API in pthread_compat.h will only be used
by client code.
Note that IN_WINPTHREAD is still defined.
It is checked for in mingw-w64's time.h.
Signed-off-by: Kirill Makurin <maiddaisuki@outlook.com>
Signed-off-by: LIU Hao <lh_mouse@126.com>
diff --git a/mingw-w64-libraries/winpthreads/configure.ac b/mingw-w64-libraries/winpthreads/configure.ac
index 45d3821..f29d3c2 100644
--- a/mingw-w64-libraries/winpthreads/configure.ac
+++ b/mingw-w64-libraries/winpthreads/configure.ac
@@ -54,5 +54,14 @@
# Checks for library functions.
+# config.h
+AH_BOTTOM(
+[#ifdef DLL_EXPORT
+#define WINPTHREAD_API __declspec(dllexport)
+#else
+#define WINPTHREAD_API
+#endif]dnl
+)
+
AC_CONFIG_FILES([Makefile tests/Makefile])
AC_OUTPUT
diff --git a/mingw-w64-libraries/winpthreads/include/pthread_compat.h b/mingw-w64-libraries/winpthreads/include/pthread_compat.h
index 3a85528..b682a3a 100644
--- a/mingw-w64-libraries/winpthreads/include/pthread_compat.h
+++ b/mingw-w64-libraries/winpthreads/include/pthread_compat.h
@@ -66,18 +66,12 @@
#define WINPTHREADS_TIME_BITS 64
#endif
-#if defined(IN_WINPTHREAD)
-# if defined(DLL_EXPORT)
-# define WINPTHREAD_API __declspec(dllexport) /* building the DLL */
-# else
-# define WINPTHREAD_API /* building the static library */
-# endif
-#else
-# if defined(WINPTHREADS_USE_DLLIMPORT)
-# define WINPTHREAD_API __declspec(dllimport) /* user wants explicit `dllimport` */
-# else
-# define WINPTHREAD_API /* the default; auto imported in case of DLL */
-# endif
+#ifndef WINPTHREAD_API
+# ifdef WINPTHREADS_USE_DLLIMPORT
+# define WINPTHREAD_API __declspec(dllimport)
+# else
+# define WINPTHREAD_API
+# endif
#endif
#ifndef __clockid_t_defined