diff options
author | xtraeme <xtraeme@pkgsrc.org> | 2004-11-09 13:05:33 +0000 |
---|---|---|
committer | xtraeme <xtraeme@pkgsrc.org> | 2004-11-09 13:05:33 +0000 |
commit | 78395b1d3272e6e45b047d891e57341868109ad9 (patch) | |
tree | 0ce722a3fecbde52d9be0b7ebc7df9155fd05deb | |
parent | a97d297969dc805ea8b936fb39fba0405bb8e144 (diff) | |
download | pkgsrc-78395b1d3272e6e45b047d891e57341868109ad9.tar.gz |
Initial import of qemu-0.6.0 from pkgsrc-wip, packaged by David
Holland.
QEMU is a FAST! processor emulator using dynamic translation to achieve
good emulation speed, QEMU has two operating modes:
* Full system emulation. In this mode, QEMU emulates a full system
(for example a PC), including a processor and various peripherals.
It can be used to launch different Operating Systems without rebooting
the PC or to debug system code.
* User mode emulation (Linux host only). In this mode, QEMU can launch
Linux processes compiled for one CPU on another CPU. It can be used
to launch the Wine Windows API emulator or to ease cross-compilation
and cross-debugging.
--
It's nice to see NetBSD/x86 running perfectly with QEMU!
-rw-r--r-- | emulators/qemu/DESCR | 11 | ||||
-rw-r--r-- | emulators/qemu/Makefile | 24 | ||||
-rw-r--r-- | emulators/qemu/PLIST | 16 | ||||
-rw-r--r-- | emulators/qemu/distinfo | 15 | ||||
-rw-r--r-- | emulators/qemu/patches/patch-aa | 40 | ||||
-rw-r--r-- | emulators/qemu/patches/patch-ab | 39 | ||||
-rw-r--r-- | emulators/qemu/patches/patch-ac | 17 | ||||
-rw-r--r-- | emulators/qemu/patches/patch-ad | 13 | ||||
-rw-r--r-- | emulators/qemu/patches/patch-ae | 22 | ||||
-rw-r--r-- | emulators/qemu/patches/patch-af | 41 | ||||
-rw-r--r-- | emulators/qemu/patches/patch-ag | 31 | ||||
-rw-r--r-- | emulators/qemu/patches/patch-ah | 20 | ||||
-rw-r--r-- | emulators/qemu/patches/patch-ai | 20 | ||||
-rw-r--r-- | emulators/qemu/patches/patch-aj | 24 | ||||
-rw-r--r-- | emulators/qemu/patches/patch-ak | 44 |
15 files changed, 377 insertions, 0 deletions
diff --git a/emulators/qemu/DESCR b/emulators/qemu/DESCR new file mode 100644 index 00000000000..8c743e5720e --- /dev/null +++ b/emulators/qemu/DESCR @@ -0,0 +1,11 @@ +QEMU is a FAST! processor emulator using dynamic translation to achieve +good emulation speed, QEMU has two operating modes: + + * Full system emulation. In this mode, QEMU emulates a full system + (for example a PC), including a processor and various peripherals. + It can be used to launch different Operating Systems without rebooting + the PC or to debug system code. + * User mode emulation (Linux host only). In this mode, QEMU can launch + Linux processes compiled for one CPU on another CPU. It can be used + to launch the Wine Windows API emulator or to ease cross-compilation + and cross-debugging. diff --git a/emulators/qemu/Makefile b/emulators/qemu/Makefile new file mode 100644 index 00000000000..47cd4af1d42 --- /dev/null +++ b/emulators/qemu/Makefile @@ -0,0 +1,24 @@ +# $NetBSD: Makefile,v 1.1.1.1 2004/11/09 13:05:33 xtraeme Exp $ +# + +DISTNAME= qemu-0.6.0 +CATEGORIES= emulators +MASTER_SITES= http://fabrice.bellard.free.fr/qemu/ + +MAINTAINER= dhowland@users.sourceforge.net +HOMEPAGE= http://fabrice.bellard.free.fr/qemu/ +COMMENT= CPU emulator using dynamic translation + +ONLY_FOR_PLATFORM= NetBSD-*-* Linux-*-* +CONFLICTS+= qemu-bin-* + +USE_BUILDLINK3= yes +USE_GNU_TOOLS+= make +USE_X11= yes +HAS_CONFIGURE= yes + +CONFIGURE_ARGS+= --prefix=${PREFIX} +CONFIGURE_ARGS+= --interp-prefix=${PREFIX}/share/qemu + +.include "../../devel/SDL/buildlink3.mk" +.include "../../mk/bsd.pkg.mk" diff --git a/emulators/qemu/PLIST b/emulators/qemu/PLIST new file mode 100644 index 00000000000..47f26afcc0d --- /dev/null +++ b/emulators/qemu/PLIST @@ -0,0 +1,16 @@ +@comment $NetBSD: PLIST,v 1.1.1.1 2004/11/09 13:05:33 xtraeme Exp $ +bin/qemu +bin/qemu-mkcow +bin/qemu-system-ppc +bin/vmdk2raw +man/man1/qemu-mkcow.1 +man/man1/qemu.1 +share/doc/qemu/qemu-doc.html +share/doc/qemu/qemu-tech.html +share/qemu/bios.bin +share/qemu/linux_boot.bin +share/qemu/ppc_rom.bin +share/qemu/vgabios-cirrus.bin +share/qemu/vgabios.bin +@dirrm share/qemu +@dirrm share/doc/qemu diff --git a/emulators/qemu/distinfo b/emulators/qemu/distinfo new file mode 100644 index 00000000000..6642b718ee7 --- /dev/null +++ b/emulators/qemu/distinfo @@ -0,0 +1,15 @@ +$NetBSD: distinfo,v 1.1.1.1 2004/11/09 13:05:33 xtraeme Exp $ + +SHA1 (qemu-0.6.0.tar.gz) = e7e8b30704af11eacad521800d4bf08cdbe5a137 +Size (qemu-0.6.0.tar.gz) = 874397 bytes +SHA1 (patch-aa) = 2c288ab638c5fea542c10ad6b5f23d8f6d011080 +SHA1 (patch-ab) = 4c22f01fedddad7b7095f066e3d190c769648c19 +SHA1 (patch-ac) = 1a963d654984b9aa074f68c44e996f0ed4f86769 +SHA1 (patch-ad) = aa6df3ce9f70687f05141b504ad5d793510f2ed8 +SHA1 (patch-ae) = 70685c894298911028b72651fbe17622c39b1cb0 +SHA1 (patch-af) = 0ef3779e75f48e5a3b735a3cc94e5f5b753f61b3 +SHA1 (patch-ag) = 61783907cc301670e4c55207eb1ea768f6a015b8 +SHA1 (patch-ah) = 134f47583dbed94e83671ca6197106805b13f759 +SHA1 (patch-ai) = 480cc80a451488a1376f99ed152a917116759cbf +SHA1 (patch-aj) = 5917569d9d5e2bfc0f8d47522fc39efade6f8dd9 +SHA1 (patch-ak) = 9309fb1386e746f12d03f9caa16b880247552410 diff --git a/emulators/qemu/patches/patch-aa b/emulators/qemu/patches/patch-aa new file mode 100644 index 00000000000..7d077c0e669 --- /dev/null +++ b/emulators/qemu/patches/patch-aa @@ -0,0 +1,40 @@ +$NetBSD: patch-aa,v 1.1.1.1 2004/11/09 13:05:33 xtraeme Exp $ + +--- bswap.h.orig 2004-07-10 21:20:09.000000000 +0300 ++++ bswap.h +@@ -4,11 +4,13 @@ + #include "config-host.h" + + #include <inttypes.h> ++#include <sys/types.h> ++#include <machine/bswap.h> + + #ifdef HAVE_BYTESWAP_H + #include <byteswap.h> + #else +- ++/* + #define bswap_16(x) \ + ({ \ + uint16_t __x = (x); \ +@@ -40,9 +42,9 @@ + (uint64_t)(((uint64_t)(__x) & (uint64_t)0x00ff000000000000ULL) >> 40) | \ + (uint64_t)(((uint64_t)(__x) & (uint64_t)0xff00000000000000ULL) >> 56) )); \ + }) +- ++*/ + #endif /* !HAVE_BYTESWAP_H */ +- ++/* + static inline uint16_t bswap16(uint16_t x) + { + return bswap_16(x); +@@ -57,7 +59,7 @@ static inline uint64_t bswap64(uint64_t + { + return bswap_64(x); + } +- ++*/ + static inline void bswap16s(uint16_t *s) + { + *s = bswap16(*s); diff --git a/emulators/qemu/patches/patch-ab b/emulators/qemu/patches/patch-ab new file mode 100644 index 00000000000..296b2afdafe --- /dev/null +++ b/emulators/qemu/patches/patch-ab @@ -0,0 +1,39 @@ +$NetBSD: patch-ab,v 1.1.1.1 2004/11/09 13:05:34 xtraeme Exp $ + +--- vmdk2raw.c.orig 2004-07-10 21:20:09.000000000 +0300 ++++ vmdk2raw.c +@@ -84,7 +84,9 @@ static size_t copy_virtual(struct vmdk_p + unsigned int granule_offset; + unsigned int grain_index; + unsigned int sector_map_idx; +- ++ ++ const char nil = 0; ++ + granule_offset = offset % granule_size; + length = MIN(length, granule_size - granule_offset); + length = MIN(length, disk_limit - offset); +@@ -132,7 +134,6 @@ zero_fill: + if (lseek64(out_fd, length-1, SEEK_CUR) == (off_t)-1) + perror("lseek"); + /* write the last NULL byte instead of seeking */ +- const char nil = 0; + write(out_fd, &nil, 1); + } else { + if (lseek64(out_fd, length, SEEK_CUR) == (off_t)-1) +@@ -185,13 +186,14 @@ static int open_vmdk3(int fd) + + static int open_vmdk(const char *filename) + { ++ char magic[4]; ++ + int fd = open(filename, O_RDONLY | O_LARGEFILE); + if (fd == -1) { + perror(filename); + return -1; + } + +- char magic[4]; + if (read(fd, &magic, sizeof(magic)) != sizeof(magic)) { + perror("read from disk"); + return -1; diff --git a/emulators/qemu/patches/patch-ac b/emulators/qemu/patches/patch-ac new file mode 100644 index 00000000000..7cca0379b45 --- /dev/null +++ b/emulators/qemu/patches/patch-ac @@ -0,0 +1,17 @@ +$NetBSD: patch-ac,v 1.1.1.1 2004/11/09 13:05:34 xtraeme Exp $ + +--- vl.c.orig 2004-07-10 21:20:09.000000000 +0300 ++++ vl.c +@@ -40,9 +40,9 @@ + #include <sys/socket.h> + #ifdef _BSD + #include <sys/stat.h> +-#ifndef __APPLE__ +-#include <libutil.h> +-#endif ++//#ifndef __APPLE__ ++//#include <libutil.h> ++//#endif + #else + #include <linux/if.h> + #include <linux/if_tun.h> diff --git a/emulators/qemu/patches/patch-ad b/emulators/qemu/patches/patch-ad new file mode 100644 index 00000000000..f83b60e53d0 --- /dev/null +++ b/emulators/qemu/patches/patch-ad @@ -0,0 +1,13 @@ +$NetBSD: patch-ad,v 1.1.1.1 2004/11/09 13:05:34 xtraeme Exp $ + +--- oss.c.orig 2004-07-10 21:20:09.000000000 +0300 ++++ oss.c +@@ -23,7 +23,7 @@ + */ + #include "vl.h" + +-#if !defined(_WIN32) && !defined(__APPLE__) ++#if !defined(_WIN32) && !defined(__APPLE__) && !defined(_BSD) + #include <ctype.h> + #include <fcntl.h> + #include <errno.h> diff --git a/emulators/qemu/patches/patch-ae b/emulators/qemu/patches/patch-ae new file mode 100644 index 00000000000..29ac70a9d80 --- /dev/null +++ b/emulators/qemu/patches/patch-ae @@ -0,0 +1,22 @@ +$NetBSD: patch-ae,v 1.1.1.1 2004/11/09 13:05:34 xtraeme Exp $ + +--- slirp/slirp_config.h.orig 2004-07-10 21:20:09.000000000 +0300 ++++ slirp/slirp_config.h +@@ -61,7 +61,7 @@ + #define HAVE_STDLIB_H + + /* Define if you have sys/ioctl.h */ +-#undef HAVE_SYS_IOCTL_H ++#define HAVE_SYS_IOCTL_H + + /* Define if you have sys/filio.h */ + #undef HAVE_SYS_FILIO_H +@@ -162,7 +162,7 @@ + #define HAVE_MEMMOVE + + /* Define if you have <termios.h> */ +-#undef HAVE_TERMIOS_H ++#define HAVE_TERMIOS_H + + /* Define if you have gethostid */ + #undef HAVE_GETHOSTID diff --git a/emulators/qemu/patches/patch-af b/emulators/qemu/patches/patch-af new file mode 100644 index 00000000000..5ab6345105b --- /dev/null +++ b/emulators/qemu/patches/patch-af @@ -0,0 +1,41 @@ +$NetBSD: patch-af,v 1.1.1.1 2004/11/09 13:05:34 xtraeme Exp $ + +--- dyngen-exec.h.orig 2004-07-10 21:20:09.000000000 +0300 ++++ dyngen-exec.h +@@ -43,7 +43,7 @@ typedef signed long int64_t; + #else + typedef signed long long int64_t; + #endif +- ++/* + #define INT8_MIN (-128) + #define INT16_MIN (-32767-1) + #define INT32_MIN (-2147483647-1) +@@ -56,13 +56,17 @@ typedef signed long long int64_t; + #define UINT16_MAX (65535) + #define UINT32_MAX (4294967295U) + #define UINT64_MAX ((uint64_t)(18446744073709551615)) +- ++*/ ++#ifdef __NetBSD__ ++typedef struct __sFILE FILE; ++#else + typedef struct FILE FILE; ++#endif + extern int fprintf(FILE *, const char *, ...); + extern int printf(const char *, ...); + #undef NULL + #define NULL 0 +-#if defined(_BSD) && !defined(__APPLE__) ++#if defined(_BSD) || !defined(__APPLE__) + #include <ieeefp.h> + + #define FE_TONEAREST FP_RN +@@ -70,6 +74,7 @@ extern int printf(const char *, ...); + #define FE_UPWARD FP_RP + #define FE_TOWARDZERO FP_RZ + #define fesetround(x) fpsetround(x) ++#define fegetround() fpgetround() + #else + #include <fenv.h> + #endif diff --git a/emulators/qemu/patches/patch-ag b/emulators/qemu/patches/patch-ag new file mode 100644 index 00000000000..21f56a49ee6 --- /dev/null +++ b/emulators/qemu/patches/patch-ag @@ -0,0 +1,31 @@ +$NetBSD: patch-ag,v 1.1.1.1 2004/11/09 13:05:34 xtraeme Exp $ + +--- configure.orig 2004-07-10 21:20:09.000000000 +0300 ++++ configure +@@ -241,7 +241,7 @@ aa="no" + `$sdl_config --static-libs | grep \\\-laa > /dev/null` && aa="yes" + sdl_static_libs=`$sdl_config --static-libs` + if [ "$aa" = "yes" ] ; then +- sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`" ++ sdl_static_libs="$sdl_static_libs `aalib-x11-config --static-libs`" + fi + + if $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then +@@ -293,7 +293,7 @@ else + if test -z "$prefix" ; then + prefix="/usr/local" + fi +-mandir="$prefix/share/man" ++mandir="$prefix/man" + datadir="$prefix/share/qemu" + docdir="$prefix/share/doc/qemu" + bindir="$prefix/bin" +@@ -529,7 +529,7 @@ if test "$target_user_only" = "no"; then + fi + echo -n "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak + if [ "${aa}" = "yes" ] ; then +- echo -n " `aalib-config --cflags`" >> $config_mak ; ++ echo -n " `aalib-x11-config --cflags`" >> $config_mak ; + fi + echo "" >> $config_mak + fi diff --git a/emulators/qemu/patches/patch-ah b/emulators/qemu/patches/patch-ah new file mode 100644 index 00000000000..2f82d82e86e --- /dev/null +++ b/emulators/qemu/patches/patch-ah @@ -0,0 +1,20 @@ +$NetBSD: patch-ah,v 1.1.1.1 2004/11/09 13:05:34 xtraeme Exp $ + +--- target-i386/cpu.h.orig 2004-07-10 21:20:09.000000000 +0300 ++++ target-i386/cpu.h +@@ -441,9 +441,15 @@ void cpu_x86_frstor(CPUX86State *s, uint + /* you can call this signal handler from your SIGBUS and SIGSEGV + signal handlers to inform the virtual CPU of exceptions. non zero + is returned if the signal was handled by the virtual CPU. */ ++#ifdef __NetBSD__ ++union siginfo; ++int cpu_x86_signal_handler(int host_signum, union siginfo *info, ++ void *puc); ++#else + struct siginfo; + int cpu_x86_signal_handler(int host_signum, struct siginfo *info, + void *puc); ++#endif + void cpu_x86_set_a20(CPUX86State *env, int a20_state); + + uint64_t cpu_get_tsc(CPUX86State *env); diff --git a/emulators/qemu/patches/patch-ai b/emulators/qemu/patches/patch-ai new file mode 100644 index 00000000000..242d5610a4e --- /dev/null +++ b/emulators/qemu/patches/patch-ai @@ -0,0 +1,20 @@ +$NetBSD: patch-ai,v 1.1.1.1 2004/11/09 13:05:34 xtraeme Exp $ + +--- target-ppc/cpu.h.orig 2004-07-10 21:20:09.000000000 +0300 ++++ target-ppc/cpu.h +@@ -182,9 +182,15 @@ void cpu_ppc_close(CPUPPCState *s); + /* you can call this signal handler from your SIGBUS and SIGSEGV + signal handlers to inform the virtual CPU of exceptions. non zero + is returned if the signal was handled by the virtual CPU. */ ++#ifdef __NetBSD__ ++union siginfo; ++int cpu_ppc_signal_handler(int host_signum, union siginfo *info, ++ void *puc); ++#else + struct siginfo; + int cpu_ppc_signal_handler(int host_signum, struct siginfo *info, + void *puc); ++#endif + + void do_interrupt (CPUPPCState *env); + void cpu_loop_exit(void); diff --git a/emulators/qemu/patches/patch-aj b/emulators/qemu/patches/patch-aj new file mode 100644 index 00000000000..3578af9cce0 --- /dev/null +++ b/emulators/qemu/patches/patch-aj @@ -0,0 +1,24 @@ +$NetBSD: patch-aj,v 1.1.1.1 2004/11/09 13:05:33 xtraeme Exp $ + +--- Makefile.target.orig 2004-11-09 13:20:37.000000000 +0100 ++++ Makefile.target 2004-11-09 13:22:17.000000000 +0100 +@@ -7,8 +7,8 @@ + VPATH+=:$(SRC_PATH)/linux-user + DEFINES+=-I$(SRC_PATH)/linux-user -I$(SRC_PATH)/linux-user/$(TARGET_ARCH) + endif +-CFLAGS=-Wall -O2 -g -fno-strict-aliasing +-LDFLAGS=-g ++#CFLAGS=-Wall -O2 -g -fno-strict-aliasing ++#LDFLAGS=-g + LIBS= + HELPER_CFLAGS=$(CFLAGS) + DYNGEN=../dyngen$(EXESUF) +@@ -340,7 +340,7 @@ + + install: all + ifneq ($(PROGS),) +- install -m 755 -s $(PROGS) "$(bindir)" ++ $(BSD_INSTALL_PROGRAM) $(PROGS) "$(bindir)" + endif + + ifneq ($(wildcard .depend),) diff --git a/emulators/qemu/patches/patch-ak b/emulators/qemu/patches/patch-ak new file mode 100644 index 00000000000..f940092e9e5 --- /dev/null +++ b/emulators/qemu/patches/patch-ak @@ -0,0 +1,44 @@ +$NetBSD: patch-ak,v 1.1.1.1 2004/11/09 13:05:35 xtraeme Exp $ + +--- Makefile.orig 2004-11-09 13:24:28.000000000 +0100 ++++ Makefile 2004-11-09 13:25:58.000000000 +0100 +@@ -1,13 +1,13 @@ + include config-host.mak + +-CFLAGS=-Wall -O2 -g ++#CFLAGS=-Wall -O2 -g + ifdef CONFIG_DARWIN + CFLAGS+= -mdynamic-no-pic + endif + ifdef CONFIG_WIN32 + CFLAGS+=-fpack-struct + endif +-LDFLAGS=-g ++#LDFLAGS=-g + LIBS= + DEFINES+=-D_GNU_SOURCE + ifndef CONFIG_WIN32 +@@ -47,17 +47,17 @@ + done + + install: all +- mkdir -p "$(bindir)" ++ $(BSD_INSTALL_PROGRAM_DIR) $(bindir) + ifndef CONFIG_WIN32 + install -m 755 -s $(TOOLS) "$(bindir)" + endif +- mkdir -p "$(datadir)" +- install -m 644 pc-bios/bios.bin pc-bios/vgabios.bin \ ++ $(BSD_INSTALL_DATA_DIR) $(datadir) ++ $(BSD_INSTALL_DATA) pc-bios/bios.bin pc-bios/vgabios.bin \ + pc-bios/vgabios-cirrus.bin \ + pc-bios/ppc_rom.bin \ +- pc-bios/linux_boot.bin "$(datadir)" +- mkdir -p "$(docdir)" +- install -m 644 qemu-doc.html qemu-tech.html "$(docdir)" ++ pc-bios/linux_boot.bin $(datadir) ++ $(BSD_INSTALL_DATA_DIR) $(docdir) ++ $(BSD_INSTALL_DATA) qemu-doc.html qemu-tech.html $(docdir) + ifndef CONFIG_WIN32 + mkdir -p "$(mandir)/man1" + install qemu.1 qemu-mkcow.1 "$(mandir)/man1" |