svn commit: r334328 - in head/sys/cddl/compat/opensolaris: kern sys
Hans Petter Selasky
hselasky at FreeBSD.org
Tue May 29 13:43:18 UTC 2018
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)
{
More information about the svn-src-head
mailing list