diff options
| author | Paul Eggert | 2015-11-23 18:48:42 -0800 |
|---|---|---|
| committer | Paul Eggert | 2015-11-23 19:01:51 -0800 |
| commit | da8c7ca2647d2e111a415f59c6b59053a19bdb61 (patch) | |
| tree | 04dd13e37031bbee8b6ff6c0365db28b846c5a5c /src/dynlib.c | |
| parent | ceaca7bec6adf5735d51c1ca7efea5a2e05f470e (diff) | |
| download | emacs-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.c | 10 |
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 | |||
| 214 | dynlib_function_ptr | ||
| 215 | dynlib_func (dynlib_handle_ptr h, const char *sym) | ||
| 216 | { | ||
| 217 | return (dynlib_function_ptr) dlfunc (h, sym); | ||
| 218 | } | ||