summaryrefslogtreecommitdiff
path: root/p11-kit/util.c
diff options
context:
space:
mode:
authorDaiki Ueno <dueno@redhat.com>2016-08-26 17:20:06 +0200
committerDaiki Ueno <ueno@gnu.org>2017-01-24 12:36:06 +0100
commit9f632bed73c8800af16a69c97bd4c315bd350f8b (patch)
tree014408e1632b4d436b85cfbbfd34f28e892ab2ca /p11-kit/util.c
parent91861f634a1299af28a29de70c45f469562123f6 (diff)
build: Make libffi closure optional
libffi's closure support is not available on all platforms and may fail at run time if running under a stricter SELinux policy. Fallback to pre-compiled closures if it is not usable. https://bugs.freedesktop.org/show_bug.cgi?id=97611
Diffstat (limited to 'p11-kit/util.c')
-rw-r--r--p11-kit/util.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/p11-kit/util.c b/p11-kit/util.c
index 325d669..816952f 100644
--- a/p11-kit/util.c
+++ b/p11-kit/util.c
@@ -45,6 +45,7 @@
#include "p11-kit.h"
#include "private.h"
#include "proxy.h"
+#include "virtual.h"
#include <assert.h>
#include <stdarg.h>
@@ -251,6 +252,7 @@ void
_p11_kit_init (void)
{
p11_library_init_once ();
+ p11_virtual_init_fixed ();
}
#ifdef __GNUC__
@@ -260,6 +262,7 @@ void
_p11_kit_fini (void)
{
p11_proxy_module_cleanup ();
+ p11_virtual_uninit_fixed ();
p11_library_uninit ();
}
@@ -277,12 +280,14 @@ DllMain (HINSTANCE instance,
switch (reason) {
case DLL_PROCESS_ATTACH:
p11_library_init ();
+ p11_virtual_init_fixed ();
break;
case DLL_THREAD_DETACH:
p11_library_thread_cleanup ();
break;
case DLL_PROCESS_DETACH:
p11_proxy_module_cleanup ();
+ p11_virtual_uninit_fixed ();
p11_library_uninit ();
break;
default: