[MacPorts] #18894: Internal libboost dependency failure at reference time.
MacPorts
noreply at macports.org
Sun Mar 22 12:34:18 PDT 2009
#18894: Internal libboost dependency failure at reference time.
--------------------------------+-------------------------------------------
Reporter: trog24@… | Owner: macports-tickets@…
Type: defect | Status: new
Priority: Normal | Milestone: Port Bugs
Component: ports | Version: 1.7.0
Keywords: | Port:
--------------------------------+-------------------------------------------
Comment(by mcalhoun@…):
I think the following (from the ld man page) seems relevant:
{{{
Two-level namespace
By default all references resolved to a dynamic library record the
library to which they were resolved. At runtime, dyld uses that
informa-
tion to directly resolve symobls. The alternative is to use the
-flat_namespace option. With flat namespace, the library is not
recorded. At runtime, dyld will search each dynamic library in load
order when resolving symbols. This is slower, but more like how other
operating systems resolve symbols.
Indirect dynamic libraries
If the command line specifies to link against dylib A, and when dylib
A
was built it linked against dylib B, then B is considered an indirect
dylib. When linking for two-level namespace, ld does not look at
indi-
rect dylibs, except when re-exported by a direct dylibs. On the
other
hand when linking for flat namespace, ld does load all indirect
dylibs
and uses them to resolve references. Even though indirect dylibs are
specified via a full path, ld first uses the specified search paths
to
locate each indirect dylib. If one cannot be found using the search
paths, the full path is used.
}}}
So it seems that -flat_namespace makes the linker behave more like
Linux,[[BR]]
although the man page says it is slower.
--
Ticket URL: <http://trac.macports.org/ticket/18894#comment:8>
MacPorts <http://www.macports.org/>
Ports system for Mac OS
More information about the macports-tickets
mailing list