Unfortunate dynamic linking for everything

dyson at iquest.net dyson at iquest.net
Tue Nov 18 17:25:22 PST 2003


Scott Long said:
> On Tue, 18 Nov 2003 dyson at iquest.net wrote:
> > The cool thing about properly implemented shared libs is that not everything
> > has to be shared.  Even the kernel supports runtime loading/addition
> > of modules, and the NSS sounds like a good candidate for a library
> > feature.  Burdening everything with the sparse .data associated with
> > libc seems to be a waste (but, perhaps the performance that was carefully
> > crafted into the codebase is no longer important?)  Really -- it is
> > possible that performance isnt' important anymore, and fully accepting
> > the ongoing loss of performance for features (without careful tradeoffs)
> > might be an appropriate strategy.  (In the case of the NSS stuff, it
> > shouldn't require everything to be built dynamic.)
> 
> Unfortunately, our dynamic linker prevents dlopen() and friends from
> working in a static binary.  There was some talk about having NSS
> lookups happen through a proxy process, but our implementation just
> plain wasn't done that way, and no one has stepped forward with
> alternate code.
> 
It seems like the defect is with the old limitation on the dlopen
things then.  (That limitation has been operative for years.)

Making that decision 6months ago (or whenever the decision was
made) seems to result in sidestepping the best solution (esp
when 6months is alot of time to fix such limitations.) 

Again, I cannot take the responsibility, and mostly trying to
keep 'improvements' from undoing previous work.  I am worried
(really) that there'll be a progressive loss of performance in
order to gain features that could have been implemented with
less impact.  There was ALOT of work in trying to make FreeBSD
very performant, and throwing that away with incrementalism
seems to be wasteful.  I am NOT meaning to negatively criticize,
because that is quite seductive, and I am NOT suggesting that
FreeBSD should have the Plan9 mimalist ethic. :-).

Favorite 'tricky' features will come and go -- but basic system
performance gets harder and hard to recover as time goes on!!!

I guess that all OSes have a size/performance curve where they
get bigger and fatter, SOMETIMES (not always) losing previous
attributes for new features.  Just don't let the performance loss
go too far.  IMO, I wouldn't have supported everything be built
shared if there was a POTENTIAL mitigating solution of a proper
dlopen implementation.  DG would likely have had a 'fit.'

Perhaps there should be a FreeBSD performance (and footprint)
responsibility officer before it becomes too bloated to recover? :-).

John



More information about the freebsd-current mailing list