Date: Tue, 29 May 2018 13:43:17 +0000 (UTC) From: Hans Petter Selasky <hselasky@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r334328 - in head/sys/cddl/compat/opensolaris: kern sys Message-ID: <201805291343.w4TDhHTr041061@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: hselasky Date: Tue May 29 13:43:16 2018 New Revision: 334328 URL: https://svnweb.freebsd.org/changeset/base/334328 Log: Fix 32-bit buildworld for i386 after r334320. The 64-bit atomics defined for i386 are currently only available in the kernel space. Found by: cy@ MFC after: 1 week Sponsored by: Mellanox Technologies Modified: head/sys/cddl/compat/opensolaris/kern/opensolaris_atomic.c head/sys/cddl/compat/opensolaris/sys/atomic.h Modified: head/sys/cddl/compat/opensolaris/kern/opensolaris_atomic.c ============================================================================== --- head/sys/cddl/compat/opensolaris/kern/opensolaris_atomic.c Tue May 29 13:24:42 2018 (r334327) +++ head/sys/cddl/compat/opensolaris/kern/opensolaris_atomic.c Tue May 29 13:43:16 2018 (r334328) @@ -53,7 +53,7 @@ atomic_init(void) #endif #if !defined(__LP64__) && !defined(__mips_n32) && \ - !defined(ARM_HAVE_ATOMIC64) && !defined(__i386__) + !defined(ARM_HAVE_ATOMIC64) && !defined(I386_HAVE_ATOMIC64) void atomic_add_64(volatile uint64_t *target, int64_t delta) { Modified: head/sys/cddl/compat/opensolaris/sys/atomic.h ============================================================================== --- head/sys/cddl/compat/opensolaris/sys/atomic.h Tue May 29 13:24:42 2018 (r334327) +++ head/sys/cddl/compat/opensolaris/sys/atomic.h Tue May 29 13:43:16 2018 (r334328) @@ -36,8 +36,12 @@ atomic_cmpset_ptr((volatile uintptr_t *)(_a), (uintptr_t)(_b), (uintptr_t) (_c)) #define cas32 atomic_cmpset_32 +#if defined(__i386__) && (defined(_KERNEL) || defined(KLD_MODULE)) +#define I386_HAVE_ATOMIC64 +#endif + #if !defined(__LP64__) && !defined(__mips_n32) && \ - !defined(ARM_HAVE_ATOMIC64) && !defined(__i386__) + !defined(ARM_HAVE_ATOMIC64) && !defined(I386_HAVE_ATOMIC64) extern void atomic_add_64(volatile uint64_t *target, int64_t delta); extern void atomic_dec_64(volatile uint64_t *target); #endif @@ -87,7 +91,7 @@ atomic_dec_32_nv(volatile uint32_t *target) } #if defined(__LP64__) || defined(__mips_n32) || \ - defined(ARM_HAVE_ATOMIC64) || defined(__i386__) + defined(ARM_HAVE_ATOMIC64) || defined(I386_HAVE_ATOMIC64) static __inline void atomic_dec_64(volatile uint64_t *target) {
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201805291343.w4TDhHTr041061>