[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