[Zope-dev] compiling Zope 2.4.1 on Mac OS 10.1

Matthew T. Kromer matt@zope.com
Mon, 01 Oct 2001 10:12:02 -0400


Mitchell L Model wrote:

> Trouble compiling Zope 2.4.1 on Mac OS 10.1:
>
>     tried 'python wo_pcgi' with both a Python 2.2a4 I just made and
>     with my previous Python 2.1, both with and without sudo
>
>     cc  -bundle -undefined suppress  ./ExtensionClass.o   -o
>     ./ExtensionClass.so
>
>     /usr/bin/ld: -undefined error must be used when
>     -twolevel_namespace is in effect
>
>     [...]
>
>
> The 'two-level namespace' business is a change from the OX X developer 
> tools version 10.0 to 10.1.
>
>
> Anyone know what's going on here and how to fix it?
>
Well, besides the obvious that MacOS 10.1 is only hot-off-the-shelves 
for a few hours, the problem is that the dynamic loader under Darwin 
used a flat namespace to load ALL shared libraries into (does Windows do 
the same? I dont know) whereas most Unixes load each shared library with 
its own namespace [which is a bit of a technical abstraction and hand 
waving].  It sure looks to me like Apple is trying to fix the namespace 
collision problems with dyld, with that -twolevel_namespace (which 
sounds like a funky namespace munger).  My best guess at noodling the 
error message is that it means "your library must use the symbol 
'undefined error'" when the loader goes to load a name from the library 
and it is not present.  It may be that there is something like a 
interrogation call to the library -- "do you have member X?" -- rather 
than what I'm used to, which is the loader looking in the library's 
table of contents.  I suspect, but dont know, that it has to do with how 
Objective C methods get bound dynamically.


Thats not a very helpful response, but until I go to an Apple store to 
get OS 10.1, I can't see it in action or read the docs.