diff options
author | Andrea Corallo <akrl@sdf.org> | 2021-12-15 15:47:14 +0100 |
---|---|---|
committer | Andrea Corallo <akrl@sdf.org> | 2021-12-15 15:55:01 +0100 |
commit | e6b93245fe41731173854e48441614881478c9cf (patch) | |
tree | 76fe619400dbdb44ae08300e5c3dcefe9089f59f /src/dynlib.c | |
parent | 5a057f6716e6991a60968e48f849da57a0339735 (diff) | |
download | emacs-e6b93245fe41731173854e48441614881478c9cf.tar.gz |
Have 'dlopen' use RTLD_GLOBAL in 'dynlib_open'
* src/pdumper.c (dump_do_dump_relocation): Use 'dynlib_open_for_eln'
in place of 'dynlib_open'.
* src/dynlib.h (dynlib_open_for_eln): Declare it.
* src/dynlib.c (dynlib_open_for_eln): New function.
(dynlib_open): Add RTLD_GLOBAL.
* src/comp.c (Fnative_elisp_load): Use 'dynlib_open_for_eln' in place
of 'dynlib_open'.
Diffstat (limited to 'src/dynlib.c')
-rw-r--r-- | src/dynlib.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/dynlib.c b/src/dynlib.c index a8c88439615..e9a775f2d3c 100644 --- a/src/dynlib.c +++ b/src/dynlib.c @@ -104,6 +104,12 @@ dynlib_open (const char *dll_fname) return (dynlib_handle_ptr) hdll; } +dynlib_handle_ptr +dynlib_open_for_eln (const char *dll_fname) +{ + return dynlib_open (dll_fname); +} + void * dynlib_sym (dynlib_handle_ptr h, const char *sym) { @@ -270,6 +276,12 @@ dynlib_close (dynlib_handle_ptr h) dynlib_handle_ptr dynlib_open (const char *path) { + return dlopen (path, RTLD_LAZY | RTLD_GLOBAL); +} + +dynlib_handle_ptr +dynlib_open_for_eln (const char *path) +{ return dlopen (path, RTLD_LAZY); } |