summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
Diffstat (limited to 'common')
-rw-r--r--common/compat.c17
-rw-r--r--common/compat.h6
2 files changed, 13 insertions, 10 deletions
diff --git a/common/compat.c b/common/compat.c
index 970e5ed..692e2ca 100644
--- a/common/compat.c
+++ b/common/compat.c
@@ -278,12 +278,6 @@ p11_dl_error (void)
return msg_buf;
}
-void
-p11_dl_close (void *dl)
-{
- FreeLibrary (dl);
-}
-
int
p11_thread_create (p11_thread_t *thread,
p11_thread_routine routine,
@@ -861,6 +855,17 @@ strerror_r (int errnum,
#endif /* HAVE_STRERROR_R */
+void
+p11_dl_close (void *dl)
+{
+#ifdef OS_WIN32
+ FreeLibrary (dl);
+#else
+ (void) dlclose (dl);
+#endif
+}
+
+
#ifdef OS_UNIX
#include <unistd.h>
diff --git a/common/compat.h b/common/compat.h
index 15b3106..b021494 100644
--- a/common/compat.h
+++ b/common/compat.h
@@ -91,6 +91,8 @@ char * mkdtemp (char *template);
char * strdup_path_mangle (const char *template);
+void p11_dl_close (void * dl);
+
/* -----------------------------------------------------------------------------
* WIN32
*/
@@ -147,8 +149,6 @@ typedef HMODULE dl_module_t;
char * p11_dl_error (void);
-void p11_dl_close (void * dl);
-
#define p11_sleep_ms(ms) \
(Sleep (ms))
@@ -206,8 +206,6 @@ typedef void * dl_module_t;
#define p11_dl_open(f) \
(dlopen ((f), RTLD_LOCAL | RTLD_NOW))
-#define p11_dl_close \
- dlclose
#define p11_dl_symbol(d, s) \
(dlsym ((d), (s)))