]> git.ipfire.org Git - thirdparty/libtool.git/commitdiff
* doc/PLATFORMS: With this patch, freebsd4.3 passes the test
authorPeter Eisentraut <peter_e@gmx.net>
Mon, 23 Apr 2001 21:16:38 +0000 (21:16 +0000)
committerGary V. Vaughan <gary@gnu.org>
Mon, 23 Apr 2001 21:16:38 +0000 (21:16 +0000)
suite.
* libltdl/ltdl.c (lt_dlexit): Quit loop if only resident modules
are left.

ChangeLog
doc/PLATFORMS
libltdl/ltdl.c

index 39c7b8126c7b2b005ccc88ada8d15793fc04d212..b8b35ca333a9ce4430d1ecb6d4d257d547f398f2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2001-04-23  Peter Eisentraut  <peter_e@gmx.net>
+
+       * 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  <gvv@techie.com>
 
        * doc/PLATFORMS:  With this patch, my Solaris boxes now pass the
index 5553daadb7389029b485bbbbe185b3126fe87c3c..1e87c5d259cf5026dcfde20277760dd04cb685ce 100644 (file)
@@ -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
index 5a9ebc41e01b20678142f9b08c5a3efd745c6411..8e8f00961e35c378d42855cdabcb76a1ad246ded 100644 (file)
@@ -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 */