[MacPorts] #38732: gcc48 is broken by configure-timespec.patch

MacPorts noreply at macports.org
Thu Apr 11 18:34:34 PDT 2013


#38732: gcc48 is broken by configure-timespec.patch
------------------------+--------------------
  Reporter:  howarth@…  |      Owner:  mww@…
      Type:  defect     |     Status:  closed
  Priority:  Normal     |  Milestone:
 Component:  ports      |    Version:  2.1.3
Resolution:  fixed      |   Keywords:
      Port:  gcc48      |
------------------------+--------------------

Comment (by jeremyhu@…):

 Replying to [comment:26 howarth@…]:
 > See [[BR]]
 >  http://lists.cs.uiuc.edu/pipermail/llvmdev/2009-September/025894.html
 [[BR]]
 >  http://lists.cs.uiuc.edu/pipermail/llvmdev/2009-September/025898.html
 [[BR]]
 >  http://lists.cs.uiuc.edu/pipermail/llvmdev/2009-September/025900.html
 >
 > Also unfortunately, its not that simple as just removing -lgcc_eh from
 the linkage of libstdc++

 I never suggested that.  I suggested removing the unwinding code from
 libgcc_eh since that is what you claimed introduced the conflict, but as
 shown above, it looks like libstdc++.dylib is using the libSystem
 libunwind and not anything from libgcc_eh for unwind.

 > as that will result in undefined symbols for
 ___emutls_v._ZSt11__once_call and[[BR]]
 > ___emutls_v._ZSt15__once_callable when the test case is compiled with
 that build of the compiler. This is because libgcc_eh also provides emutls
 symbols.[[BR]]
 > So you're pretty much stuck with...[[BR]]
 > [[BR]]
 > a) living with the broken exception handling in FSF libstdc++[[BR]]

 Not ideal.

 > b) reverting back to a separate normally linked libstdc++ in each gcc4x
 package[[BR]]

 No, as mentioned before, that is not a possibility.

 > c) attampting to create a libgcc_s splitoff for the newest gcc4x which
 will be used by all the gcc4x packages[[BR]]

 I'd prefer to not have separate libgcc runtime as well.  I was really
 hoping to avoid that, but it's not out of the question.

 > [[BR]]
 > ps We don't normally run into this breakage with -static-gcc because
 when passed to g++, both the static libgcc and libstdc++ are linked
 in.[[BR]]

 You seem to miss the point entirely... each binary would then have its
 *own* C++ runtime in this situation, and all of them would conflict, so
 libQT would have a separate C++ runtime than myQTApp, and passing objects
 between them would be a nightmare.

 > So while the wrong unwinder is used

 Are you sure about that?  As I showed above, libstdc++.dylib is resolving
 its Unwind* symbols to libSystem...

 > , the code doesn't break because only a single unwinder is used.[[BR]]

 Uh, no... multiple would (one per image)

 > pps Relying on static linkage on darwin has always been fringe behavior
 because Apple has always discouraged and minimized its use.

 Yes, which is why I don't provide a libstdc++.a in the package, but it's
 perfectly acceptable to use static archives within a single project to
 help collect and organize submodules.

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


More information about the macports-tickets mailing list