From 3d6d80daba81a6cea396798dfe801c8d36c4685f Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Tue, 6 Nov 2007 04:26:52 +0100 Subject: r25859: Wrap native HPUX functions in dl implementation. (This used to be commit bf1685faa1c941d3ca56b29a1e15b8a134d02068) --- source4/lib/replace/dlfcn.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'source4/lib/replace') diff --git a/source4/lib/replace/dlfcn.c b/source4/lib/replace/dlfcn.c index 46aaaa4087..42848848e8 100644 --- a/source4/lib/replace/dlfcn.c +++ b/source4/lib/replace/dlfcn.c @@ -23,6 +23,9 @@ */ #include "replace.h" +#ifdef HAVE_DL_H +#include +#endif #ifndef HAVE_DLOPEN #ifdef DLOPEN_TAKES_UNSIGNED_FLAGS @@ -31,13 +34,22 @@ void *rep_dlopen(const char *name, unsigned int flags) void *rep_dlopen(const char *name, int flags) #endif { +#ifdef HAVE_SHL_LOAD + return (void *)shl_load(name, flags, 0); +#else return NULL; +#endif } #endif #ifndef HAVE_DLSYM void *rep_dlsym(void *handle, const char *symbol) { +#ifdef HAVE_SHL_FINDSYM + void *sym_addr; + if (!shl_findsym((shl_t *)&handle, symbol, TYPE_UNDEFINED, &sym_addr)) + return sym_addr; +#endif return NULL; } #endif @@ -52,6 +64,10 @@ char *rep_dlerror(void) #ifndef HAVE_DLCLOSE int rep_dlclose(void *handle) { +#ifdef HAVE_SHL_CLOSE + return shl_unload((shl_t)handle); +#else return 0; +#endif } #endif -- cgit