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]