diff options
author | Juergen Lock <nox@FreeBSD.org> | 2008-04-19 15:04:56 +0000 |
---|---|---|
committer | Juergen Lock <nox@FreeBSD.org> | 2008-04-19 15:04:56 +0000 |
commit | d4679191a5f74f87674e4ac93257034408e066df (patch) | |
tree | ac3d8fc31c71e2da792eecfbf46034d16f0a0003 | |
parent | fa42a4a9f481795f7e249afcbc4baea9deeaa099 (diff) | |
download | ports-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/Makefile | 20 | ||||
-rw-r--r-- | emulators/kqemu-kmod-devel/files/patch-kqemu-freebsd.c | 22 | ||||
-rw-r--r-- | emulators/kqemu-kmod/Makefile | 20 | ||||
-rw-r--r-- | emulators/kqemu-kmod/files/patch-kqemu-freebsd.c | 22 |
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; |