From 1c231f259b4a3709e7b191813ffbba8364c9df4a Mon Sep 17 00:00:00 2001 From: Alexandre Oliva Date: Mon, 4 Sep 2000 01:53:05 +0000 Subject: [PATCH] * libltdl/ltdl.c (lt_dlopen): Set dlname from library_names if dlname is empty. --- ChangeLog | 3 +++ libltdl/ltdl.c | 18 +++++++++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 166c94595..28050bfa8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2000-09-03 Alexandre Oliva + * libltdl/ltdl.c (lt_dlopen): Set dlname from library_names if + dlname is empty. + * libltdl/configure.in (HAVE_LIBDL): Look for dlopen in -lsvld. * ltconfig.in: Likewise. diff --git a/libltdl/ltdl.c b/libltdl/ltdl.c index 4d75e02e5..aec38497d 100644 --- a/libltdl/ltdl.c +++ b/libltdl/ltdl.c @@ -1,5 +1,5 @@ /* ltdl.c -- system independent dlopen wrapper - Copyright (C) 1998-1999 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc. Originally by Thomas Tanner This file is part of GNU Libtool. @@ -1318,6 +1318,22 @@ lt_dlopen (filename) else if (strcmp(line, "installed=no\n") == 0) installed = 0; + else +# undef STR_LIBRARY_NAMES +# define STR_LIBRARY_NAMES "library_names=" + if (! dlname && + strncmp(line, STR_LIBRARY_NAMES, + sizeof(STR_LIBRARY_NAMES) - 1) == 0) { + char *last_libname; + error = trim(&dlname, + &line[sizeof(STR_LIBRARY_NAMES) - 1]); + if (! error && dlname && + (last_libname = strrchr(dlname, ' ')) != NULL) { + last_libname = strdup(last_libname + 1); + free(dlname); + dlname = last_libname; + } + } if (error) break; } -- 2.47.3