[MacPorts] #38814: libstdcxx and binaries linked against it can have conflicting emutls (one copy in libstdc++.dylib and one copy in libgcc_s.dylib)

MacPorts noreply at macports.org
Mon Apr 15 13:06:39 PDT 2013


#38814: libstdcxx and binaries linked against it can have conflicting emutls (one
copy in libstdc++.dylib and one copy in libgcc_s.dylib)
------------------------+------------------------
  Reporter:  howarth@…  |      Owner:  jeremyhu@…
      Type:  defect     |     Status:  assigned
  Priority:  Normal     |  Milestone:
 Component:  ports      |    Version:  2.1.3
Resolution:             |   Keywords:
      Port:  libstdcxx  |
------------------------+------------------------

Comment (by jeremyhu@…):

 Without being able to look at how FSF implements emutls (due to it being
 GPL3), I can only assume that the issue here is that one copy registers
 some data in its TLD and the other copy is trying to find that data in its
 TLD.  It therefore misses, and the application crashes.

 This would similarly be the case if you tried to cross between gcc46's
 libgcc_s.dylib and gcc47's libgcc_s.dylib's emutls support.

 Thus I think the best solution is probably to have libstdc++.dylib link
 against a dynamic libgcc runtime instead of statically.

 That being said, I don't think that libgcc should be provided by the
 libstdcxx port.  It should be provided by a libgcc subport.

 I will wait to do this work until after gcc48 is stable and gcc49 is added
 to MacPorts.

-- 
Ticket URL: <https://trac.macports.org/ticket/38814#comment:9>
MacPorts <http://www.macports.org/>
Ports system for OS X


More information about the macports-tickets mailing list