aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuergen Lock <nox@FreeBSD.org>2008-04-19 15:04:56 +0000
committerJuergen Lock <nox@FreeBSD.org>2008-04-19 15:04:56 +0000
commitd4679191a5f74f87674e4ac93257034408e066df (patch)
treeac3d8fc31c71e2da792eecfbf46034d16f0a0003
parentfa42a4a9f481795f7e249afcbc4baea9deeaa099 (diff)
downloadports-d4679191a5f74f87674e4ac93257034408e066df.tar.gz
ports-d4679191a5f74f87674e4ac93257034408e066df.zip
- Try and fix for real the issue of exiting qemu processes sometimes
stuck in devdrn - Remove the -DSMP magic, it didn't help the amd64 SMP panics and was useless anyway (the panics still exist, the only good workaround I've found so far is forcing qemu onto cpu 1 and that is only possible on HEAD using the new cpuset feature) - Only bother with the -DKSE magic for OSVERSIONs where it matters - Bump PORTREVISION
Notes
Notes: svn path=/head/; revision=211579
-rw-r--r--emulators/kqemu-kmod-devel/Makefile20
-rw-r--r--emulators/kqemu-kmod-devel/files/patch-kqemu-freebsd.c22
-rw-r--r--emulators/kqemu-kmod/Makefile20
-rw-r--r--emulators/kqemu-kmod/files/patch-kqemu-freebsd.c22
4 files changed, 52 insertions, 32 deletions
diff --git a/emulators/kqemu-kmod-devel/Makefile b/emulators/kqemu-kmod-devel/Makefile
index 762ed162ecd6..d4fa5f6c6999 100644
--- a/emulators/kqemu-kmod-devel/Makefile
+++ b/emulators/kqemu-kmod-devel/Makefile
@@ -7,7 +7,7 @@
PORTNAME= kqemu
PORTVERSION= 1.3.0.p11
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= emulators kld
MASTER_SITES= http://fabrice.bellard.free.fr/qemu/ \
http://qemu.org/ \
@@ -51,25 +51,15 @@ MAKE_ENV+= KMODDIR="${KMODDIR}"
IGNORE= kqemu requires kernel source to be installed
.endif
-.if ${OSVERSION} >= 700024 && !defined(NOKSE)
+.if ${OSVERSION} >= 700024 && ${OSVERSION} < 700053 && !defined(NOKSE)
# XXX this is wrong if you have `nooption KSE' in your kernel config,
-# please define NOKSE in that case
+# please define NOKSE in that case (no longer a problem after attilio's
+# Sun Jul 22 21:35:44 2007 UTC commit removing the KSE ABI incompatiblity)
CFLAGS+= -DKSE
.endif
-# XXX the following is wrong if you run a custom SMP kernel on a
-# singleprocessor machine (but it probably doesn't really matter)
-KERNCONF!= ${UNAME} -v | ${SED} 's-.*/--' | ${TR} -d ' '
-NCPU!= ${SYSCTL} -n hw.ncpu 2>/dev/null
-# we know 7.x GENERIC has SMP
-.if ${KERNCONF} == "GENERIC" && ${OSVERSION} >= 700000
-CFLAGS+= -DSMP
-.elif ${NCPU} > 1
-CFLAGS+= -DSMP
-.endif
-
post-extract:
-.if ${OSVERSION} >= 700024 && !defined(NOKSE)
+.if ${OSVERSION} >= 700024 && ${OSVERSION} < 700053 && !defined(NOKSE)
@${ECHO_MSG} "Compiling with -DKSE."
@${ECHO_MSG} "If this is wrong (i.e. you have \`nooption KSE' in your kernel config),"
@${ECHO_MSG} "then please define NOKSE."
diff --git a/emulators/kqemu-kmod-devel/files/patch-kqemu-freebsd.c b/emulators/kqemu-kmod-devel/files/patch-kqemu-freebsd.c
index 73e23f4b7d24..ac811e16d7fe 100644
--- a/emulators/kqemu-kmod-devel/files/patch-kqemu-freebsd.c
+++ b/emulators/kqemu-kmod-devel/files/patch-kqemu-freebsd.c
@@ -17,13 +17,33 @@ Index: kqemu-freebsd.c
return SIGPENDING(curthread);
}
#endif
-@@ -320,6 +328,9 @@
+@@ -320,8 +328,15 @@
#if __FreeBSD_version >= 500000
dev->si_drv1 = NULL;
TAILQ_REMOVE(&kqemuhead, ks, kqemu_ent);
++#if __FreeBSD_version >= 700051
++ destroy_dev_sched(dev);
++#else
+#if __FreeBSD_version >= 700024
+ dev_relthread(dev);
+#endif
destroy_dev(dev);
#endif
++#endif
free(ks, M_KQEMU);
+ --kqemu_ref_count;
+ }
+@@ -500,7 +515,13 @@
+ while ((ks = TAILQ_FIRST(&kqemuhead)) != NULL) {
+ kqemu_destroy(ks);
+ }
++#if __FreeBSD_version >= 700051
++ drain_dev_clone_events();
++#endif
+ clone_cleanup(&kqemuclones);
++#if __FreeBSD_version >= 700051
++ destroy_dev_drain(&kqemu_cdevsw);
++#endif
+ #endif
+ kqemu_global_delete(kqemu_gs);
+ kqemu_gs = NULL;
diff --git a/emulators/kqemu-kmod/Makefile b/emulators/kqemu-kmod/Makefile
index 762ed162ecd6..d4fa5f6c6999 100644
--- a/emulators/kqemu-kmod/Makefile
+++ b/emulators/kqemu-kmod/Makefile
@@ -7,7 +7,7 @@
PORTNAME= kqemu
PORTVERSION= 1.3.0.p11
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= emulators kld
MASTER_SITES= http://fabrice.bellard.free.fr/qemu/ \
http://qemu.org/ \
@@ -51,25 +51,15 @@ MAKE_ENV+= KMODDIR="${KMODDIR}"
IGNORE= kqemu requires kernel source to be installed
.endif
-.if ${OSVERSION} >= 700024 && !defined(NOKSE)
+.if ${OSVERSION} >= 700024 && ${OSVERSION} < 700053 && !defined(NOKSE)
# XXX this is wrong if you have `nooption KSE' in your kernel config,
-# please define NOKSE in that case
+# please define NOKSE in that case (no longer a problem after attilio's
+# Sun Jul 22 21:35:44 2007 UTC commit removing the KSE ABI incompatiblity)
CFLAGS+= -DKSE
.endif
-# XXX the following is wrong if you run a custom SMP kernel on a
-# singleprocessor machine (but it probably doesn't really matter)
-KERNCONF!= ${UNAME} -v | ${SED} 's-.*/--' | ${TR} -d ' '
-NCPU!= ${SYSCTL} -n hw.ncpu 2>/dev/null
-# we know 7.x GENERIC has SMP
-.if ${KERNCONF} == "GENERIC" && ${OSVERSION} >= 700000
-CFLAGS+= -DSMP
-.elif ${NCPU} > 1
-CFLAGS+= -DSMP
-.endif
-
post-extract:
-.if ${OSVERSION} >= 700024 && !defined(NOKSE)
+.if ${OSVERSION} >= 700024 && ${OSVERSION} < 700053 && !defined(NOKSE)
@${ECHO_MSG} "Compiling with -DKSE."
@${ECHO_MSG} "If this is wrong (i.e. you have \`nooption KSE' in your kernel config),"
@${ECHO_MSG} "then please define NOKSE."
diff --git a/emulators/kqemu-kmod/files/patch-kqemu-freebsd.c b/emulators/kqemu-kmod/files/patch-kqemu-freebsd.c
index 73e23f4b7d24..ac811e16d7fe 100644
--- a/emulators/kqemu-kmod/files/patch-kqemu-freebsd.c
+++ b/emulators/kqemu-kmod/files/patch-kqemu-freebsd.c
@@ -17,13 +17,33 @@ Index: kqemu-freebsd.c
return SIGPENDING(curthread);
}
#endif
-@@ -320,6 +328,9 @@
+@@ -320,8 +328,15 @@
#if __FreeBSD_version >= 500000
dev->si_drv1 = NULL;
TAILQ_REMOVE(&kqemuhead, ks, kqemu_ent);
++#if __FreeBSD_version >= 700051
++ destroy_dev_sched(dev);
++#else
+#if __FreeBSD_version >= 700024
+ dev_relthread(dev);
+#endif
destroy_dev(dev);
#endif
++#endif
free(ks, M_KQEMU);
+ --kqemu_ref_count;
+ }
+@@ -500,7 +515,13 @@
+ while ((ks = TAILQ_FIRST(&kqemuhead)) != NULL) {
+ kqemu_destroy(ks);
+ }
++#if __FreeBSD_version >= 700051
++ drain_dev_clone_events();
++#endif
+ clone_cleanup(&kqemuclones);
++#if __FreeBSD_version >= 700051
++ destroy_dev_drain(&kqemu_cdevsw);
++#endif
+ #endif
+ kqemu_global_delete(kqemu_gs);
+ kqemu_gs = NULL;