parent
f78d33c9cf
commit
c89dfa73b6
|
@ -463,13 +463,13 @@ case "$host_os" in
|
||||||
AC_CHECK_FUNCS([dlopen], [res="yes"], [res="no"])
|
AC_CHECK_FUNCS([dlopen], [res="yes"], [res="no"])
|
||||||
if test "x${res}" = "xyes" ; then
|
if test "x${res}" = "xyes" ; then
|
||||||
AC_CHECK_FUNCS([dladdr], [AC_DEFINE(HAVE_DLADDR)])
|
AC_CHECK_FUNCS([dladdr], [AC_DEFINE(HAVE_DLADDR)])
|
||||||
|
AC_DEFINE(HAVE_DLOPEN)
|
||||||
else
|
else
|
||||||
AC_CHECK_LIB([dl], [dlopen], [res="yes"], [res="no"])
|
AC_CHECK_LIB([dl], [dlopen], [res="yes"], [res="no"])
|
||||||
if test "x${res}" = "xyes" ; then
|
if test "x${res}" = "xyes" ; then
|
||||||
AC_CHECK_LIB([dl], [dladdr], [AC_DEFINE(HAVE_DLADDR)])
|
AC_CHECK_LIB([dl], [dladdr], [AC_DEFINE(HAVE_DLADDR)])
|
||||||
|
AC_DEFINE(HAVE_DLOPEN)
|
||||||
dlopen_libs="-ldl"
|
dlopen_libs="-ldl"
|
||||||
else
|
|
||||||
AC_MSG_ERROR([Cannot find dlopen])
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
|
@ -46,7 +46,9 @@ void *alloca (size_t);
|
||||||
# include <libgen.h>
|
# include <libgen.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_DLOPEN
|
||||||
# include <dlfcn.h>
|
# include <dlfcn.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_EVIL
|
#ifdef HAVE_EVIL
|
||||||
# include <Evil.h>
|
# include <Evil.h>
|
||||||
|
@ -313,6 +315,7 @@ EAPI Eina_Bool eina_module_free(Eina_Module *m)
|
||||||
|
|
||||||
EAPI Eina_Bool eina_module_load(Eina_Module *m)
|
EAPI Eina_Bool eina_module_load(Eina_Module *m)
|
||||||
{
|
{
|
||||||
|
#ifdef HAVE_DLOPEN
|
||||||
void *dl_handle;
|
void *dl_handle;
|
||||||
Eina_Module_Init *initcall;
|
Eina_Module_Init *initcall;
|
||||||
|
|
||||||
|
@ -352,10 +355,14 @@ loaded:
|
||||||
|
|
||||||
eina_error_set(0);
|
eina_error_set(0);
|
||||||
return EINA_TRUE;
|
return EINA_TRUE;
|
||||||
|
#else
|
||||||
|
return EINA_FALSE;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
EAPI Eina_Bool eina_module_unload(Eina_Module *m)
|
EAPI Eina_Bool eina_module_unload(Eina_Module *m)
|
||||||
{
|
{
|
||||||
|
#ifdef HAVE_DLOPEN
|
||||||
Eina_Module_Shutdown *shut;
|
Eina_Module_Shutdown *shut;
|
||||||
EINA_SAFETY_ON_NULL_RETURN_VAL(m, EINA_FALSE);
|
EINA_SAFETY_ON_NULL_RETURN_VAL(m, EINA_FALSE);
|
||||||
|
|
||||||
|
@ -375,13 +382,20 @@ EAPI Eina_Bool eina_module_unload(Eina_Module *m)
|
||||||
}
|
}
|
||||||
|
|
||||||
return EINA_FALSE;
|
return EINA_FALSE;
|
||||||
|
#else
|
||||||
|
return EINA_FALSE;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
EAPI void *eina_module_symbol_get(const Eina_Module *m, const char *symbol)
|
EAPI void *eina_module_symbol_get(const Eina_Module *m, const char *symbol)
|
||||||
{
|
{
|
||||||
|
#ifdef HAVE_DLOPEN
|
||||||
EINA_SAFETY_ON_NULL_RETURN_VAL(m, NULL);
|
EINA_SAFETY_ON_NULL_RETURN_VAL(m, NULL);
|
||||||
EINA_SAFETY_ON_NULL_RETURN_VAL(m->handle, NULL);
|
EINA_SAFETY_ON_NULL_RETURN_VAL(m->handle, NULL);
|
||||||
return dlsym(m->handle, symbol);
|
return dlsym(m->handle, symbol);
|
||||||
|
#else
|
||||||
|
return NULL;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
EAPI const char *eina_module_file_get(const Eina_Module *m)
|
EAPI const char *eina_module_file_get(const Eina_Module *m)
|
||||||
|
|
Loading…
Reference in New Issue