On 9 Nov 2011, at 17:01, Richard Henderson wrote:

On 11/09/2011 08:14 AM, Iain Sandoe wrote:
On i686-darwin9 it fails with "target only supports weak alias"
(I need to understand better where that comes from - but the machine is tied up right now).

This is fixed. I removed the alias in favor of a plain function for portability.
I also added PR 51065 to track the automatic optimization possibility.

On x86_64-darwin10 it fails to build sjlj.S because that file makes
use of assembler constructs not available on the system as (I think
Rainer perhaps already observed this for some solaris versions).

Testing a fix for the cfi pseudos now.

That won't totally fix darwin, because there are also elf-specific pseudos as well (e.g. ".type"). I'll crib a patch together for that from cross-compiled examples for you to test later.

I had a quick look at config/x86/target.h and observe that the jmpbuf
layout in that header is different from the system definition...

Irrelevant. It's a local jmpbuf for the local definition in sjlj.S. Which is Special because we're actually recording the state for an outer frame. One can NOT use the system setjmp/longjmp to implement libitm.

Index: libitm/configure.tgt
===================================================================
--- libitm/configure.tgt    (revision 181206)
+++ libitm/configure.tgt    (working copy)
@@ -93,10 +93,14 @@ case "${target}" in
  *-*-gnu* | *-*-k*bsd*-gnu \
  | *-*-netbsd* | *-*-freebsd* | *-*-openbsd* \
| *-*-solaris2* | *-*-sysv4* | *-*-irix6* | *-*-osf* | *-*- hpux11* \
-  | *-*-darwin* | *-*-aix*)
+  | *-*-aix*)
    # POSIX system.  The OS is supported.
    ;;

+  *-*-darwin*)    # POSIX, but needs some work.
+    UNSUPPORTED=1
+    ;;
+
  *)    # Non-POSIX, or embedded system
    UNSUPPORTED=1

If you want to commit that right away, that's fine by me.

I'll hang on .. and test stuff ;-)

cheers
Iain

Reply via email to