httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Wilfredo Sánchez <wsanc...@MIT.EDU>
Subject Fwd: DSO broken on MacOS X 10.1
Date Wed, 07 Nov 2001 03:02:38 GMT
   Forgot to cc: the new-httpd.


Begin forwarded message:

> From: Wilfredo Sánchez <wsanchez@MIT.EDU>
> Date: Tue Nov 06, 2001  11:45:31  AM US/Pacific
> To: Sander Temme <>
> Cc: Justin Erenkrantz <>, <>, 
> <>
> Subject: Re: DSO broken on MacOS X 10.1
> On Sunday, November 4, 2001, at 10:44  AM, Sander Temme wrote:
>> Also, and this is also a question for the Darwin guys, is it necessary 
>> that
>> Apache be built with a two-level namespace? I think (but could be 
>> wrong)
>> that the Apache code is well protected from a namespace point of view 
>> and
>> shouldn't clash with anything else on the system.
>   Two-level namespace is this linker notion from the classic Mac OS 
> world.  I'm not a fan.  I've talked to the guy who maintained cctools 
> (dyld/ld/libtool) and had to implement this.  The only upside for us 
> BSD types to using it is some nominal protection against libraries you 
> use adding new symbols.
>   Say that you link against a library (say, for example, the C library) 
> and you define a symbol foo.  If libc later defines a symbol foo, 
> because libraries are dynamic, in the flat namespace, you'll try to 
> load it, get a multiply defined symbol error, and crap out.  With flat 
> namespace, you still run.  However, attempting to relink the program 
> (the ld step) will still generate a hard error.  The idea is you still 
> get binary compatibility, but not that you can continue to ignore the 
> issue.
>   Anyway, in order for DSOs (bundles, in Darwin parlance) to link with 
> tthis support in place, they need to know the symbols in the loading 
> program, so you have to specify that on the link line with, for 
> example, "-bundle_loader /usr/sbin/apache" or some such.  The problem 
> for Apache (2.0) is that GNU libtool doesn't have a good mechanism to 
> provide such a flag and it means the bundles have to be built after the 
> loading program, which is not how making Unix things compile.
>   The conclusion I am drawing is that GNU libtool should add 
> -flat_namespace to the link line by default and that we should 
> generally stick to flat namespace.
> 	-Fred

View raw message