Package: libatomic-ops-dev
Version: 1.2-4
Severity: wishlist
Please add (or request from upstream) 32-bit operations on 64-bit
platforms. For example, right now AO_HAVE_int_compare_and_swap is only
defined on ia64, not amd64 or any other 64-bit platform.
I think this should be possible to do in a non-arch-dependent header as
follows:
* Block the 64-bit aligned address of the 32-bit object
* Load, compare, and swap just the 32-bit portion in question
(using 32-bit fields in standard_ao_double_t.h)
* Unblock the 64-bit aligned address
The only thing this approach would lose is the ability to simultaneously
compare-and-swap two adjacent 32-bit values, but right now that's not
possible anyway. But it may be less straightforward, and in any case, I
don't know how to do it.
Background: OpenMPI requires 32-bit atomic operations for several
functions. It implements these in assembly on about half of the
architectures in Debian. To get it to work, one approach is to use
libatomic-ops-dev instead of upstream assembler. But that doesn't work
on non-ia64 64-bit architectures for the reason above.
Thank you,
-Adam
--
GPG fingerprint: D54D 1AEE B11C CE9B A02B C5DD 526F 01E8 564E E4B6
Engineering consulting with open source tools
http://www.opennovation.com/
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]