Module Name:    src
Committed By:   joerg
Date:           Tue Jan 28 21:47:48 UTC 2014

Modified Files:
        src/common/lib/libc/atomic: atomic_add_64_cas.c atomic_and_64_cas.c
            atomic_or_64_cas.c

Log Message:
Allow building with clang.
XXX __RENAME is currently not allowed for the kernel, so use plain asm.
Clang rejects definitions of builtins, so it doesn't work without.


To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/common/lib/libc/atomic/atomic_add_64_cas.c
cvs rdiff -u -r1.8 -r1.9 src/common/lib/libc/atomic/atomic_and_64_cas.c \
    src/common/lib/libc/atomic/atomic_or_64_cas.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/common/lib/libc/atomic/atomic_add_64_cas.c
diff -u src/common/lib/libc/atomic/atomic_add_64_cas.c:1.7 src/common/lib/libc/atomic/atomic_add_64_cas.c:1.8
--- src/common/lib/libc/atomic/atomic_add_64_cas.c:1.7	Mon Jan 27 18:29:47 2014
+++ src/common/lib/libc/atomic/atomic_add_64_cas.c	Tue Jan 28 21:47:48 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: atomic_add_64_cas.c,v 1.7 2014/01/27 18:29:47 matt Exp $	*/
+/*	$NetBSD: atomic_add_64_cas.c,v 1.8 2014/01/28 21:47:48 joerg Exp $	*/
 
 /*-
  * Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -35,10 +35,11 @@
 
 #ifdef __HAVE_ATOMIC64_OPS
 
-uint64_t __sync_fetch_and_add_8(volatile uint64_t *, int64_t);
+uint64_t fetch_and_add_8(volatile uint64_t *, uint64_t, ...)
+    asm("__sync_fetch_and_add_8");
 
 uint64_t
-__sync_fetch_and_add_8(volatile uint64_t *addr, int64_t val)
+fetch_and_add_8(volatile uint64_t *addr, uint64_t val, ...)
 {
 	uint64_t old, new;
 
@@ -52,7 +53,7 @@ __sync_fetch_and_add_8(volatile uint64_t
 void
 atomic_add_64(volatile uint64_t *addr, int64_t val)
 {
-   (void) __sync_fetch_and_add_8(addr, val);
+   (void) fetch_and_add_8(addr, val);
 }
 
 #undef atomic_add_64

Index: src/common/lib/libc/atomic/atomic_and_64_cas.c
diff -u src/common/lib/libc/atomic/atomic_and_64_cas.c:1.8 src/common/lib/libc/atomic/atomic_and_64_cas.c:1.9
--- src/common/lib/libc/atomic/atomic_and_64_cas.c:1.8	Mon Jan 27 20:01:50 2014
+++ src/common/lib/libc/atomic/atomic_and_64_cas.c	Tue Jan 28 21:47:48 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: atomic_and_64_cas.c,v 1.8 2014/01/27 20:01:50 matt Exp $	*/
+/*	$NetBSD: atomic_and_64_cas.c,v 1.9 2014/01/28 21:47:48 joerg Exp $	*/
 
 /*-
  * Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -35,10 +35,11 @@
 
 #ifdef __HAVE_ATOMIC64_OPS
 
-uint64_t __sync_fetch_and_and_8(volatile uint64_t *, uint64_t);
+uint64_t fetch_and_and_8(volatile uint64_t *, uint64_t, ...)
+    asm("__sync_fetch_and_and_8");
 
 uint64_t
-__sync_fetch_and_and_8(volatile uint64_t *addr, uint64_t val)
+fetch_and_and_8(volatile uint64_t *addr, uint64_t val, ...)
 {
 	uint64_t old, new;
 
@@ -52,7 +53,7 @@ __sync_fetch_and_and_8(volatile uint64_t
 void
 atomic_and_64(volatile uint64_t *addr, uint64_t val)
 {
-	(void) __sync_fetch_and_and_8(addr, val);
+	(void) fetch_and_and_8(addr, val);
 }
 
 #undef atomic_and_64
Index: src/common/lib/libc/atomic/atomic_or_64_cas.c
diff -u src/common/lib/libc/atomic/atomic_or_64_cas.c:1.8 src/common/lib/libc/atomic/atomic_or_64_cas.c:1.9
--- src/common/lib/libc/atomic/atomic_or_64_cas.c:1.8	Mon Jan 27 20:44:29 2014
+++ src/common/lib/libc/atomic/atomic_or_64_cas.c	Tue Jan 28 21:47:48 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: atomic_or_64_cas.c,v 1.8 2014/01/27 20:44:29 matt Exp $	*/
+/*	$NetBSD: atomic_or_64_cas.c,v 1.9 2014/01/28 21:47:48 joerg Exp $	*/
 
 /*-
  * Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -35,10 +35,11 @@
 
 #ifdef __HAVE_ATOMIC64_OPS
 
-uint64_t __sync_fetch_and_or_8(volatile uint64_t *addr, uint64_t val);
+uint64_t fetch_and_or_8(volatile uint64_t *addr, uint64_t val, ...)
+    asm("__sync_fetch_and_or_8");
 
 uint64_t
-__sync_fetch_and_or_8(volatile uint64_t *addr, uint64_t val)
+fetch_and_or_8(volatile uint64_t *addr, uint64_t val, ...)
 {
 	uint64_t old, new;
 
@@ -52,7 +53,7 @@ __sync_fetch_and_or_8(volatile uint64_t 
 void
 atomic_or_64(volatile uint64_t *addr, uint64_t val)
 {
-	(void) __sync_fetch_and_or_8(addr, val);
+	(void) fetch_and_or_8(addr, val);
 }
 
 #undef atomic_or_64

Reply via email to