On 02/08/2012 12:12 AM, Jack Howarth wrote:
I believe the remaining libitm.c++/eh-1.C execution test failures are due to
the weakref linker bug currently in Xcode 4.x (radr://10466868) which I hae been
told will be fixed in the next Xcode release after Xcode 4.3.
Jack
Humm... In fact, not completely. Of course, if the linker was working,
the HAVE_ELF_STYLE_WEAKREF will be defined and no problem.
Otherwise in the eh-1.c, we can see that _ITM_cxa_allocation_exception
is using the dummy function __cxa_allocation_exception defined into
eh_cpp.cc but not the one from libstdc++. There is no dynamic symbol
resolution since the function is defined in the file.
I do not really know why those functions are defined here, I think it
may causes more problems than it solves for darwin.
When Rainer introduced this, he mentioned "on Tru64 UNIX. Of course it
cannot work to provide only a single dummy function, but all weak
definitions must be backed by dummy definitions on that platform."
http://patchwork.ozlabs.org/patch/126007/
Iain mentioned this when he introduced the dummy def for darwin:
*** FWIW, weakref actually work (at runtime) for earlier Darwin
- it's just that refs either need to be satisfied by dummies at link time -
- or the library namespace has to be flattened (which is generally
undesirable).
I think refs (from libstdc++) should be satisfied at link time with
-lstdc++ but probably I am missing something?
Note that removing definitions in eh_cpp.cc make the test passes.
Thanks guys!
--
Patrick.