aboutsummaryrefslogtreecommitdiffstats
path: root/src/dynlib.c
diff options
context:
space:
mode:
authorPaul Eggert2015-11-23 18:48:42 -0800
committerPaul Eggert2015-11-23 19:01:51 -0800
commitda8c7ca2647d2e111a415f59c6b59053a19bdb61 (patch)
tree04dd13e37031bbee8b6ff6c0365db28b846c5a5c /src/dynlib.c
parentceaca7bec6adf5735d51c1ca7efea5a2e05f470e (diff)
downloademacs-da8c7ca2647d2e111a415f59c6b59053a19bdb61.tar.gz
emacs-da8c7ca2647d2e111a415f59c6b59053a19bdb61.zip
Port better to FreeBSD’s dlfunc vs dlsym
This avoids warnings when converting between void * and function pointers, which strict C11 does not allow. * configure.ac (dlfunc): Check for existence. * src/dynlib.c (dlfunc) [!HAVE_DLFUNC]: New macro. (dynlib_func): New function. * src/dynlib.h (dynlib_function_ptr, dynlib_func): New decls. * src/emacs-module.c (Fmodule_load): Use dynlib_func, not dynlib_sym, for function pointers.
Diffstat (limited to 'src/dynlib.c')
-rw-r--r--src/dynlib.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/dynlib.c b/src/dynlib.c
index 47ffb418140..a41bed847bb 100644
--- a/src/dynlib.c
+++ b/src/dynlib.c
@@ -206,3 +206,13 @@ dynlib_close (dynlib_handle_ptr h)
206#error "No dynamic loading for this system" 206#error "No dynamic loading for this system"
207 207
208#endif 208#endif
209
210#if !HAVE_DLFUNC
211# define dlfunc dynlib_sym
212#endif
213
214dynlib_function_ptr
215dynlib_func (dynlib_handle_ptr h, const char *sym)
216{
217 return (dynlib_function_ptr) dlfunc (h, sym);
218}