Message ID | EB3B3361-22F9-4B8A-B567-0376341A4F19@sandoe-acoustics.co.uk |
---|---|
State | New |
Headers | show |
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~
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
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 ;;