Module Name: src
Committed By: pooka
Date: Sun Nov 21 22:17:24 UTC 2010
Modified Files:
src/sys/rump/librump/rumpkern: Makefile.rumpkern rump.c
Log Message:
Encode smp-capability into the makefile so that it can be used to
avoid potential screwups.
To generate a diff of this commit:
cvs rdiff -u -r1.100 -r1.101 src/sys/rump/librump/rumpkern/Makefile.rumpkern
cvs rdiff -u -r1.204 -r1.205 src/sys/rump/librump/rumpkern/rump.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/rump/librump/rumpkern/Makefile.rumpkern
diff -u src/sys/rump/librump/rumpkern/Makefile.rumpkern:1.100 src/sys/rump/librump/rumpkern/Makefile.rumpkern:1.101
--- src/sys/rump/librump/rumpkern/Makefile.rumpkern:1.100 Sun Nov 21 21:46:43 2010
+++ src/sys/rump/librump/rumpkern/Makefile.rumpkern Sun Nov 21 22:17:24 2010
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile.rumpkern,v 1.100 2010/11/21 21:46:43 pooka Exp $
+# $NetBSD: Makefile.rumpkern,v 1.101 2010/11/21 22:17:24 pooka Exp $
#
.include "${RUMPTOP}/Makefile.rump"
@@ -25,6 +25,12 @@
SRCS+= locks.c
#SRCS+= locks_up.c
+# Does the arch support multiple processors?
+.if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "i386"
+RUMP_SMP= # defined
+CPPFLAGS.rump.c+= -DRUMP_SMP
+.endif
+
vers.c: ${RUMPTOP}/../conf/newvers.sh ${RUMPTOP}/../conf/osrelease.sh ${RUMPTOP}/../sys/param.h
${_MKMSG_CREATE} vers.c
${HOST_SH} ${RUMPTOP}/../conf/newvers.sh -i RUMP-ROAST -n
@@ -175,8 +181,12 @@
|| ${MACHINE_CPU} == "mips" || ${MACHINE_CPU} == "sh3" \
|| ${MACHINE_CPU} == "vax" || ${MACHINE_ARCH} == "m68000"
CPPFLAGS+= -I${RUMPTOP}/../../common/lib/libc/atomic
+.ifdef RUMP_SMP
+SRCS+= atomic_cas_generic.c
+.else
SRCS+= atomic_cas_up.c
.endif
+.endif
.include <bsd.lib.mk>
.include <bsd.klinks.mk>
Index: src/sys/rump/librump/rumpkern/rump.c
diff -u src/sys/rump/librump/rumpkern/rump.c:1.204 src/sys/rump/librump/rumpkern/rump.c:1.205
--- src/sys/rump/librump/rumpkern/rump.c:1.204 Sun Nov 21 22:01:15 2010
+++ src/sys/rump/librump/rumpkern/rump.c Sun Nov 21 22:17:24 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: rump.c,v 1.204 2010/11/21 22:01:15 pooka Exp $ */
+/* $NetBSD: rump.c,v 1.205 2010/11/21 22:17:24 pooka Exp $ */
/*
* Copyright (c) 2007 Antti Kantee. All Rights Reserved.
@@ -28,7 +28,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rump.c,v 1.204 2010/11/21 22:01:15 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rump.c,v 1.205 2010/11/21 22:17:24 pooka Exp $");
#include <sys/systm.h>
#define ELFSIZE ARCH_ELFSIZE
@@ -249,7 +249,7 @@
if (rumpuser_getenv("RUMP_NCPU", buf, sizeof(buf), &error) == 0)
error = 0;
/* non-x86 is missing CPU_INFO_FOREACH() support */
-#if defined(__i386__) || defined(__x86_64__)
+#ifdef RUMP_SMP
if (error == 0) {
numcpu = strtoll(buf, NULL, 10);
if (numcpu < 1)