I confess to not having tested this because I don't have all the required infrastructure to build.
autoreconf: running: /usr/bin/autoconf --force configure.ac:58: error: possibly undefined macro: AC_LIBTOOL_WIN32_DLL If this token and others are legitimate, please use m4_pattern_allow. See the Autoconf documentation. configure.ac:77: error: possibly undefined macro: AC_LIBTOOL_DLOPEN configure.ac:78: error: possibly undefined macro: AC_PROG_LIBTOOL configure.ac:898: error: possibly undefined macro: AM_GNU_GETTEXT P.S. Would you please be kind enough to rename your bootstrap script to "bootstrap"? Occasionally, folks ask me for help with their bootstrap scripts because I maintain autogen. Thanks. diff --git a/libguile/dynl.c b/libguile/dynl.c index 72305a4..ae1f795 100644 --- a/libguile/dynl.c +++ b/libguile/dynl.c @@ -81,7 +81,25 @@ sysdep_dynl_link (const char *fname, const char *subr) lt_dlhandle handle; if (fname != NULL) - handle = lt_dlopenext (fname); + { + char * buf; + + handle = lt_dlopenext (fname); + if (handle == NULL) + do + { + static char const ext_dir[] = SCM_EXTENSIONS_DIR; + static char const lib_dir[] = SCM_LIB_DIR; + buf = alloca (max(sizeof (ext_dir), sizeof (lib_dir)) + + strlen (fname) + 1); // fault on failure + sprintf (buf, "%s/%s", lib_dir, fname); + handle = lt_dlopenext (buf); + if (handle != NULL) + break; + sprintf (buf, "%s/%s", ext_dir, fname); + handle = lt_dlopenext (buf); + } while (0); + } else /* Return a handle for the program as a whole. */ handle = lt_dlopen (NULL); @@ -152,26 +170,15 @@ sysdep_dynl_init () lt_dlinit (); env = getenv ("GUILE_SYSTEM_EXTENSIONS_PATH"); - if (env && strcmp (env, "") == 0) - /* special-case interpret system-ltdl-path=="" as meaning no system path, - which is the case during the build */ - ; - else if (env) + if (env == NULL) + return; + + /* special-case interpret system-ltdl-path=="" as meaning no system path, + which is the case during the build */ + if (*env != '\0') /* FIXME: should this be a colon-separated path? Or is the only point to allow the build system to turn off the installed extensions path? */ lt_dladdsearchdir (env); - else - { - /* Add SCM_LIB_DIR and SCM_EXTENSIONS_DIR to the loader's search - path. `lt_dladdsearchdir' and $LTDL_LIBRARY_PATH can't be used - for that because they are searched before the system-dependent - search path, which is the one `libtool --mode=execute -dlopen' - fiddles with (info "(libtool) Libltdl Interface"). See - <http://lists.gnu.org/archive/html/guile-devel/2010-11/msg00095.html> - for details. */ - augment_env (SHARED_LIBRARY_PATH_VARIABLE, SCM_LIB_DIR); - augment_env (SHARED_LIBRARY_PATH_VARIABLE, SCM_EXTENSIONS_DIR); - } } scm_t_bits scm_tc16_dynamic_obj;