[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: ports/94826: [patch] Very slow startup for libtool ltdl clients (eg
From: |
Ralf Wildenhues |
Subject: |
Re: ports/94826: [patch] Very slow startup for libtool ltdl clients (eg gnucash) |
Date: |
Thu, 23 Mar 2006 23:40:36 +0100 |
User-agent: |
Mutt/1.5.9i |
* Peter Jeremy wrote on Wed, Mar 22, 2006 at 07:42:33PM CET:
> On Wed, 2006-Mar-22 17:28:11 +0100, Ralf Wildenhues wrote:
>
> >Thanks for the patch. A question before I apply it: this should work on
> >DragonFly as well, right? Could somebody confirm this, to avoid another
> >bug report to this end?
>
> joerg found the problem using KDE on DragonFly.
>
> >Also, has the FreeBSD rtld always supported loading dependent libraries
> >upon dlopen() (including honoring DT_RPATH entries in the module) or was
> >this not working at some point in the past?
>
> AFAIK, it's worked since FreeBSD transitioned to ELF (FreeBSD3.0). I'm
> not sure about the a.out rtld but FreeBSD 2.x is ancient history.
OK, thanks. FWIW, for the historically interested,
http://www.freebsd.org/cgi/cvsweb.cgi/src/libexec/rtld-aout/Attic/rtld.c?hideattic=0
indicates this to be working in aout from rev. 1.25, backported to
FreeBSD 2.1.
I've applied the following patches into Libtool branch-1-5 and HEAD,
respectively. Thanks again.
Cheers,
Ralf
branch-1-5:
* ltdl.m4 (AC_LTDL_SYS_DLOPEN_DEPLIBS) [ freebsd, dragonfly ]:
Set libltdl_cv_sys_dlopen_deplibs to yes. Fixes excessive
lt_dlopen times on these systems.
* NEWS, THANKS: Update.
Bug reported by Peter Jeremy <address@hidden>,
patch by Joerg Sonnenberger <address@hidden>.
Index: NEWS
===================================================================
RCS file: /cvsroot/libtool/libtool/NEWS,v
retrieving revision 1.109.2.44
diff -u -r1.109.2.44 NEWS
--- NEWS 16 Mar 2006 20:48:52 -0000 1.109.2.44
+++ NEWS 23 Mar 2006 19:27:05 -0000
@@ -6,6 +6,9 @@
* Fix regression on OpenBSD, NetBSD, DragonFly, and other systems
with hardcode_direct=yes that wrongly removed paths to uninstalled
libraries during link mode.
+* Let libltdl know that FreeBSD and DragonFly dlopen causes dependent
+ modules to be loaded. This fixes excessive load times for modules
+ with large library dependency graphs.
* Bug Fixes.
New in 1.5.22: 2005-12-18; CVS version 1.5.21a, Libtool team:
Index: THANKS
===================================================================
RCS file: /cvsroot/libtool/libtool/THANKS,v
retrieving revision 1.34.2.17
diff -u -r1.34.2.17 THANKS
--- THANKS 16 Mar 2006 20:48:52 -0000 1.34.2.17
+++ THANKS 23 Mar 2006 19:27:05 -0000
@@ -102,6 +102,7 @@
Patrick Welche address@hidden
Paul Eggert address@hidden
Peter Eisentraut address@hidden
+ Peter Jeremy address@hidden
Rainer Orth address@hidden
Ralf Menzel address@hidden
Robert Ögren address@hidden
Index: ltdl.m4
===================================================================
RCS file: /cvsroot/libtool/libtool/Attic/ltdl.m4,v
retrieving revision 1.47.2.11
diff -u -r1.47.2.11 ltdl.m4
--- ltdl.m4 18 Dec 2005 22:14:06 -0000 1.47.2.11
+++ ltdl.m4 23 Mar 2006 19:27:05 -0000
@@ -127,6 +127,9 @@
# If you are looking for one http://www.opendarwin.org/projects/dlcompat
libltdl_cv_sys_dlopen_deplibs=yes
;;
+ freebsd* | dragonfly*)
+ libltdl_cv_sys_dlopen_deplibs=yes
+ ;;
gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu)
# GNU and its variants, using gnu ld.so (Glibc)
libltdl_cv_sys_dlopen_deplibs=yes
HEAD:
* libltdl/m4/ltdl.m4 (LT_SYS_DLOPEN_DEPLIBS) [ freebsd ]
[ dragonfly ]: Set libltdl_cv_sys_dlopen_deplibs to yes.
Fixes excessive lt_dlopen times on these systems.
* NEWS, THANKS: Update.
Bug reported by Peter Jeremy <address@hidden>,
patch by Joerg Sonnenberger <address@hidden>.
Index: NEWS
===================================================================
RCS file: /cvsroot/libtool/libtool/NEWS,v
retrieving revision 1.191
diff -u -r1.191 NEWS
--- NEWS 12 Jan 2006 22:02:55 -0000 1.191
+++ NEWS 23 Mar 2006 09:47:43 -0000
@@ -20,7 +20,7 @@
* Support for linux-dietlibc (`diet' as well as `diet-dyn', separately).
* Shell optimizations which break use of the stdin file descriptor in libtool.
* `libtoolize --install' now also installs `install-sh'.
-* Support (mostly) for DragonFly BSD.
+* Support for DragonFly BSD, improved support for FreeBSD.
* Allow shell special characters like `$' in source file names, but not
in object names, to enhance GCJ support.
* Detection of compiler wrappers like distcc/ccache and $host_alias prefix.
Index: THANKS
===================================================================
RCS file: /cvsroot/libtool/libtool/THANKS,v
retrieving revision 1.54
diff -u -r1.54 THANKS
--- THANKS 16 Mar 2006 20:47:54 -0000 1.54
+++ THANKS 23 Mar 2006 09:47:43 -0000
@@ -102,6 +102,7 @@
Patrick Welche address@hidden
Paul Eggert address@hidden
Peter Eisentraut address@hidden
+ Peter Jeremy address@hidden
Rainer Orth address@hidden
Ralf Menzel address@hidden
Robert Ögren address@hidden
Index: libltdl/m4/ltdl.m4
===================================================================
RCS file: /cvsroot/libtool/libtool/libltdl/m4/ltdl.m4,v
retrieving revision 1.25
diff -u -r1.25 ltdl.m4
--- libltdl/m4/ltdl.m4 20 Nov 2005 08:45:54 -0000 1.25
+++ libltdl/m4/ltdl.m4 23 Mar 2006 09:47:43 -0000
@@ -341,6 +341,9 @@
# If you are looking for one http://www.opendarwin.org/projects/dlcompat
lt_cv_sys_dlopen_deplibs=yes
;;
+ freebsd* | dragonfly*)
+ lt_cv_sys_dlopen_deplibs=yes
+ ;;
gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu)
# GNU and its variants, using gnu ld.so (Glibc)
lt_cv_sys_dlopen_deplibs=yes