17#include "apr_arch_dso.h"
23#if !defined(DSO_USE_DLFCN) && !defined(DSO_USE_SHL) && !defined(DSO_USE_DYLD)
24#error No DSO implementation specified.
37#if defined(DSO_USE_DYLD)
38#define DYLD_LIBRARY_HANDLE (void *)-1
46 (*aprdso)->handle =
osdso;
47 (*aprdso)->pool =
pool;
65#if defined(DSO_USE_SHL)
67#elif defined(DSO_USE_DYLD)
71#elif defined(DSO_USE_DLFCN)
83#if defined(DSO_USE_SHL)
86#elif defined(DSO_USE_DYLD)
94#if defined(NSLINKMODULE_OPTION_RETURN_ON_ERROR) && defined(NSLINKMODULE_OPTION_NONE)
116 err_msg =
"cannot create object file image or add library";
119#elif defined(DSO_USE_DLFCN)
120#if defined(OSF1) || defined(SEQUENT) || defined(SNI) ||\
121 (defined(__FreeBSD_version) && (__FreeBSD_version >= 220000)) ||\
122 defined(__DragonFly__)
146#if defined(DSO_USE_SHL)
149#elif defined(DSO_USE_DYLD)
152#elif defined(DSO_USE_DLFCN)
153 (*res_handle)->errormsg =
dlerror();
158 (*res_handle)->handle = (
void*)
os_handle;
159 (*res_handle)->pool =
pool;
160 (*res_handle)->errormsg =
NULL;
176#if defined(DSO_USE_SHL)
189#elif defined(DSO_USE_DYLD)
194#ifdef NSLINKMODULE_OPTION_PRIVATE
205 if (symbol ==
NULL) {
206 handle->errormsg =
"undefined symbol";
211 handle->errormsg =
"cannot resolve symbol";
216#elif defined(DSO_USE_DLFCN)
218#if defined(DLSYM_NEEDS_UNDERSCORE)
220 char *symbol = (
char*)
malloc(
sizeof(
char)*(strlen(
symname)+2));
224#elif defined(SEQUENT) || defined(SNI)
246 return dso->errormsg;
APR Portability Routines.
request_rec int int apr_table_t const char * path
apr_pool_t const char apr_dbd_t ** handle
const char apr_ssize_t int flags
const void apr_status_t(*) apr_status_t(* APR_DECLARE)(void) apr_pool_pre_cleanup_register(apr_pool_t *p
const char int apr_pool_t * pool
#define apr_pcalloc(p, size)
void * apr_os_dso_handle_t
static apr_status_t dso_cleanup(void *thedso)