From 51b7f5c6f6af53c3fc6a71ede9aea6b760a91491 Mon Sep 17 00:00:00 2001 From: Haru Date: Fri, 30 Aug 2013 14:43:36 +0200 Subject: Changed dlopen to use RTLD_DEEPBIND where available - Fixes bugreport:7680 http://hercules.ws/board/tracker/issue-7680-hpm-is-broken/ Signed-off-by: Haru --- src/common/HPM.h | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'src/common') diff --git a/src/common/HPM.h b/src/common/HPM.h index d2a1308f2..614498fd3 100644 --- a/src/common/HPM.h +++ b/src/common/HPM.h @@ -18,9 +18,13 @@ #define DLL_EXT ".dll" #define DLL HINSTANCE -#else +#else // ! WIN32 #include - #define plugin_open(x) dlopen(x,RTLD_NOW) + #ifdef RTLD_DEEPBIND // Certain linux ditributions require this, but it's not available everywhere + #define plugin_open(x) dlopen(x,RTLD_NOW|RTLD_DEEPBIND) + #else // ! RTLD_DEEPBIND + #define plugin_open(x) dlopen(x,RTLD_NOW) + #endif // RTLD_DEEPBIND #define plugin_import(x,y,z) (z)dlsym(x,y) #define plugin_close(x) dlclose(x) @@ -34,7 +38,7 @@ #include // size_t -#endif +#endif // WIN32 struct hplugin { DLL dll; -- cgit v1.2.3-70-g09d2