Module Name:    src
Committed By:   martin
Date:           Sat Feb 22 17:08:30 UTC 2014

Modified Files:
        src/common/lib/libc/arch/arm/atomic: atomic_add_32.S atomic_and_32.S
            atomic_op_asm.h atomic_or_32.S
        src/common/lib/libc/arch/m68k/atomic: atomic_add.S atomic_and.S
            atomic_cas.S atomic_nand.S atomic_op_asm.h atomic_or.S atomic_sub.S
            atomic_swap.S atomic_xor.S
        src/common/lib/libc/atomic: atomic_add_32_cas.c atomic_add_32_nv_cas.c
            atomic_add_64_nv_cas.c atomic_and_32_cas.c atomic_and_32_nv_cas.c
            atomic_and_64_nv_cas.c atomic_init_testset.c atomic_op_namespace.h
            atomic_or_32_cas.c atomic_or_32_nv_cas.c atomic_or_64_nv_cas.c
            atomic_swap_32_cas.c atomic_swap_64_cas.c membar_ops_nop.c

Log Message:
Try to hide the C runtime implementation specific __sync_* ops from librump,
to avoid duplicates.


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/common/lib/libc/arch/arm/atomic/atomic_add_32.S \
    src/common/lib/libc/arch/arm/atomic/atomic_and_32.S \
    src/common/lib/libc/arch/arm/atomic/atomic_or_32.S
cvs rdiff -u -r1.4 -r1.5 src/common/lib/libc/arch/arm/atomic/atomic_op_asm.h
cvs rdiff -u -r1.8 -r1.9 src/common/lib/libc/arch/m68k/atomic/atomic_add.S
cvs rdiff -u -r1.9 -r1.10 src/common/lib/libc/arch/m68k/atomic/atomic_and.S \
    src/common/lib/libc/arch/m68k/atomic/atomic_cas.S \
    src/common/lib/libc/arch/m68k/atomic/atomic_or.S
cvs rdiff -u -r1.1 -r1.2 src/common/lib/libc/arch/m68k/atomic/atomic_nand.S \
    src/common/lib/libc/arch/m68k/atomic/atomic_sub.S \
    src/common/lib/libc/arch/m68k/atomic/atomic_xor.S
cvs rdiff -u -r1.3 -r1.4 src/common/lib/libc/arch/m68k/atomic/atomic_op_asm.h
cvs rdiff -u -r1.7 -r1.8 src/common/lib/libc/arch/m68k/atomic/atomic_swap.S
cvs rdiff -u -r1.7 -r1.8 src/common/lib/libc/atomic/atomic_add_32_cas.c \
    src/common/lib/libc/atomic/atomic_swap_64_cas.c
cvs rdiff -u -r1.5 -r1.6 src/common/lib/libc/atomic/atomic_add_32_nv_cas.c \
    src/common/lib/libc/atomic/atomic_op_namespace.h \
    src/common/lib/libc/atomic/atomic_or_32_nv_cas.c \
    src/common/lib/libc/atomic/atomic_swap_32_cas.c
cvs rdiff -u -r1.6 -r1.7 src/common/lib/libc/atomic/atomic_add_64_nv_cas.c \
    src/common/lib/libc/atomic/atomic_and_32_nv_cas.c \
    src/common/lib/libc/atomic/atomic_and_64_nv_cas.c \
    src/common/lib/libc/atomic/atomic_or_64_nv_cas.c \
    src/common/lib/libc/atomic/membar_ops_nop.c
cvs rdiff -u -r1.8 -r1.9 src/common/lib/libc/atomic/atomic_and_32_cas.c \
    src/common/lib/libc/atomic/atomic_or_32_cas.c
cvs rdiff -u -r1.12 -r1.13 src/common/lib/libc/atomic/atomic_init_testset.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/arch/arm/atomic/atomic_add_32.S
diff -u src/common/lib/libc/arch/arm/atomic/atomic_add_32.S:1.6 src/common/lib/libc/arch/arm/atomic/atomic_add_32.S:1.7
--- src/common/lib/libc/arch/arm/atomic/atomic_add_32.S:1.6	Fri Nov  8 22:42:52 2013
+++ src/common/lib/libc/arch/arm/atomic/atomic_add_32.S	Sat Feb 22 17:08:30 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: atomic_add_32.S,v 1.6 2013/11/08 22:42:52 matt Exp $	*/
+/*	$NetBSD: atomic_add_32.S,v 1.7 2014/02/22 17:08:30 martin Exp $	*/
 
 /*-
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -56,7 +56,7 @@ ATOMIC_OP_ALIAS(atomic_add_32,_atomic_ad
 ATOMIC_OP_ALIAS(atomic_add_int,_atomic_add_32)
 ATOMIC_OP_ALIAS(atomic_add_long,_atomic_add_32)
 ATOMIC_OP_ALIAS(atomic_add_ptr,_atomic_add_32)
-STRONG_ALIAS(__sync_fetch_and_add_4,_atomic_add_32)
+CRT_ALIAS(__sync_fetch_and_add_4,_atomic_add_32)
 STRONG_ALIAS(_atomic_add_int,_atomic_add_32)
 STRONG_ALIAS(_atomic_add_long,_atomic_add_32)
 STRONG_ALIAS(_atomic_add_ptr,_atomic_add_32)
@@ -65,7 +65,7 @@ ATOMIC_OP_ALIAS(atomic_sub_32,_atomic_su
 ATOMIC_OP_ALIAS(atomic_sub_int,_atomic_sub_32)
 ATOMIC_OP_ALIAS(atomic_sub_long,_atomic_sub_32)
 ATOMIC_OP_ALIAS(atomic_sub_ptr,_atomic_sub_32)
-STRONG_ALIAS(__sync_fetch_and_sub_4,_atomic_sub_32)
+CRT_ALIAS(__sync_fetch_and_sub_4,_atomic_sub_32)
 STRONG_ALIAS(_atomic_sub_int,_atomic_sub_32)
 STRONG_ALIAS(_atomic_sub_long,_atomic_sub_32)
 STRONG_ALIAS(_atomic_sub_ptr,_atomic_sub_32)
@@ -92,7 +92,7 @@ ATOMIC_OP_ALIAS(atomic_add_32_nv,_atomic
 ATOMIC_OP_ALIAS(atomic_add_int_nv,_atomic_add_32_nv)
 ATOMIC_OP_ALIAS(atomic_add_long_nv,_atomic_add_32_nv)
 ATOMIC_OP_ALIAS(atomic_add_ptr_nv,_atomic_add_32_nv)
-STRONG_ALIAS(__sync_add_and_fetch_4,_atomic_add_32_nv)
+CRT_ALIAS(__sync_add_and_fetch_4,_atomic_add_32_nv)
 STRONG_ALIAS(_atomic_add_int_nv,_atomic_add_32_nv)
 STRONG_ALIAS(_atomic_add_long_nv,_atomic_add_32_nv)
 STRONG_ALIAS(_atomic_add_ptr_nv,_atomic_add_32_nv)
@@ -101,7 +101,7 @@ ATOMIC_OP_ALIAS(atomic_sub_32_nv,_atomic
 ATOMIC_OP_ALIAS(atomic_sub_int_nv,_atomic_sub_32_nv)
 ATOMIC_OP_ALIAS(atomic_sub_long_nv,_atomic_sub_32_nv)
 ATOMIC_OP_ALIAS(atomic_sub_ptr_nv,_atomic_sub_32_nv)
-STRONG_ALIAS(__sync_sub_and_fetch_4,_atomic_sub_32_nv)
+CRT_ALIAS(__sync_sub_and_fetch_4,_atomic_sub_32_nv)
 STRONG_ALIAS(_atomic_sub_int_nv,_atomic_sub_32_nv)
 STRONG_ALIAS(_atomic_sub_long_nv,_atomic_sub_32_nv)
 STRONG_ALIAS(_atomic_sub_ptr_nv,_atomic_sub_32_nv)
Index: src/common/lib/libc/arch/arm/atomic/atomic_and_32.S
diff -u src/common/lib/libc/arch/arm/atomic/atomic_and_32.S:1.6 src/common/lib/libc/arch/arm/atomic/atomic_and_32.S:1.7
--- src/common/lib/libc/arch/arm/atomic/atomic_and_32.S:1.6	Fri Nov  8 22:42:52 2013
+++ src/common/lib/libc/arch/arm/atomic/atomic_and_32.S	Sat Feb 22 17:08:30 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: atomic_and_32.S,v 1.6 2013/11/08 22:42:52 matt Exp $	*/
+/*	$NetBSD: atomic_and_32.S,v 1.7 2014/02/22 17:08:30 martin Exp $	*/
 
 /*-
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -51,7 +51,7 @@ END(_atomic_and_32)
 ATOMIC_OP_ALIAS(atomic_and_32,_atomic_and_32)
 ATOMIC_OP_ALIAS(atomic_and_uint,_atomic_and_32)
 ATOMIC_OP_ALIAS(atomic_and_ulong,_atomic_and_32)
-STRONG_ALIAS(__sync_fetch_and_and_4,_atomic_and_32)
+CRT_ALIAS(__sync_fetch_and_and_4,_atomic_and_32)
 STRONG_ALIAS(_atomic_and_uint,_atomic_and_32)
 STRONG_ALIAS(_atomic_and_ulong,_atomic_and_32)
 
@@ -73,7 +73,7 @@ END(_atomic_and_32_nv)
 ATOMIC_OP_ALIAS(atomic_and_32_nv,_atomic_and_32_nv)
 ATOMIC_OP_ALIAS(atomic_and_uint_nv,_atomic_and_32_nv)
 ATOMIC_OP_ALIAS(atomic_and_ulong_nv,_atomic_and_32_nv)
-STRONG_ALIAS(__sync_and_and_fetch_4,_atomic_and_32_nv)
+CRT_ALIAS(__sync_and_and_fetch_4,_atomic_and_32_nv)
 STRONG_ALIAS(_atomic_and_uint_nv,_atomic_and_32_nv)
 STRONG_ALIAS(_atomic_and_ulong_nv,_atomic_and_32_nv)
 
Index: src/common/lib/libc/arch/arm/atomic/atomic_or_32.S
diff -u src/common/lib/libc/arch/arm/atomic/atomic_or_32.S:1.6 src/common/lib/libc/arch/arm/atomic/atomic_or_32.S:1.7
--- src/common/lib/libc/arch/arm/atomic/atomic_or_32.S:1.6	Fri Nov  8 22:42:52 2013
+++ src/common/lib/libc/arch/arm/atomic/atomic_or_32.S	Sat Feb 22 17:08:30 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: atomic_or_32.S,v 1.6 2013/11/08 22:42:52 matt Exp $	*/
+/*	$NetBSD: atomic_or_32.S,v 1.7 2014/02/22 17:08:30 martin Exp $	*/
 /*-
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -50,7 +50,7 @@ END(_atomic_or_32)
 ATOMIC_OP_ALIAS(atomic_or_32,_atomic_or_32)
 ATOMIC_OP_ALIAS(atomic_or_uint,_atomic_or_32)
 ATOMIC_OP_ALIAS(atomic_or_ulong,_atomic_or_32)
-STRONG_ALIAS(__sync_fetch_and_or_4,_atomic_or_32)
+CRT_ALIAS(__sync_fetch_and_or_4,_atomic_or_32)
 STRONG_ALIAS(_atomic_or_uint,_atomic_or_32)
 STRONG_ALIAS(_atomic_or_ulong,_atomic_or_32)
 
@@ -72,7 +72,7 @@ END(_atomic_or_32_nv)
 ATOMIC_OP_ALIAS(atomic_or_32_nv,_atomic_or_32_nv)
 ATOMIC_OP_ALIAS(atomic_or_uint_nv,_atomic_or_32_nv)
 ATOMIC_OP_ALIAS(atomic_or_ulong_nv,_atomic_or_32_nv)
-STRONG_ALIAS(__sync_or_and_fetch_4,_atomic_or_32_nv)
+CRT_ALIAS(__sync_or_and_fetch_4,_atomic_or_32_nv)
 STRONG_ALIAS(_atomic_or_uint_nv,_atomic_or_32_nv)
 STRONG_ALIAS(_atomic_or_ulong_nv,_atomic_or_32_nv)
 

Index: src/common/lib/libc/arch/arm/atomic/atomic_op_asm.h
diff -u src/common/lib/libc/arch/arm/atomic/atomic_op_asm.h:1.4 src/common/lib/libc/arch/arm/atomic/atomic_op_asm.h:1.5
--- src/common/lib/libc/arch/arm/atomic/atomic_op_asm.h:1.4	Fri Nov  8 22:42:52 2013
+++ src/common/lib/libc/arch/arm/atomic/atomic_op_asm.h	Sat Feb 22 17:08:30 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: atomic_op_asm.h,v 1.4 2013/11/08 22:42:52 matt Exp $	*/
+/*	$NetBSD: atomic_op_asm.h,v 1.5 2014/02/22 17:08:30 martin Exp $	*/
 
 /*-
  * Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -44,10 +44,16 @@
 #if defined(_KERNEL)
 
 #define	ATOMIC_OP_ALIAS(a,s)	STRONG_ALIAS(a,s)
+#ifdef _HARDKERNEL
+#define	CRT_ALIAS(a,s)	STRONG_ALIAS(a,s)
+#endif
 
 #else /* _KERNEL */
 
 #define	ATOMIC_OP_ALIAS(a,s)	WEAK_ALIAS(a,s)
+#ifdef _LIBC
+#define	CRT_ALIAS(a,s)	STRONG_ALIAS(a,s)
+#endif
 
 #endif /* _KERNEL */
 
@@ -67,4 +73,8 @@
 #define	THI	r5
 #endif
 
+#ifndef CRT_ALIAS
+#define	CRT_ALIAS(a,s)
+#endif
+
 #endif /* _ATOMIC_OP_ASM_H_ */

Index: src/common/lib/libc/arch/m68k/atomic/atomic_add.S
diff -u src/common/lib/libc/arch/m68k/atomic/atomic_add.S:1.8 src/common/lib/libc/arch/m68k/atomic/atomic_add.S:1.9
--- src/common/lib/libc/arch/m68k/atomic/atomic_add.S:1.8	Thu Feb 20 20:39:01 2014
+++ src/common/lib/libc/arch/m68k/atomic/atomic_add.S	Sat Feb 22 17:08:30 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: atomic_add.S,v 1.8 2014/02/20 20:39:01 martin Exp $	*/
+/*	$NetBSD: atomic_add.S,v 1.9 2014/02/22 17:08:30 martin Exp $	*/
 
 /*-
  * Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -66,7 +66,7 @@ ATOMIC_OP_ALIAS(atomic_add_long_nv,_atom
 STRONG_ALIAS(_atomic_add_long_nv,_atomic_add_32_nv)
 ATOMIC_OP_ALIAS(atomic_add_ptr_nv,_atomic_add_32_nv)
 STRONG_ALIAS(_atomic_add_ptr_nv,_atomic_add_32_nv)
-STRONG_ALIAS(__sync_add_and_fetch_4,_atomic_add_32_nv)
+CRT_ALIAS(__sync_add_and_fetch_4,_atomic_add_32_nv)
 
 ENTRY(__sync_fetch_and_add_4)
 	movl	4(%sp), %a0
@@ -89,7 +89,7 @@ ENTRY(_atomic_add_16_nv)
 	rts
 END(_atomic_add_16_nv)
 
-STRONG_ALIAS(__sync_add_and_fetch_2,_atomic_add_16_nv)
+CRT_ALIAS(__sync_add_and_fetch_2,_atomic_add_16_nv)
 
 ENTRY(__sync_fetch_and_add_2)
 	movl	4(%sp), %a0
@@ -111,7 +111,7 @@ ENTRY(_atomic_add_8_nv)
 	rts
 END(_atomic_add_8_nv)
 
-STRONG_ALIAS(__sync_add_and_fetch_1,_atomic_add_8_nv)
+CRT_ALIAS(__sync_add_and_fetch_1,_atomic_add_8_nv)
 
 ENTRY(__sync_fetch_and_add_1)
 	movl	4(%sp), %a0

Index: src/common/lib/libc/arch/m68k/atomic/atomic_and.S
diff -u src/common/lib/libc/arch/m68k/atomic/atomic_and.S:1.9 src/common/lib/libc/arch/m68k/atomic/atomic_and.S:1.10
--- src/common/lib/libc/arch/m68k/atomic/atomic_and.S:1.9	Thu Feb 20 20:39:01 2014
+++ src/common/lib/libc/arch/m68k/atomic/atomic_and.S	Sat Feb 22 17:08:30 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: atomic_and.S,v 1.9 2014/02/20 20:39:01 martin Exp $	*/
+/*	$NetBSD: atomic_and.S,v 1.10 2014/02/22 17:08:30 martin Exp $	*/
 
 /*-
  * Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -64,7 +64,7 @@ ATOMIC_OP_ALIAS(atomic_and_ulong_nv,_ato
 STRONG_ALIAS(_atomic_and_ulong_nv,_atomic_and_32_nv)
 ATOMIC_OP_ALIAS(atomic_and_ptr_nv,_atomic_and_32_nv)
 STRONG_ALIAS(_atomic_and_ptr_nv,_atomic_and_32_nv)
-STRONG_ALIAS(__sync_and_and_fetch_4,_atomic_and_32_nv)
+CRT_ALIAS(__sync_and_and_fetch_4,_atomic_and_32_nv)
 
 ENTRY(__sync_fetch_and_and_4)
 	movl	4(%sp), %a0
@@ -88,7 +88,7 @@ ENTRY(_atomic_and_16_nv)
 	rts
 END(_atomic_and_16_nv)
 
-STRONG_ALIAS(__sync_and_and_fetch_2,_atomic_and_16_nv)
+CRT_ALIAS(__sync_and_and_fetch_2,_atomic_and_16_nv)
 
 ENTRY(__sync_fetch_and_and_2)
 	movl	4(%sp), %a0
@@ -111,7 +111,7 @@ ENTRY(_atomic_and_8_nv)
 	rts
 END(_atomic_and_8_nv)
 
-STRONG_ALIAS(__sync_and_and_fetch_1,_atomic_and_8_nv)
+CRT_ALIAS(__sync_and_and_fetch_1,_atomic_and_8_nv)
 
 ENTRY(__sync_fetch_and_and_1)
 	movl	4(%sp), %a0
Index: src/common/lib/libc/arch/m68k/atomic/atomic_cas.S
diff -u src/common/lib/libc/arch/m68k/atomic/atomic_cas.S:1.9 src/common/lib/libc/arch/m68k/atomic/atomic_cas.S:1.10
--- src/common/lib/libc/arch/m68k/atomic/atomic_cas.S:1.9	Thu Feb 20 16:33:23 2014
+++ src/common/lib/libc/arch/m68k/atomic/atomic_cas.S	Sat Feb 22 17:08:30 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: atomic_cas.S,v 1.9 2014/02/20 16:33:23 martin Exp $	*/
+/*	$NetBSD: atomic_cas.S,v 1.10 2014/02/22 17:08:30 martin Exp $	*/
 
 /*-
  * Copyright (c) 2007, 2008 The NetBSD Foundation, Inc.
@@ -50,7 +50,7 @@ ATOMIC_OP_ALIAS(atomic_cas_ulong,_atomic
 STRONG_ALIAS(_atomic_cas_ulong,_atomic_cas_32)
 ATOMIC_OP_ALIAS(atomic_cas_ptr,_atomic_cas_32)
 STRONG_ALIAS(_atomic_cas_ptr,_atomic_cas_32)
-STRONG_ALIAS(__sync_val_compare_and_swap_4,_atomic_cas_32)
+CRT_ALIAS(__sync_val_compare_and_swap_4,_atomic_cas_32)
 
 ATOMIC_OP_ALIAS(atomic_cas_32_ni,_atomic_cas_32)
 STRONG_ALIAS(_atomic_cas_32_ni,_atomic_cas_32)
@@ -85,7 +85,7 @@ ENTRY(_atomic_cas_16)
 END(_atomic_cas_16)
 
 ATOMIC_OP_ALIAS(atomic_cas_16,_atomic_cas_16)
-STRONG_ALIAS(__sync_val_compare_and_swap_2,_atomic_cas_16)
+CRT_ALIAS(__sync_val_compare_and_swap_2,_atomic_cas_16)
 
 ENTRY(__sync_bool_compare_and_swap_2)
 	movl	4(%sp), %a0
@@ -111,7 +111,7 @@ ENTRY(_atomic_cas_8)
 END(_atomic_cas_8)
 
 ATOMIC_OP_ALIAS(atomic_cas_8,_atomic_cas_8)
-STRONG_ALIAS(__sync_val_compare_and_swap_1,_atomic_cas_8)
+CRT_ALIAS(__sync_val_compare_and_swap_1,_atomic_cas_8)
 
 
 ENTRY(__sync_bool_compare_and_swap_1)
Index: src/common/lib/libc/arch/m68k/atomic/atomic_or.S
diff -u src/common/lib/libc/arch/m68k/atomic/atomic_or.S:1.9 src/common/lib/libc/arch/m68k/atomic/atomic_or.S:1.10
--- src/common/lib/libc/arch/m68k/atomic/atomic_or.S:1.9	Thu Feb 20 20:39:01 2014
+++ src/common/lib/libc/arch/m68k/atomic/atomic_or.S	Sat Feb 22 17:08:30 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: atomic_or.S,v 1.9 2014/02/20 20:39:01 martin Exp $	*/
+/*	$NetBSD: atomic_or.S,v 1.10 2014/02/22 17:08:30 martin Exp $	*/
 
 /*-
  * Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -66,7 +66,7 @@ ATOMIC_OP_ALIAS(atomic_or_ulong_nv,_atom
 STRONG_ALIAS(_atomic_or_ulong_nv,_atomic_or_32_nv)
 ATOMIC_OP_ALIAS(atomic_or_ptr_nv,_atomic_or_32_nv)
 STRONG_ALIAS(_atomic_or_ptr_nv,_atomic_or_32_nv)
-STRONG_ALIAS(__sync_or_and_fetch_4, _atomic_or_32_nv)
+CRT_ALIAS(__sync_or_and_fetch_4, _atomic_or_32_nv)
 
 
 ENTRY(__sync_fetch_and_or_4)
@@ -90,7 +90,7 @@ ENTRY(_atomic_or_16_nv)
 	bne	1b
 	rts
 END(_atomic_or_16_nv)
-STRONG_ALIAS(__sync_or_and_fetch_2, _atomic_or_16_nv)
+CRT_ALIAS(__sync_or_and_fetch_2, _atomic_or_16_nv)
 
 ENTRY(__sync_fetch_and_or_2)
 	movl	4(%sp), %a0
@@ -112,7 +112,7 @@ ENTRY(_atomic_or_8_nv)
 	bne	1b
 	rts
 END(_atomic_or_8_nv)
-STRONG_ALIAS(__sync_or_and_fetch_1, _atomic_or_8_nv)
+CRT_ALIAS(__sync_or_and_fetch_1, _atomic_or_8_nv)
 
 ENTRY(__sync_fetch_and_or_1)
 	movl	4(%sp), %a0

Index: src/common/lib/libc/arch/m68k/atomic/atomic_nand.S
diff -u src/common/lib/libc/arch/m68k/atomic/atomic_nand.S:1.1 src/common/lib/libc/arch/m68k/atomic/atomic_nand.S:1.2
--- src/common/lib/libc/arch/m68k/atomic/atomic_nand.S:1.1	Thu Feb 20 20:39:01 2014
+++ src/common/lib/libc/arch/m68k/atomic/atomic_nand.S	Sat Feb 22 17:08:30 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: atomic_nand.S,v 1.1 2014/02/20 20:39:01 martin Exp $	*/
+/*	$NetBSD: atomic_nand.S,v 1.2 2014/02/22 17:08:30 martin Exp $	*/
 
 /*-
  * Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -58,7 +58,7 @@ ATOMIC_OP_ALIAS(atomic_nand_ulong,_atomi
 STRONG_ALIAS(_atomic_nand_ulong,_atomic_nand_32_nv)
 ATOMIC_OP_ALIAS(atomic_nand_ptr,_atomic_nand_32_nv)
 STRONG_ALIAS(_atomic_nand_ptr,_atomic_nand_32_nv)
-STRONG_ALIAS(__sync_nand_and_fetch_4,_atomic_nand_32_nv)
+CRT_ALIAS(__sync_nand_and_fetch_4,_atomic_nand_32_nv)
 
 ENTRY(__sync_fetch_and_nand_4)
 	movl	4(%sp), %a0
@@ -84,7 +84,7 @@ ENTRY(_atomic_nand_16_nv)
 	rts
 END(_atomic_nand_16_nv)
 
-STRONG_ALIAS(__sync_nand_and_fetch_2,_atomic_nand_16_nv)
+CRT_ALIAS(__sync_nand_and_fetch_2,_atomic_nand_16_nv)
 
 ENTRY(__sync_fetch_and_nand_2)
 	movl	4(%sp), %a0
@@ -109,7 +109,7 @@ ENTRY(_atomic_nand_8_nv)
 	rts
 END(_atomic_nand_8_nv)
 
-STRONG_ALIAS(__sync_nand_and_fetch_1,_atomic_nand_8_nv)
+CRT_ALIAS(__sync_nand_and_fetch_1,_atomic_nand_8_nv)
 
 ENTRY(__sync_fetch_and_nand_1)
 	movl	4(%sp), %a0
Index: src/common/lib/libc/arch/m68k/atomic/atomic_sub.S
diff -u src/common/lib/libc/arch/m68k/atomic/atomic_sub.S:1.1 src/common/lib/libc/arch/m68k/atomic/atomic_sub.S:1.2
--- src/common/lib/libc/arch/m68k/atomic/atomic_sub.S:1.1	Thu Feb 20 20:39:01 2014
+++ src/common/lib/libc/arch/m68k/atomic/atomic_sub.S	Sat Feb 22 17:08:30 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: atomic_sub.S,v 1.1 2014/02/20 20:39:01 martin Exp $	*/
+/*	$NetBSD: atomic_sub.S,v 1.2 2014/02/22 17:08:30 martin Exp $	*/
 
 /*-
  * Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -66,7 +66,7 @@ ATOMIC_OP_ALIAS(atomic_sub_long_nv,_atom
 STRONG_ALIAS(_atomic_sub_long_nv,_atomic_sub_32_nv)
 ATOMIC_OP_ALIAS(atomic_sub_ptr_nv,_atomic_sub_32_nv)
 STRONG_ALIAS(_atomic_sub_ptr_nv,_atomic_sub_32_nv)
-STRONG_ALIAS(__sync_sub_and_fetch_4,_atomic_sub_32_nv)
+CRT_ALIAS(__sync_sub_and_fetch_4,_atomic_sub_32_nv)
 
 ENTRY(__sync_fetch_and_sub_4)
 	movl	4(%sp), %a0
@@ -89,7 +89,7 @@ ENTRY(_atomic_sub_16_nv)
 	rts
 END(_atomic_sub_16_nv)
 
-STRONG_ALIAS(__sync_sub_and_fetch_2,_atomic_sub_16_nv)
+CRT_ALIAS(__sync_sub_and_fetch_2,_atomic_sub_16_nv)
 
 ENTRY(__sync_fetch_and_sub_2)
 	movl	4(%sp), %a0
@@ -111,7 +111,7 @@ ENTRY(_atomic_sub_8_nv)
 	rts
 END(_atomic_sub_8_nv)
 
-STRONG_ALIAS(__sync_sub_and_fetch_1,_atomic_sub_8_nv)
+CRT_ALIAS(__sync_sub_and_fetch_1,_atomic_sub_8_nv)
 
 ENTRY(__sync_fetch_and_sub_1)
 	movl	4(%sp), %a0
Index: src/common/lib/libc/arch/m68k/atomic/atomic_xor.S
diff -u src/common/lib/libc/arch/m68k/atomic/atomic_xor.S:1.1 src/common/lib/libc/arch/m68k/atomic/atomic_xor.S:1.2
--- src/common/lib/libc/arch/m68k/atomic/atomic_xor.S:1.1	Thu Feb 20 20:39:01 2014
+++ src/common/lib/libc/arch/m68k/atomic/atomic_xor.S	Sat Feb 22 17:08:30 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: atomic_xor.S,v 1.1 2014/02/20 20:39:01 martin Exp $	*/
+/*	$NetBSD: atomic_xor.S,v 1.2 2014/02/22 17:08:30 martin Exp $	*/
 
 /*-
  * Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -67,7 +67,7 @@ ATOMIC_OP_ALIAS(atomic_xor_ulong_nv,_ato
 STRONG_ALIAS(_atomic_xor_ulong_nv,_atomic_xor_32_nv)
 ATOMIC_OP_ALIAS(atomic_xor_ptr_nv,_atomic_xor_32_nv)
 STRONG_ALIAS(_atomic_xor_ptr_nv,_atomic_xor_32_nv)
-STRONG_ALIAS(__sync_xor_and_fetch_4, _atomic_xor_32_nv)
+CRT_ALIAS(__sync_xor_and_fetch_4, _atomic_xor_32_nv)
 
 
 ENTRY(__sync_fetch_and_xor_4)
@@ -93,7 +93,7 @@ ENTRY(_atomic_xor_16_nv)
 	bne	1b
 	rts
 END(_atomic_xor_16_nv)
-STRONG_ALIAS(__sync_xor_and_fetch_2, _atomic_xor_16_nv)
+CRT_ALIAS(__sync_xor_and_fetch_2, _atomic_xor_16_nv)
 
 ENTRY(__sync_fetch_and_xor_2)
 	movl	4(%sp), %a0
@@ -117,7 +117,7 @@ ENTRY(_atomic_xor_8_nv)
 	bne	1b
 	rts
 END(_atomic_xor_8_nv)
-STRONG_ALIAS(__sync_xor_and_fetch_1, _atomic_xor_8_nv)
+CRT_ALIAS(__sync_xor_and_fetch_1, _atomic_xor_8_nv)
 
 ENTRY(__sync_fetch_and_xor_1)
 	movl	4(%sp), %a0

Index: src/common/lib/libc/arch/m68k/atomic/atomic_op_asm.h
diff -u src/common/lib/libc/arch/m68k/atomic/atomic_op_asm.h:1.3 src/common/lib/libc/arch/m68k/atomic/atomic_op_asm.h:1.4
--- src/common/lib/libc/arch/m68k/atomic/atomic_op_asm.h:1.3	Mon Apr 28 20:22:52 2008
+++ src/common/lib/libc/arch/m68k/atomic/atomic_op_asm.h	Sat Feb 22 17:08:30 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: atomic_op_asm.h,v 1.3 2008/04/28 20:22:52 martin Exp $	*/
+/*	$NetBSD: atomic_op_asm.h,v 1.4 2014/02/22 17:08:30 martin Exp $	*/
 
 /*-
  * Copyright (c) 2006, 2007 The NetBSD Foundation, Inc.
@@ -37,11 +37,22 @@
 #if defined(_KERNEL)
 
 #define	ATOMIC_OP_ALIAS(a,s)	STRONG_ALIAS(a,s)
+#ifdef _HARDKERNEL
+#define	CRT_ALIAS(a,s)		STRONG_ALIAS(a,s)
+#endif
 
 #else /* _KERNEL */
 
 #define	ATOMIC_OP_ALIAS(a,s)	WEAK_ALIAS(a,s)
+#ifdef _LIBC
+#define	CRT_ALIAS(a,s)		STRONG_ALIAS(a,s)
+#endif
+#endif
 
 #endif /* _KERNEL */
 
+#ifndef CRT_ALIAS
+#define	CRT_ALIAS(a,s)
+#endif
+
 #endif /* _ATOMIC_OP_ASM_H_ */

Index: src/common/lib/libc/arch/m68k/atomic/atomic_swap.S
diff -u src/common/lib/libc/arch/m68k/atomic/atomic_swap.S:1.7 src/common/lib/libc/arch/m68k/atomic/atomic_swap.S:1.8
--- src/common/lib/libc/arch/m68k/atomic/atomic_swap.S:1.7	Tue Feb 18 16:19:28 2014
+++ src/common/lib/libc/arch/m68k/atomic/atomic_swap.S	Sat Feb 22 17:08:30 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: atomic_swap.S,v 1.7 2014/02/18 16:19:28 martin Exp $	*/
+/*	$NetBSD: atomic_swap.S,v 1.8 2014/02/22 17:08:30 martin Exp $	*/
 
 /*-
  * Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -50,7 +50,7 @@ ATOMIC_OP_ALIAS(atomic_swap_ulong,_atomi
 STRONG_ALIAS(_atomic_swap_ulong,_atomic_swap_32)
 ATOMIC_OP_ALIAS(atomic_swap_ptr,_atomic_swap_32)
 STRONG_ALIAS(_atomic_swap_ptr,_atomic_swap_32)
-STRONG_ALIAS(__sync_lock_test_and_set_4,_atomic_swap_32)
+CRT_ALIAS(__sync_lock_test_and_set_4,_atomic_swap_32)
 
 
 ENTRY(_atomic_swap_16)
@@ -63,7 +63,7 @@ ENTRY(_atomic_swap_16)
 	rts
 END(_atomic_swap_16)
 ATOMIC_OP_ALIAS(atomic_swap_16,_atomic_swap_16)
-STRONG_ALIAS(__sync_lock_test_and_set_2,_atomic_swap_16)
+CRT_ALIAS(__sync_lock_test_and_set_2,_atomic_swap_16)
 
 ENTRY(_atomic_swap_8)
 	movl	4(%sp), %a0
@@ -75,4 +75,4 @@ ENTRY(_atomic_swap_8)
 	rts
 END(_atomic_swap_8)
 ATOMIC_OP_ALIAS(atomic_swap_8,_atomic_swap_8)
-STRONG_ALIAS(__sync_lock_test_and_set_1,_atomic_swap_8)
+CRT_ALIAS(__sync_lock_test_and_set_1,_atomic_swap_8)

Index: src/common/lib/libc/atomic/atomic_add_32_cas.c
diff -u src/common/lib/libc/atomic/atomic_add_32_cas.c:1.7 src/common/lib/libc/atomic/atomic_add_32_cas.c:1.8
--- src/common/lib/libc/atomic/atomic_add_32_cas.c:1.7	Wed Jan 29 15:59:11 2014
+++ src/common/lib/libc/atomic/atomic_add_32_cas.c	Sat Feb 22 17:08:30 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: atomic_add_32_cas.c,v 1.7 2014/01/29 15:59:11 joerg Exp $	*/
+/*	$NetBSD: atomic_add_32_cas.c,v 1.8 2014/02/22 17:08:30 martin Exp $	*/
 
 /*-
  * Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -34,7 +34,11 @@
 #include <sys/atomic.h>
 
 uint32_t fetch_and_add_4(volatile uint32_t *, uint32_t, ...)
-    asm("__sync_fetch_and_add_4");
+#if defined(_LIBC) || defined(_HARDKERNEL)
+    asm("__sync_fetch_and_add_4");	/* C runtime internal */
+#else
+    ;
+#endif
 
 uint32_t
 fetch_and_add_4(volatile uint32_t *addr, uint32_t val, ...)
Index: src/common/lib/libc/atomic/atomic_swap_64_cas.c
diff -u src/common/lib/libc/atomic/atomic_swap_64_cas.c:1.7 src/common/lib/libc/atomic/atomic_swap_64_cas.c:1.8
--- src/common/lib/libc/atomic/atomic_swap_64_cas.c:1.7	Fri Feb 21 14:42:09 2014
+++ src/common/lib/libc/atomic/atomic_swap_64_cas.c	Sat Feb 22 17:08:30 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: atomic_swap_64_cas.c,v 1.7 2014/02/21 14:42:09 martin Exp $	*/
+/*	$NetBSD: atomic_swap_64_cas.c,v 1.8 2014/02/22 17:08:30 martin Exp $	*/
 
 /*-
  * Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -49,7 +49,7 @@ atomic_swap_64(volatile uint64_t *addr, 
 
 #undef atomic_swap_64
 atomic_op_alias(atomic_swap_64,_atomic_swap_64)
-__strong_alias(__sync_lock_test_and_set_8,_atomic_swap_64)
+crt_alias(__sync_lock_test_and_set_8,_atomic_swap_64)
 #if defined(_LP64)
 #undef atomic_swap_ulong
 atomic_op_alias(atomic_swap_ulong,_atomic_swap_64)

Index: src/common/lib/libc/atomic/atomic_add_32_nv_cas.c
diff -u src/common/lib/libc/atomic/atomic_add_32_nv_cas.c:1.5 src/common/lib/libc/atomic/atomic_add_32_nv_cas.c:1.6
--- src/common/lib/libc/atomic/atomic_add_32_nv_cas.c:1.5	Mon Jan 27 18:36:37 2014
+++ src/common/lib/libc/atomic/atomic_add_32_nv_cas.c	Sat Feb 22 17:08:30 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: atomic_add_32_nv_cas.c,v 1.5 2014/01/27 18:36:37 matt Exp $	*/
+/*	$NetBSD: atomic_add_32_nv_cas.c,v 1.6 2014/02/22 17:08:30 martin Exp $	*/
 
 /*-
  * Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -48,7 +48,7 @@ atomic_add_32_nv(volatile uint32_t *addr
 
 #undef atomic_add_32_nv
 atomic_op_alias(atomic_add_32_nv,_atomic_add_32_nv)
-__strong_alias(__sync_add_and_fetch_4,_atomic_add_32_nv)
+crt_alias(__sync_add_and_fetch_4,_atomic_add_32_nv)
 
 #undef atomic_add_int_nv
 atomic_op_alias(atomic_add_int_nv,_atomic_add_32_nv)
Index: src/common/lib/libc/atomic/atomic_op_namespace.h
diff -u src/common/lib/libc/atomic/atomic_op_namespace.h:1.5 src/common/lib/libc/atomic/atomic_op_namespace.h:1.6
--- src/common/lib/libc/atomic/atomic_op_namespace.h:1.5	Fri Feb 21 15:51:07 2014
+++ src/common/lib/libc/atomic/atomic_op_namespace.h	Sat Feb 22 17:08:30 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: atomic_op_namespace.h,v 1.5 2014/02/21 15:51:07 martin Exp $	*/
+/*	$NetBSD: atomic_op_namespace.h,v 1.6 2014/02/22 17:08:30 martin Exp $	*/
 
 /*-
  * Copyright (c) 2007, 2008 The NetBSD Foundation, Inc.
@@ -120,8 +120,18 @@
 
 #if defined(_KERNEL)
 #define	atomic_op_alias(a,s)	__strong_alias(a,s)
+#ifdef _HARDKERNEL
+#define	crt_alias(a,s)	__strong_alias(a,s)
+#endif
 #else
 #define	atomic_op_alias(a,s)	__weak_alias(a,s)
+#ifdef _LIBC
+#define	crt_alias(a,s)	__strong_alias(a,s)
+#endif
 #endif /* _KERNEL */
 
+#ifndef	crt_alias
+#define	crt_alias(a,s)
+#endif
+
 #endif /* _ATOMIC_OP_NAMESPACE_H_ */
Index: src/common/lib/libc/atomic/atomic_or_32_nv_cas.c
diff -u src/common/lib/libc/atomic/atomic_or_32_nv_cas.c:1.5 src/common/lib/libc/atomic/atomic_or_32_nv_cas.c:1.6
--- src/common/lib/libc/atomic/atomic_or_32_nv_cas.c:1.5	Mon Jan 27 18:36:37 2014
+++ src/common/lib/libc/atomic/atomic_or_32_nv_cas.c	Sat Feb 22 17:08:30 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: atomic_or_32_nv_cas.c,v 1.5 2014/01/27 18:36:37 matt Exp $	*/
+/*	$NetBSD: atomic_or_32_nv_cas.c,v 1.6 2014/02/22 17:08:30 martin Exp $	*/
 
 /*-
  * Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -48,7 +48,7 @@ atomic_or_32_nv(volatile uint32_t *addr,
 
 #undef atomic_or_32_nv
 atomic_op_alias(atomic_or_32_nv,_atomic_or_32_nv)
-__strong_alias(__sync_or_and_fetch_4,_atomic_or_32_nv)
+crt_alias(__sync_or_and_fetch_4,_atomic_or_32_nv)
 
 #undef atomic_or_uint_nv
 atomic_op_alias(atomic_or_uint_nv,_atomic_or_32_nv)
Index: src/common/lib/libc/atomic/atomic_swap_32_cas.c
diff -u src/common/lib/libc/atomic/atomic_swap_32_cas.c:1.5 src/common/lib/libc/atomic/atomic_swap_32_cas.c:1.6
--- src/common/lib/libc/atomic/atomic_swap_32_cas.c:1.5	Fri Feb 21 10:27:34 2014
+++ src/common/lib/libc/atomic/atomic_swap_32_cas.c	Sat Feb 22 17:08:30 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: atomic_swap_32_cas.c,v 1.5 2014/02/21 10:27:34 martin Exp $	*/
+/*	$NetBSD: atomic_swap_32_cas.c,v 1.6 2014/02/22 17:08:30 martin Exp $	*/
 
 /*-
  * Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -50,7 +50,7 @@ atomic_op_alias(atomic_swap_32,_atomic_s
 #undef atomic_swap_uint
 atomic_op_alias(atomic_swap_uint,_atomic_swap_32)
 __strong_alias(_atomic_swap_uint,_atomic_swap_32)
-__strong_alias(__sync_lock_test_and_set_4,_atomic_swap_32)
+crt_alias(__sync_lock_test_and_set_4,_atomic_swap_32)
 #if !defined(_LP64)
 #undef atomic_swap_ulong
 atomic_op_alias(atomic_swap_ulong,_atomic_swap_32)

Index: src/common/lib/libc/atomic/atomic_add_64_nv_cas.c
diff -u src/common/lib/libc/atomic/atomic_add_64_nv_cas.c:1.6 src/common/lib/libc/atomic/atomic_add_64_nv_cas.c:1.7
--- src/common/lib/libc/atomic/atomic_add_64_nv_cas.c:1.6	Mon Jan 27 18:36:37 2014
+++ src/common/lib/libc/atomic/atomic_add_64_nv_cas.c	Sat Feb 22 17:08:30 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: atomic_add_64_nv_cas.c,v 1.6 2014/01/27 18:36:37 matt Exp $	*/
+/*	$NetBSD: atomic_add_64_nv_cas.c,v 1.7 2014/02/22 17:08:30 martin Exp $	*/
 
 /*-
  * Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -50,7 +50,7 @@ atomic_add_64_nv(volatile uint64_t *addr
 
 #undef atomic_add_64_nv
 atomic_op_alias(atomic_add_64_nv,_atomic_add_64_nv)
-__strong_alias(__sync_add_and_fetch_8,_atomic_add_64_nv)
+crt_alias(__sync_add_and_fetch_8,_atomic_add_64_nv)
 
 #if defined(_LP64)
 #undef atomic_add_long_nv
Index: src/common/lib/libc/atomic/atomic_and_32_nv_cas.c
diff -u src/common/lib/libc/atomic/atomic_and_32_nv_cas.c:1.6 src/common/lib/libc/atomic/atomic_and_32_nv_cas.c:1.7
--- src/common/lib/libc/atomic/atomic_and_32_nv_cas.c:1.6	Mon Jan 27 18:43:07 2014
+++ src/common/lib/libc/atomic/atomic_and_32_nv_cas.c	Sat Feb 22 17:08:30 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: atomic_and_32_nv_cas.c,v 1.6 2014/01/27 18:43:07 matt Exp $	*/
+/*	$NetBSD: atomic_and_32_nv_cas.c,v 1.7 2014/02/22 17:08:30 martin Exp $	*/
 
 /*-
  * Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -48,7 +48,7 @@ atomic_and_32_nv(volatile uint32_t *addr
 
 #undef atomic_and_32_nv
 atomic_op_alias(atomic_and_32_nv,_atomic_and_32_nv)
-__strong_alias(__sync_and_and_fetch_4,_atomic_and_32_nv)
+crt_alias(__sync_and_and_fetch_4,_atomic_and_32_nv)
 
 #undef atomic_and_uint_nv
 atomic_op_alias(atomic_and_uint_nv,_atomic_and_32_nv)
Index: src/common/lib/libc/atomic/atomic_and_64_nv_cas.c
diff -u src/common/lib/libc/atomic/atomic_and_64_nv_cas.c:1.6 src/common/lib/libc/atomic/atomic_and_64_nv_cas.c:1.7
--- src/common/lib/libc/atomic/atomic_and_64_nv_cas.c:1.6	Mon Jan 27 18:36:37 2014
+++ src/common/lib/libc/atomic/atomic_and_64_nv_cas.c	Sat Feb 22 17:08:30 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: atomic_and_64_nv_cas.c,v 1.6 2014/01/27 18:36:37 matt Exp $	*/
+/*	$NetBSD: atomic_and_64_nv_cas.c,v 1.7 2014/02/22 17:08:30 martin Exp $	*/
 
 /*-
  * Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -50,7 +50,7 @@ atomic_and_64_nv(volatile uint64_t *addr
 
 #undef atomic_and_64_nv
 atomic_op_alias(atomic_and_64_nv,_atomic_and_64_nv)
-__strong_alias(__sync_and_and_fetch_8,_atomic_add_64_nv)
+crt_alias(__sync_and_and_fetch_8,_atomic_add_64_nv)
 
 #if defined(_LP64)
 #undef atomic_and_ulong_nv
Index: src/common/lib/libc/atomic/atomic_or_64_nv_cas.c
diff -u src/common/lib/libc/atomic/atomic_or_64_nv_cas.c:1.6 src/common/lib/libc/atomic/atomic_or_64_nv_cas.c:1.7
--- src/common/lib/libc/atomic/atomic_or_64_nv_cas.c:1.6	Mon Jan 27 18:36:37 2014
+++ src/common/lib/libc/atomic/atomic_or_64_nv_cas.c	Sat Feb 22 17:08:30 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: atomic_or_64_nv_cas.c,v 1.6 2014/01/27 18:36:37 matt Exp $	*/
+/*	$NetBSD: atomic_or_64_nv_cas.c,v 1.7 2014/02/22 17:08:30 martin Exp $	*/
 
 /*-
  * Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -50,7 +50,7 @@ atomic_or_64_nv(volatile uint64_t *addr,
 
 #undef atomic_or_64_nv
 atomic_op_alias(atomic_or_64_nv,_atomic_or_64_nv)
-__strong_alias(__sync_or_and_fetch_8,_atomic_or_64_nv)
+crt_alias(__sync_or_and_fetch_8,_atomic_or_64_nv)
 
 #if defined(_LP64)
 #undef atomic_or_ulong_nv
Index: src/common/lib/libc/atomic/membar_ops_nop.c
diff -u src/common/lib/libc/atomic/membar_ops_nop.c:1.6 src/common/lib/libc/atomic/membar_ops_nop.c:1.7
--- src/common/lib/libc/atomic/membar_ops_nop.c:1.6	Sat Dec  7 13:09:55 2013
+++ src/common/lib/libc/atomic/membar_ops_nop.c	Sat Feb 22 17:08:30 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: membar_ops_nop.c,v 1.6 2013/12/07 13:09:55 skrll Exp $	*/
+/*	$NetBSD: membar_ops_nop.c,v 1.7 2014/02/22 17:08:30 martin Exp $	*/
 
 /*-
  * Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -54,4 +54,4 @@ atomic_op_alias(membar_consumer,_membar_
 __strong_alias(_membar_consumer,_membar_sync)
 #undef membar_sync
 atomic_op_alias(membar_sync,_membar_sync)
-atomic_op_alias(__sync_synchronize,_membar_sync)
+crt_alias(__sync_synchronize,_membar_sync)

Index: src/common/lib/libc/atomic/atomic_and_32_cas.c
diff -u src/common/lib/libc/atomic/atomic_and_32_cas.c:1.8 src/common/lib/libc/atomic/atomic_and_32_cas.c:1.9
--- src/common/lib/libc/atomic/atomic_and_32_cas.c:1.8	Wed Jan 29 15:59:11 2014
+++ src/common/lib/libc/atomic/atomic_and_32_cas.c	Sat Feb 22 17:08:30 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: atomic_and_32_cas.c,v 1.8 2014/01/29 15:59:11 joerg Exp $	*/
+/*	$NetBSD: atomic_and_32_cas.c,v 1.9 2014/02/22 17:08:30 martin Exp $	*/
 
 /*-
  * Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -34,7 +34,11 @@
 #include <sys/atomic.h>
 
 uint32_t fetch_and_and_4(volatile uint32_t *, uint32_t, ...)
-    asm("__sync_fetch_and_and_4");
+#if defined(_LIBC) || defined(_HARDKERNEL)
+    asm("__sync_fetch_and_and_4");	/* C runtime internal */
+#else
+    ;
+#endif
 
 uint32_t
 fetch_and_and_4(volatile uint32_t *addr, uint32_t val, ...)
Index: src/common/lib/libc/atomic/atomic_or_32_cas.c
diff -u src/common/lib/libc/atomic/atomic_or_32_cas.c:1.8 src/common/lib/libc/atomic/atomic_or_32_cas.c:1.9
--- src/common/lib/libc/atomic/atomic_or_32_cas.c:1.8	Wed Jan 29 15:59:11 2014
+++ src/common/lib/libc/atomic/atomic_or_32_cas.c	Sat Feb 22 17:08:30 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: atomic_or_32_cas.c,v 1.8 2014/01/29 15:59:11 joerg Exp $	*/
+/*	$NetBSD: atomic_or_32_cas.c,v 1.9 2014/02/22 17:08:30 martin Exp $	*/
 
 /*-
  * Copyright (c) 2007 The NetBSD Foundation, Inc.
@@ -34,7 +34,11 @@
 #include <sys/atomic.h>
 
 uint32_t fetch_and_or_4(volatile uint32_t *, uint32_t, ...)
-    asm("__sync_fetch_and_or_4");
+#if defined(_LIBC) || defined(_HARDKERNEL)
+    asm("__sync_fetch_and_or_4");	/* C runtime internal */
+#else
+    ;
+#endif
 
 uint32_t
 fetch_and_or_4(volatile uint32_t *addr, uint32_t val, ...)

Index: src/common/lib/libc/atomic/atomic_init_testset.c
diff -u src/common/lib/libc/atomic/atomic_init_testset.c:1.12 src/common/lib/libc/atomic/atomic_init_testset.c:1.13
--- src/common/lib/libc/atomic/atomic_init_testset.c:1.12	Wed Jan 29 14:49:35 2014
+++ src/common/lib/libc/atomic/atomic_init_testset.c	Sat Feb 22 17:08:30 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: atomic_init_testset.c,v 1.12 2014/01/29 14:49:35 martin Exp $	*/
+/*	$NetBSD: atomic_init_testset.c,v 1.13 2014/02/22 17:08:30 martin Exp $	*/
 
 /*-
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -36,7 +36,7 @@
  */
 
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: atomic_init_testset.c,v 1.12 2014/01/29 14:49:35 martin Exp $");
+__RCSID("$NetBSD: atomic_init_testset.c,v 1.13 2014/02/22 17:08:30 martin Exp $");
 
 #include "atomic_op_namespace.h"
 
@@ -239,6 +239,6 @@ __strong_alias(_atomic_cas_ulong_ni,_ato
 atomic_op_alias(atomic_cas_ptr_ni,_atomic_cas_32)
 __strong_alias(_atomic_cas_ptr_ni,_atomic_cas_32)
 
-__strong_alias(__sync_val_compare_and_swap_4,_atomic_cas_32)
-__strong_alias(__sync_val_compare_and_swap_2,_atomic_cas_16)
-__strong_alias(__sync_val_compare_and_swap_1,_atomic_cas_8)
+crt_alias(__sync_val_compare_and_swap_4,_atomic_cas_32)
+crt_alias(__sync_val_compare_and_swap_2,_atomic_cas_16)
+crt_alias(__sync_val_compare_and_swap_1,_atomic_cas_8)

Reply via email to