[libdispatch-dev] [PATCH] Add --enable-optimized and --disable-debug & set --march properly

Robert Watson rwatson at FreeBSD.org
Fri Sep 25 02:55:16 PDT 2009

On Tue, 15 Sep 2009, Peter O'Gorman wrote:

> Richard Salz wrote:
>>> Abstracting that nicely proves tricky, so we'll be stuck with some or
>> another
>>> hackish solution regardless :-).
>> You'll probably have to compile/link a small test program and see if it 
>> runs, right?  Making that happen in autoconf can be considered hackish, I 
>> guess...
> Not tested on fbsd (where I assume you needed it), -march is not needed for 
> __sync_lock_test_and_set() on either my Mac OS X or Linux systems.

I've committed this patch but with some modifications. 
__sync_lock_test_and_set() doesn't require at least -march=i486, so I 
substituted __sync_add_and_fetch().  That also didn't work, as it turns out 
you can implement the atomic add on i386 w/o -march=i486 as well, so I had to 
check the return value in order to force gcc to fall back on (unimplemented) 
library symbols.  Probably, we should try testing the need for -march=i486 
only on i386 hardware, but I'm not sure it makes too much difference.

In any case, this should fix the build problem on x86_64 systems.

Robert N M Watson
Computer Laboratory
University of Cambridge

More information about the libdispatch-dev mailing list