With your last patches, I get decent test results for libitm on Solaris 11/x86, both with Sun as/ld and gas/Sun ld:
=== libitm tests === Running target unix FAIL: libitm.c/clone-1.c execution test FAIL: libitm.c/memcpy-1.c execution test FAIL: libitm.c/memset-1.c execution test WARNING: libitm.c++/static_ctor.C compilation failed to produce executable === libitm Summary for unix === # of expected passes 20 # of unexpected failures 3 # of expected failures 5 Running target unix/-m64 FAIL: libitm.c/clone-1.c execution test FAIL: libitm.c++/eh-1.C execution test WARNING: libitm.c++/static_ctor.C compilation failed to produce executable === libitm Summary for unix/-m64 === # of expected passes 21 # of unexpected failures 2 # of expected failures 5 === libitm Summary === # of expected passes 41 # of unexpected failures 5 # of expected failures 10 With the exception of the 64-bit libitm.c++/eh-1.C failure, they match what I see on x86_64-unknown-linux-gnu. This also means the current lack of CFI support in Sun as doesn't make a difference. To check the worst possible case, I've also tried Solaris 8/x86, also with Sun as and gas, but ran into a couple of problems with Sun as: * It doesn't understand .hidden (and older versions of ld may not, either, cf. gcc/configure.ac (gcc_cv_as_hidden). One would probably have to move the test to a common place to avoid duplicating it. For the moment, I've just #if 0'ed the .hidden. * Later, libitm.so fails to link: Text relocation remains referenced against symbol offset in file GTM_begin_transaction 0x20 .libs/sjlj.o ld: fatal: relocations remain against allocatable but non-writable sections which is true, but doesn't happen on S8 with gas or S11 with either as or gas. I've cheated, removed the -z text from libtool, and linked with -mimpure-text. With those hacks, I can link libitm.so, but all execution tests fail to link due to PR middle-end/50598. With gas and Sun ld, on the other hand, testsuite results are good: === libitm tests === Running target unix FAIL: libitm.c/clone-1.c execution test FAIL: libitm.c/memcpy-1.c execution test FAIL: libitm.c/memset-1.c execution test FAIL: libitm.c++/eh-1.C execution test WARNING: libitm.c++/static_ctor.C compilation failed to produce executable === libitm Summary === # of expected passes 19 # of unexpected failures 4 # of expected failures 5 Only the failure of 32-bit libitm.c++/eh-1.C differs from the Solaris 11 results above. Rainer -- ----------------------------------------------------------------------------- Rainer Orth, Center for Biotechnology, Bielefeld University