From: Peter Eisentraut Date: Mon, 23 Apr 2001 21:16:38 +0000 (+0000) Subject: * doc/PLATFORMS: With this patch, freebsd4.3 passes the test X-Git-Tag: release-1-4~10 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3a75446c04f3279cee30571dd3f9c0b3fe5d3156;p=thirdparty%2Flibtool.git * doc/PLATFORMS: With this patch, freebsd4.3 passes the test suite. * libltdl/ltdl.c (lt_dlexit): Quit loop if only resident modules are left. --- diff --git a/ChangeLog b/ChangeLog index 39c7b8126..b8b35ca33 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2001-04-23 Peter Eisentraut + + * doc/PLATFORMS: With this patch, freebsd4.3 passes the test + suite. + * libltdl/ltdl.c (lt_dlexit): Quit loop if only resident modules + are left. + 2001-04-23 Gary V. Vaughan * doc/PLATFORMS: With this patch, my Solaris boxes now pass the diff --git a/doc/PLATFORMS b/doc/PLATFORMS index 5553daadb..1e87c5d25 100644 --- a/doc/PLATFORMS +++ b/doc/PLATFORMS @@ -32,6 +32,7 @@ i*86-*-bsdi2.1 gcc 1.2e NS i*86-pc-cygwin gcc 1.3b NS (egcs-1.1 stock b20.1 compiler) i*86-*-dguxR4.20MU01 gcc 1.2 ok +i*86-*-freebsd4.3 gcc 1.3e ok (1.912) i*86-*-freebsdelf4.0 gcc 1.3c ok (egcs-1.1.2) i*86-*-freebsdelf3.2 gcc 1.3c ok diff --git a/libltdl/ltdl.c b/libltdl/ltdl.c index 5a9ebc41e..8e8f00961 100644 --- a/libltdl/ltdl.c +++ b/libltdl/ltdl.c @@ -1384,11 +1384,14 @@ lt_dlexit () for (level = 1; handles; ++level) { lt_dlhandle cur = handles; + int saw_nonresident = 0; while (cur) { lt_dlhandle tmp = cur; cur = cur->next; + if (!LT_DLIS_RESIDENT (tmp)) + saw_nonresident = 1; if (!LT_DLIS_RESIDENT (tmp) && tmp->info.ref_count <= level) { if (lt_dlclose (tmp)) @@ -1397,6 +1400,9 @@ lt_dlexit () } } } + /* done if only resident modules are left */ + if (!saw_nonresident) + break; } /* close all loaders */