summaryrefslogtreecommitdiff
path: root/common/library.h
diff options
context:
space:
mode:
Diffstat (limited to 'common/library.h')
-rw-r--r--common/library.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/common/library.h b/common/library.h
index c3840f8..0a779b0 100644
--- a/common/library.h
+++ b/common/library.h
@@ -59,11 +59,21 @@ extern unsigned int p11_forkid;
#define p11_library_init_once()
#else /* !OS_WIN32 */
+
+#ifdef __GNUC__
+
+/* No implementation, because done by the ELF constructor */
+#define p11_library_init_once()
+
+#else
+
extern pthread_once_t p11_library_once;
#define p11_library_init_once() \
pthread_once (&p11_library_once, p11_library_init_impl);
+#endif /* !__GNUC__ */
+
void p11_library_init_impl (void);
#endif /* !OS_WIN32 */