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)