* dynl.c (DYNL_GLOBAL): New.

(sysdep_dynl_link): Added `flags' argument.
(kw_global, sym_global): New.
(scm_dynamic_link): Handle keyword arguments.  Pass suitable flags
to sysdep_dynl_link.
* dynl-dl.c (sysdep_dynl_link): Handle new `flags' argument by
conditrionally adding RTLD_GLOBAL to DLOPEN_MODES.
* dynl-shl.c (sysdep_dynl_link): Add and ignore new flags
argument.
* dynl-dld.c (sysdep_dynl_link): Add and ignore new flags
argument.
* dynl.h (scm_dynamic_link): Added rest argument.
* dynl.c (sysdep_dynl_unlink, sysdep_dynl_func): Use const
qualifier for char* argument, to match prototypes.  Thanks to Mark
Elbrecht.
This commit is contained in:
Marius Vollmer 1999-06-21 15:14:01 +00:00
commit 56a19408b8
5 changed files with 22 additions and 5 deletions

13
NEWS
View file

@ -46,6 +46,19 @@ in backtraces.
* Changes to Scheme functions and syntax
** The function `dynamic-link' now takes optional keyword arguments.
The only keyword argument that is currently defined is `:global
BOOL'. With it, you can control whether the shared library will be
linked in global mode or not. In global mode, the symbols from the
linked library can be used to resolve references from other
dynamically linked libraries. In non-global mode, the linked
library is essentially invisible and can only be accessed via
`dynamic-func', etc. The default is now to link in global mode.
Previously, the default has been non-global mode.
The `#:global' keyword is only effective on platforms that support
the dlopen family of functions.
** New function `provided?'
- Function: provided? FEATURE