This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [trans-mem,darwin] PR/52042 find tm_clone_table with PIE


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]