Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 4 Mar 2008 08:42:47 +0000
From:      Roy Marles <roy@marples.name>
To:        freebsd-gnome@freebsd.org
Subject:   Re: Evolution crawls on FreeBSD
Message-ID:  <200803040842.47946.roy@marples.name>
In-Reply-To: <20080303001237.28a45ba9.jylefort@brutele.be>
References:  <20080301181608.5d393e02.ejcerejo@optonline.net> <1204424514.1262.36.camel@shumai.marcuscom.com> <20080303001237.28a45ba9.jylefort@brutele.be>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sunday 02 March 2008 23:12:37 Jean-Yves Lefort wrote:
> Indeed, a casual inspection of libexec/rtdl-elf/rtld.c shows that the
> SO_NEEDED lists (Obj_Entry.needed) are walked recursively. Removing
> the useless entries might therefore have a dramatic impact on
> performance.

One thing that may help here is allowing the use of cutsom LDFLAGS - 
namely -Wl,--as-needed. This removes SO_NEEDED references when the library 
really isn't needed. For a more indepth discussion on the benefits of this, 
read this article [1]. I had a quick look at ports, but it doesn't seem to 
honor LDFLAGS in any port. Sadly most of the world needs to be compiled with 
this LDFLAG for it to really work, so I didn't look much futher. FreeBSD base 
system compiles fine with it though :)

You should also note that as-needed isn't a default Gentoo build option but a 
lot of people use it safely and it's one of the optimisations developers try 
an fix.

It's also useful to note that on Gentoo/FreeBSD-6.2 this problem does not 
exist at all. Yes, I'm very aware that G/FBSD isn't FBSD, as we backported 
some patches from 7 and make some of our own. One of these patches was to 
rtld.c, available here [2]

Thanks

Roy


[1] http://www.gentoo.org/proj/en/qa/asneeded.xml

[2] 
http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-freebsd/freebsd-libexec/files/freebsd-libexec-6.1-libfallback.patch?annotate=1.2



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200803040842.47946.roy>