Subject: Re: HEADS UP: migration to fully dynamic linked "base" system
To: NetBSD-current Discussion List <email@example.com>
From: Greywolf <firstname.lastname@example.org>
Date: 08/26/2002 14:55:05
On Mon, 26 Aug 2002, Greg A. Woods wrote:
# The implementation of decent locale support does NOT _need_ dynamic
# loading. That's just a quick and dirty cheap hack, not the only way to
# do the things necessary for full locale support. I don't have all the
# answers for locale support, but I know all-dynamic systems are not the
# only way to go.
I'm going to break again from my long standing tradition and agree with
Greg on this one.
I can see dlopen() being fairly necessary for fetching things which are
likely to expand over time, such as authentication support.
But for locales? Obviously I am not understanding locale support
correctly, for if I were, I probably wouldn't be asking all these
stupid questions. The last time I looked at locale things, they were
text-ish files compiled down into other files which were then put into
directories which were subsequently referenced by envariables.
In short, we consult an envariable which tells us which locale to
reference, which is then looked up by a getlocale() or some such, the
end result of which is an open() done on a file containing strings in
a particular order. If the locale changes order, why is there not then
a meta-file describing the order in which the locale representations
appear? [I'm thinking simplistically at the moment, thinking of things
like sys_errlist, signal messages and the like.]
What is dlopen() gaining us, in terms of locales, that /etc/locale.conf
wouldn't give us? There is something I'm clearly missing, here.
The only reason thus far which makes sense in any way, shape or form for
the availability of dlopen() is authentication, which is, in its extents,
far more mutable from immediately recognisable than is the locale goop.
And I think I'm branching a bit far afield from the original topic.
[Oh, and to the zealots in either direction out there, in case it's not
clear -- I'm not necessarily arguing that this shouldn't be done, but I
am arguing that it shouldn't be enforced (I may not agree with the way
you run your system, but I will defend to the death your right to so
run it :) Bill Sommerfeld's suggestion on LD_STATIC_BIN (probably more
accurately termed LD_STATIC_ROOT) has already addressed this.]