From mboxrd@z Thu Jan 1 00:00:00 1970 From: pbonzini@redhat.com (Paolo Bonzini) Date: Mon, 15 Feb 2010 20:04:33 +0100 Subject: [ltt-dev] [PATCH 00/12] provide default definition of uatomic builtins Message-ID: <1266260686-17588-1-git-send-email-pbonzini@redhat.com> So here we go with v2. Changes are: - tests/api.h also symlinked - uatomic_gcc.h renamed to uatomic_defaults.h as even architectures that don't want __sync_* builtins use it - improved comments about mc/rmc/wmc in urcu/arch_defaults.h - changed BITS_PER_LONG patch since __SIZEOF_LONG__ was newer than I thought, placed this patch at the end so you can omit it easily if NACKed (requires GCC 3.4 on 64-bit systems, nothing on 32-bit) - added back assembly code for PPC and S390 so that those platforms do not need __sync_* builtins (SPARC and x86 didn't already in v1) - added implementation of uatomic_exchange using __sync_bool_compare_and_swap (same trick S390 is using in the assembly implementation) - patch 11 is new As in v1, the last patch is not to be committed. In the next days/week, I'll try to build it on more machines and using old GCCs, but I cannot promise anything right now... Paolo Bonzini (12): use kernel style makefile output use autoconf symbolic linking add urcu/arch_defaults.h define sync_core for x86 PIC remove compat_uatomic_cmpxchg #define from non-x86 add uatomic_defaults.h, use it for default definitions use uatomic_defaults.h for common fallback implementations move whether atomic byte/short exists to uatomic_arch_*.h add Alpha support support compiling on unknown architectures avoid multiple evaluation of STORE_SHARED argument centralize definition of BITS_PER_LONG test uatomic_defaults.h Makefile.am | 15 +-- configure.ac | 24 +++- tests/Makefile.am | 12 -- tests/test_uatomic.c | 13 +-- urcu/arch_alpha.h | 48 ++++++ urcu/arch_defaults.h | 132 ++++++++++++++++ urcu/arch_ppc.h | 54 +------ urcu/arch_s390.h | 50 +------ urcu/arch_sparc64.h | 55 +------- urcu/arch_x86.h | 68 ++------- urcu/compiler.h | 8 + urcu/system.h | 4 +- urcu/uatomic_arch_alpha.h | 32 ++++ urcu/uatomic_arch_ppc.h | 29 +---- urcu/uatomic_arch_s390.h | 71 +--------- urcu/uatomic_arch_sparc64.h | 112 +------------- urcu/uatomic_arch_x86.h | 41 ++---- urcu/uatomic_defaults.h | 354 +++++++++++++++++++++++++++++++++++++++++++ 18 files changed, 634 insertions(+), 488 deletions(-)