From: cvs2git Date: Wed, 14 Mar 2007 12:05:25 +0000 (+0000) Subject: This commit was manufactured by cvs2git to create branch 'AC-branch'. X-Git-Tag: auto/ac/qemu-1_3_0pre11-5~7 X-Git-Url: https://git.pld-linux.org/?a=commitdiff_plain;h=94ccff7de77c53eec552cfcf26d37b3763e43261;p=packages%2Fqemu.git This commit was manufactured by cvs2git to create branch 'AC-branch'. Sprout from master 2007-03-14 12:05:25 UTC pascalek '- use gcc4 by default (HEAD if for Th)' Cherrypick from master 2005-07-04 08:26:26 UTC pascalek '- better parallel port support': qemu-DESTDIR.patch -> 1.6 qemu-parallel.patch -> 1.1 Cherrypick from master 2005-12-21 01:18:23 UTC undefine '- small patch to gcc33': qemu-gcc33.patch -> 1.1 Delete: qemu-gcc4_ppc.patch qemu-nostatic.patch --- diff --git a/qemu-DESTDIR.patch b/qemu-DESTDIR.patch new file mode 100644 index 0000000..002c12b --- /dev/null +++ b/qemu-DESTDIR.patch @@ -0,0 +1,45 @@ +--- qemu-0.7.0/Makefile.orig 2005-04-27 22:52:05.000000000 +0200 ++++ qemu-0.7.0/Makefile 2005-05-01 13:13:53.934977792 +0200 +@@ -54,21 +54,21 @@ + common de-ch es fo fr-ca hu ja mk nl-be pt sl tr + + install: all +- mkdir -p "$(bindir)" +- install -m 755 -s $(TOOLS) "$(bindir)" +- mkdir -p "$(datadir)" ++ mkdir -p "$(DESTDIR)$(bindir)" ++ install -m 755 $(TOOLS) "$(DESTDIR)$(bindir)" ++ mkdir -p "$(DESTDIR)$(datadir)" + install -m 644 pc-bios/bios.bin pc-bios/vgabios.bin \ + pc-bios/vgabios-cirrus.bin \ + pc-bios/ppc_rom.bin \ + pc-bios/proll.elf \ +- pc-bios/linux_boot.bin "$(datadir)" +- mkdir -p "$(docdir)" +- install -m 644 qemu-doc.html qemu-tech.html "$(docdir)" ++ pc-bios/linux_boot.bin "$(DESTDIR)$(datadir)" ++ mkdir -p "$(DESTDIR)$(docdir)" ++ install -m 644 qemu-doc.html qemu-tech.html "$(DESTDIR)$(docdir)" + ifndef CONFIG_WIN32 +- mkdir -p "$(mandir)/man1" +- install qemu.1 qemu-img.1 "$(mandir)/man1" +- mkdir -p "$(datadir)/keymaps" +- install -m 644 $(addprefix keymaps/,$(KEYMAPS)) "$(datadir)/keymaps" ++ mkdir -p "$(DESTDIR)$(mandir)/man1" ++ install qemu.1 qemu-img.1 "$(DESTDIR)$(mandir)/man1" ++ mkdir -p "$(DESTDIR)$(datadir)/keymaps" ++ install -m 644 $(addprefix keymaps/,$(KEYMAPS)) "$(DESTDIR)$(datadir)/keymaps" + endif + for d in $(TARGET_DIRS); do \ + $(MAKE) -C $$d $@ || exit 1 ; \ +--- qemu-0.6.0/Makefile.target.orig 2004-10-16 12:43:34.780448720 +0200 ++++ qemu-0.6.0/Makefile.target 2004-10-16 12:45:08.871144760 +0200 +@@ -340,7 +340,7 @@ + + install: all + ifneq ($(PROGS),) +- install -m 755 -s $(PROGS) "$(bindir)" ++ install -m 755 $(PROGS) "$(DESTDIR)$(bindir)" + endif + + ifneq ($(wildcard .depend),) diff --git a/qemu-gcc33.patch b/qemu-gcc33.patch new file mode 100644 index 0000000..aaa1aff --- /dev/null +++ b/qemu-gcc33.patch @@ -0,0 +1,12 @@ +--- qemu-0.8.0/target-sparc/op.c~ 2005-12-19 22:51:53.000000000 +0000 ++++ qemu-0.8.0/target-sparc/op.c 2005-12-21 00:00:52.707085500 +0000 +@@ -1301,7 +1301,8 @@ + + void OPPROTO op_fnegs(void) + { +- FT0 = -FT1; ++ FT0 = FT1; ++ FT0 = -FT0; + } + + void OPPROTO op_fabss(void) diff --git a/qemu-gcc4_ppc.patch b/qemu-gcc4_ppc.patch deleted file mode 100644 index 7034552..0000000 --- a/qemu-gcc4_ppc.patch +++ /dev/null @@ -1,56 +0,0 @@ -diff -ur qemu-0.9.0-o/dyngen.c qemu-0.9.0/dyngen.c ---- qemu-0.9.0-o/dyngen.c 2007-02-06 14:44:57.000000000 -0700 -+++ qemu-0.9.0/dyngen.c 2007-02-06 14:46:11.000000000 -0700 -@@ -1692,6 +1692,9 @@ - #else - fprintf(outfile, " extern void %s();\n", name); - #endif -+#if defined(HOST_PPC) -+ uint8_t *blr_addr = NULL; -+#endif - - for(i = 0, rel = relocs;i < nb_relocs; i++, rel++) { - host_ulong offset = get_rel_offset(rel); -@@ -2053,6 +2056,9 @@ - #else - #error unsupport object format - #endif -+ if (blr_addr) -+ fprintf(outfile, " *(uint32_t *)(gen_code_ptr + %d) = 0x48000000 | %d;\n", -+ blr_addr - p_start, p_end - blr_addr); - } - #elif defined(HOST_S390) - { -diff -ur qemu-0.9.0-o/dyngen.c.orig qemu-0.9.0/dyngen.c.orig ---- qemu-0.9.0-o/dyngen.c.orig 2007-02-05 16:01:54.000000000 -0700 -+++ qemu-0.9.0/dyngen.c.orig 2007-02-06 14:44:57.000000000 -0700 -@@ -1206,13 +1206,11 @@ - } else if (strstart(sym_name, "__op_gen_label", &p)) { - snprintf(name, name_size, "gen_labels[param%s]", p); - } else { --#ifdef HOST_SPARC - if (sym_name[0] == '.') - snprintf(name, name_size, - "(long)(&__dot_%s)", - sym_name + 1); - else --#endif - snprintf(name, name_size, "(long)(&%s)", sym_name); - } - } -@@ -1706,14 +1704,12 @@ - !strstart(sym_name, "__op_param", NULL) && - !strstart(sym_name, "__op_jmp", NULL) && - !strstart(sym_name, "__op_gen_label", NULL)) { --#if defined(HOST_SPARC) - if (sym_name[0] == '.') { - fprintf(outfile, - "extern char __dot_%s __asm__(\"%s\");\n", - sym_name+1, sym_name); - continue; - } --#endif - #if defined(__APPLE__) - /* set __attribute((unused)) on darwin because we wan't to avoid warning when we don't use the symbol */ - fprintf(outfile, "extern char %s __attribute__((unused));\n", sym_name); -Only in qemu-0.9.0: dyngen.c.rej diff --git a/qemu-nostatic.patch b/qemu-nostatic.patch deleted file mode 100644 index 398b56a..0000000 --- a/qemu-nostatic.patch +++ /dev/null @@ -1,32 +0,0 @@ -diff -ur qemu-0.9.0-o/Makefile.target qemu-0.9.0/Makefile.target ---- qemu-0.9.0-o/Makefile.target 2007-02-05 16:01:54.000000000 -0700 -+++ qemu-0.9.0/Makefile.target 2007-02-06 14:34:25.000000000 -0700 -@@ -66,7 +66,7 @@ - endif # !CONFIG_USER_ONLY - - ifdef CONFIG_STATIC --BASE_LDFLAGS+=-static -+#BASE_LDFLAGS+=-static - endif - - # We require -O2 to avoid the stack setup prologue in EXIT_TB -@@ -124,7 +124,7 @@ - OP_CFLAGS+=-fno-delayed-branch -ffixed-i0 - HELPER_CFLAGS=$(CFLAGS) -ffixed-i0 -mflat - # -static is used to avoid g1/g3 usage by the dynamic linker --BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld -static -+#BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld -static - endif - endif - -@@ -432,7 +432,7 @@ - VL_LDFLAGS= - # specific flags are needed for non soft mmu emulator - ifdef CONFIG_STATIC --VL_LDFLAGS+=-static -+#VL_LDFLAGS+=-static - endif - ifndef CONFIG_SOFTMMU - VL_LDFLAGS+=-Wl,-T,$(SRC_PATH)/i386-vl.ld -Only in qemu-0.9.0: Makefile.target~ -Only in qemu-0.9.0: Makefile.target.orig diff --git a/qemu-parallel.patch b/qemu-parallel.patch new file mode 100644 index 0000000..afdba9e --- /dev/null +++ b/qemu-parallel.patch @@ -0,0 +1,306 @@ +diff --exclude=CVS -upr qemu/hw/parallel.c qemu-sandbox/hw/parallel.c +--- qemu/hw/parallel.c 2005-01-23 13:42:59.000000000 -0700 ++++ qemu-sandbox/hw/parallel.c 2005-03-12 19:00:37.000000000 -0700 +@@ -22,6 +22,9 @@ + * THE SOFTWARE. + */ + #include "vl.h" ++#include ++#include ++#include + + //#define DEBUG_PARALLEL + +@@ -43,15 +46,6 @@ + #define PARA_CTR_AUTOLF 0x02 /* Auto linefeed complement */ + #define PARA_CTR_STROBE 0x01 /* Strobe complement */ + +-struct ParallelState { +- uint8_t data; +- uint8_t status; /* read only register */ +- uint8_t control; +- int irq; +- int irq_pending; +- CharDriverState *chr; +-}; +- + static void parallel_update_irq(ParallelState *s) + { + if (s->irq_pending) +@@ -70,29 +64,29 @@ static void parallel_ioport_write(void * + #endif + switch(addr) { + case 0: +- s->data = val; ++ qemu_pp_write_data(s, (uint8_t)val); + parallel_update_irq(s); + break; + case 2: ++ qemu_pp_write_control(s, (uint8_t)val); + if ((val & PARA_CTR_INIT) == 0 ) { +- s->status = PARA_STS_BUSY; +- s->status |= PARA_STS_ACK; +- s->status |= PARA_STS_ONLINE; +- s->status |= PARA_STS_ERROR; ++ s->status = PARA_STS_BUSY; ++ s->status |= PARA_STS_ACK; ++ s->status |= PARA_STS_ONLINE; ++ s->status |= PARA_STS_ERROR; + } + else if (val & PARA_CTR_SELECT) { +- if (val & PARA_CTR_STROBE) { +- s->status &= ~PARA_STS_BUSY; +- if ((s->control & PARA_CTR_STROBE) == 0) +- qemu_chr_write(s->chr, &s->data, 1); +- } else { +- if (s->control & PARA_CTR_INTEN) { +- s->irq_pending = 1; +- } +- } ++ if (val & PARA_CTR_STROBE) { ++ s->status &= ~PARA_STS_BUSY; ++ if ((s->control & PARA_CTR_STROBE) == 0) ++ qemu_chr_write(s->chr, &s->data, 1); ++ } else { ++ if (s->control & PARA_CTR_INTEN) { ++ s->irq_pending = 1; ++ } ++ } + } + parallel_update_irq(s); +- s->control = val; + break; + } + } +@@ -105,25 +99,25 @@ static uint32_t parallel_ioport_read(voi + addr &= 7; + switch(addr) { + case 0: +- ret = s->data; ++ ret = qemu_pp_read_data(s); + break; + case 1: +- ret = s->status; ++ ret = qemu_pp_read_status(s); + s->irq_pending = 0; + if ((s->status & PARA_STS_BUSY) == 0 && (s->control & PARA_CTR_STROBE) == 0) { +- /* XXX Fixme: wait 5 microseconds */ +- if (s->status & PARA_STS_ACK) +- s->status &= ~PARA_STS_ACK; +- else { +- /* XXX Fixme: wait 5 microseconds */ +- s->status |= PARA_STS_ACK; +- s->status |= PARA_STS_BUSY; +- } ++ /* XXX Fixme: wait 5 microseconds */ ++ if (s->status & PARA_STS_ACK) ++ s->status &= ~PARA_STS_ACK; ++ else { ++ /* XXX Fixme: wait 5 microseconds */ ++ s->status |= PARA_STS_ACK; ++ s->status |= PARA_STS_BUSY; ++ } + } + parallel_update_irq(s); + break; + case 2: +- ret = s->control; ++ ret = qemu_pp_read_control(s); + break; + } + #ifdef DEBUG_PARALLEL +Only in qemu-sandbox: kqemu +Only in qemu-sandbox: qemu-doc.html +Only in qemu-sandbox: qemu-img.1 +Only in qemu-sandbox: qemu-tech.html +Only in qemu-sandbox: qemu.1 +diff --exclude=CVS -upr qemu/vl.c qemu-sandbox/vl.c +--- qemu/vl.c 2005-03-13 02:43:36.000000000 -0700 ++++ qemu-sandbox/vl.c 2005-03-13 07:16:54.000000000 -0700 +@@ -46,6 +46,8 @@ + #include + #endif + #else ++#include ++#include + #include + #include + #include +@@ -1028,10 +1030,14 @@ CharDriverState *qemu_chr_open_null(void + return chr; + } + ++ ++ ++ + #ifndef _WIN32 + + typedef struct { + int fd_in, fd_out; ++ int parport_device; + /* for nographic stdio only */ + IOCanRWHandler *fd_can_read; + IOReadHandler *fd_read; +@@ -1084,6 +1090,76 @@ static void fd_chr_add_read_handler(Char + } + } + ++uint8_t qemu_pp_read_status(ParallelState *s) ++{ ++ uint8_t ret, status; ++ FDCharDriver *fd = s->chr->opaque; ++ ++ if (fd->parport_device) { ++ ioctl(fd->fd_out, PPRSTATUS, &status); ++ ret = status; ++ } else { ++ ret = s->status; ++ } ++ ++ return ret; ++} ++ ++ ++uint8_t qemu_pp_read_control(ParallelState *s) ++{ ++ uint8_t ret, control; ++ FDCharDriver *fd = s->chr->opaque; ++ ++ if (fd->parport_device) { ++ ioctl(fd->fd_out, PPRCONTROL, &control); ++ ret = control; ++ } else { ++ ret = s->control; ++ } ++ ++ return ret; ++ ++} ++uint8_t qemu_pp_read_data(ParallelState *s) ++{ ++ uint8_t ret, data; ++ FDCharDriver *fd = s->chr->opaque; ++ ++ if (fd->parport_device) { ++ ioctl(fd->fd_out, PPRDATA, &data); ++ ret = data; ++ } else { ++ ret = s->data; ++ } ++ ++ return ret; ++} ++void qemu_pp_write_data(ParallelState *s, uint8_t val) ++{ ++ uint8_t data; ++ FDCharDriver *fd = s->chr->opaque; ++ ++ if (fd->parport_device) { ++ data = (uint8_t)val; ++ ioctl(fd->fd_out, PPWDATA, &data); ++ } else { ++ s->data = val; ++ } ++} ++ ++void qemu_pp_write_control(ParallelState *s, uint8_t val) ++{ ++ uint8_t control; ++ FDCharDriver *fd = s->chr->opaque; ++ ++ if (fd->parport_device) { ++ control = (uint8_t)val; ++ ioctl(fd->fd_out, PPWCONTROL, &control); ++ } else { ++ s->control = val; ++ } ++} + /* open a character device to a unix fd */ + CharDriverState *qemu_chr_open_fd(int fd_in, int fd_out) + { +@@ -1263,6 +1339,24 @@ CharDriverState *qemu_chr_open_stdio(voi + return chr; + } + ++CharDriverState *qemu_chr_open_dev(const char *filename) ++{ ++ int fd = 0; ++ ++ fd = open(filename, O_RDWR); ++ CharDriverState *s = qemu_chr_open_fd(fd, fd); ++ ++ if (strstr(filename, "parport") != NULL) { ++ if (ioctl(((FDCharDriver *)s->opaque)->fd_in, PPCLAIM) == 0) { ++ ((FDCharDriver *)s->opaque)->parport_device = 1; ++ } else { ++ ((FDCharDriver *)s->opaque)->parport_device = 0; ++ } ++ } ++ ++ return s; ++} ++ + #if defined(__linux__) + CharDriverState *qemu_chr_open_pty(void) + { +@@ -1297,11 +1391,14 @@ CharDriverState *qemu_chr_open(const cha + return qemu_chr_open_pty(); + } else if (!strcmp(filename, "stdio")) { + return qemu_chr_open_stdio(); +- } else +-#endif ++ } else { ++ return qemu_chr_open_dev(filename); ++ } ++#else + { + return NULL; + } ++#endif + } + + /***********************************************************/ +diff --exclude=CVS -upr qemu/vl.h qemu-sandbox/vl.h +--- qemu/vl.h 2005-03-13 02:43:36.000000000 -0700 ++++ qemu-sandbox/vl.h 2005-03-13 07:16:54.000000000 -0700 +@@ -199,6 +199,17 @@ typedef struct CharDriverState { + void *opaque; + } CharDriverState; + ++ ++typedef struct ParallelState { ++ uint8_t data; ++ uint8_t status; /* read only register */ ++ uint8_t control; ++ int irq; ++ int irq_pending; ++ CharDriverState *chr; ++} ParallelState; ++ ++ + void qemu_chr_printf(CharDriverState *s, const char *fmt, ...); + int qemu_chr_write(CharDriverState *s, const uint8_t *buf, int len); + void qemu_chr_send_event(CharDriverState *s, int event); +@@ -206,6 +217,13 @@ void qemu_chr_add_read_handler(CharDrive + IOCanRWHandler *fd_can_read, + IOReadHandler *fd_read, void *opaque); + void qemu_chr_add_event_handler(CharDriverState *s, IOEventHandler *chr_event); ++ ++ ++uint8_t qemu_pp_read_status(ParallelState *s); ++uint8_t qemu_pp_read_control(ParallelState *s); ++uint8_t qemu_pp_read_data(ParallelState *s); ++void qemu_pp_write_data(ParallelState *s, uint8_t data); ++void qemu_pp_write_control(ParallelState *s, uint8_t control); + + /* consoles */ + +@@ -643,8 +661,6 @@ typedef struct SerialState SerialState; + SerialState *serial_init(int base, int irq, CharDriverState *chr); + + /* parallel.c */ +- +-typedef struct ParallelState ParallelState; + ParallelState *parallel_init(int base, int irq, CharDriverState *chr); + + /* i8259.c */