diff options
author | Tim Pierce <twp@skepsis.com> | 1997-11-21 19:39:23 +0000 |
---|---|---|
committer | Tim Pierce <twp@skepsis.com> | 1997-11-21 19:39:23 +0000 |
commit | 2a0d71767f66bb8dd41dd2f4cd4503858891868e (patch) | |
tree | aa7e984116e7d3840acc20c871ed66899db66fa7 /libguile/dynl-dl.c | |
parent | e41530ba095f461acd05973a1d148e0cfc44e509 (diff) | |
download | guile-2a0d71767f66bb8dd41dd2f4cd4503858891868e.tar.gz |
Added support for leading dlsym underscore.
Diffstat (limited to 'libguile/dynl-dl.c')
-rw-r--r-- | libguile/dynl-dl.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/libguile/dynl-dl.c b/libguile/dynl-dl.c index d8fb0c49d..2b619ca61 100644 --- a/libguile/dynl-dl.c +++ b/libguile/dynl-dl.c @@ -87,14 +87,24 @@ sysdep_dynl_func (symb, handle, subr) { void *fptr; char *err; + char *usymb; - fptr = dlsym (handle, symb); + usymb = (char *) malloc (strlen (symb) + 2); +#ifdef DLSYM_ADDS_USCORE + strcpy (usymb, symb); +#else + *usymb = '_'; + strcpy (usymb + 1, symb); +#endif + + fptr = dlsym (handle, usymb); err = (char *)dlerror (); if (!fptr) { SCM_ALLOW_INTS; scm_misc_error (subr, err? err : "symbol has NULL address", SCM_EOL); } + free (usymb); return fptr; } |