[Bug libitm/55693] [4.8 Regression] libitm.c++/eh-1.C execution test fails on darwin from r193271
iains at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Jan 23 20:36:00 GMT 2013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55693
--- Comment #34 from Iain Sandoe <iains at gcc dot gnu.org> 2013-01-23 20:35:47 UTC ---
(In reply to comment #24)
> However, in this case, the references *are* present on the link line (lstdc++)
> but also a duplicate in crttme.o
> since -lstdc++ is on the link line (ahead of crttme.o) - I would expect darwin
> to resolve the __cxa__ symbols from the shared library. It is not doing so -
> and I (or someone) need(s) to re-check the priority of satisfying linkage.
$ nm -mapv /usr/lib/libstdc++.6.dylib |grep __cxa_allo
000452e8 (__TEXT,__text) external ___cxa_allocate_exception
$ nm -mapv /GCC/gcc-live-trunk-build/i686-apple-darwin9/libgcc/crttme.o |grep
__cxa_allo
00000100 (__TEXT,__textcoal_nt) weak external ___cxa_allocate_exception
In fact, since the libstdc++ symbols is NOT weak, and the crttme.o is ...
... ISTR non-weak should override weak - but need to re-RTFM.
if that is the case, one is tempted to speculate that this might be a ld64 bug.
> It might be that naming the crt as a .o forces it to be processed ahead of the
> shared lib. In which case, perhaps we can modify our crttme to be an arch
> containing that single object.
I have a work-around hack in test.
More information about the Gcc-bugs
mailing list