From 9dd50249b597109c5956a531e44d46dc344daea5 Mon Sep 17 00:00:00 2001 From: Fabian Groffen Date: Wed, 7 Jun 2017 14:37:27 +0200 Subject: common: always use p11_dl_close wrapper Solaris doesn't like it when dlclose is referenced using a define, resulting in a linker error looking for a symbol version. Simply calling the function in a normal way (instead of storing its address) solves this linking error. The error message seen by GNU ld is: dlclose: invalid version 7 (max 0) --- common/compat.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'common/compat.c') 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 -- cgit v1.1