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.
r~