Module Name: src
Committed By: matt
Date: Mon Aug 19 03:55:12 UTC 2013
Modified Files:
src/common/lib/libc/arch/arm/atomic: Makefile.inc
Log Message:
Rework to allow thumb armv7 compilation.
Add atomic_simplelock.c for thumb
To generate a diff of this commit:
cvs rdiff -u -r1.12 -r1.13 src/common/lib/libc/arch/arm/atomic/Makefile.inc
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/Makefile.inc
diff -u src/common/lib/libc/arch/arm/atomic/Makefile.inc:1.12 src/common/lib/libc/arch/arm/atomic/Makefile.inc:1.13
--- src/common/lib/libc/arch/arm/atomic/Makefile.inc:1.12 Tue Aug 6 20:49:15 2013
+++ src/common/lib/libc/arch/arm/atomic/Makefile.inc Mon Aug 19 03:55:12 2013
@@ -1,22 +1,23 @@
-# $NetBSD: Makefile.inc,v 1.12 2013/08/06 20:49:15 matt Exp $
+# $NetBSD: Makefile.inc,v 1.13 2013/08/19 03:55:12 matt Exp $
-ARMV6= ${CPUFLAGS:M-march=armv7*} ${CPUFLAGS:M-mcpu=cortex*}
-ARMV6+= ${CPUFLAGS:M-march=armv6*} ${CPUFLAGS:M-mcpu=arm11*}
-ARMV6+= ${CFLAGS:M-march=armv7*:} ${CFLAGS:M-mcpu=cortex*}
+ARMV6= ${CPUFLAGS:M-march=armv6*} ${CPUFLAGS:M-mcpu=arm11*}
ARMV6+= ${CFLAGS:M-march=armv6*:} ${CFLAGS:M-mcpu=arm11*}
-ARMV6+= ${CPPFLAGS:M-march=armv7*:} ${CPPFLAGS:M-mcpu=cortex*}
ARMV6+= ${CPPFLAGS:M-march=armv6*:} ${CPPFLAGS:M-mcpu=arm11*}
+ARMV7= ${CPUFLAGS:M-march=armv7*} ${CPUFLAGS:M-mcpu=cortex*}
+ARMV7+= ${CFLAGS:M-march=armv7*:} ${CFLAGS:M-mcpu=cortex*}
+ARMV7+= ${CPPFLAGS:M-march=armv7*:} ${CPPFLAGS:M-mcpu=cortex*}
.if empty(CPPFLAGS:M-D_STANDALONE) \
&& empty(CFLAGS:M-march=*) && empty(CFLAGS:M-mcpu=*) \
&& empty(CPPFLAGS:M-march=*) && empty(CPPFLAGS:M-mcpu=*) \
&& empty(CPUFLAGS:M-march=*) && empty(CPUFLAGS:M-mcpu=*)
-ARMV6+= ${MACHINE_ARCH:Mearmv[67]*}
+ARMV6+= ${MACHINE_ARCH:Mearmv6*}
+ARMV7+= ${MACHINE_ARCH:Mearmv7*}
.endif
.if defined(LIB) && (${LIB} == "kern" || ${LIB} == "c" || ${LIB} == "pthread" \
|| ${LIB} == "rump")
-.if empty(ARMV6)
+.if empty(ARMV6) && empty(ARMV7)
SRCS.atomic+= atomic_add_32_cas.c atomic_add_32_nv_cas.c \
atomic_and_32_cas.c atomic_and_32_nv_cas.c \
atomic_dec_32_cas.c atomic_dec_32_nv_cas.c \
@@ -34,9 +35,18 @@ SRCS.atomic+= atomic_swap_64.S
.endif
+.if defined(LIB) && (${LIB} == "c" || ${LIB} == "pthread" || ${LIB} == "rump")
+
+SRCS.atomic+= atomic_simplelock.c
+.if empty(ARMV7)
+CPUFLAGS.atomic_simplelock.c+= -marm
+.endif
+
+.endif
+
.if defined(LIB) && (${LIB} == "c" || ${LIB} == "pthread")
-.if empty(ARMV6)
+.if empty(ARMV6) && empty(ARMV7)
SRCS.atomic+= atomic_init_testset.c
SRCS.atomic+= atomic_cas_up.S
CPPFLAGS+= -D__HAVE_ASM_ATOMIC_CAS_UP
@@ -46,4 +56,10 @@ SRCS.atomic+= atomic_init_cas.c
.endif
+.if !empty(ARMV6)
+.for f in ${SRCS.atomic:M*.S}
+CPUFLAGS.$f+= -marm
+.endfor
+.endif
+
SRCS+= ${SRCS.atomic}