Re: [Qemu-devel] Windows build broken
Same problem with cygwin. I think it's a problem with BlockInterfaceType not being correctly parsed on mingw-gcc for some odd reason. - Original Message - From: Balazs Attila-Mihaly (Cd-MaN) [EMAIL PROTECTED] To: Qemu Devel qemu-devel@nongnu.org Sent: Tuesday, December 11, 2007 8:05 PM Subject: [Qemu-devel] Windows build broken Trying to build the current CVS Head with Mingw under windows, the result is the following error message: In file included from tap-win32.c:31: sysemu.h:125: error: syntax error before ';' token sysemu.h:137: error: syntax error before ',' token sysemu.h:138: error: syntax error before ')' token make: *** [tap-win32.o] Error 1 __ Sent from Yahoo! - the World's favourite mail http://uk.mail.yahoo.com
Re: [Qemu-devel] Windows build broken
Could you perhaps give a patch? I don't feel like going through and changing every instance of BlockInterfaceType to something else. - Original Message - From: Eduardo Felipe To: qemu-devel@nongnu.org Sent: Wednesday, December 12, 2007 3:41 AM Subject: Re: [Qemu-devel] Windows build broken 2007/12/12, C.W. Betts [EMAIL PROTECTED]: Same problem with cygwin. I think it's a problem with BlockInterfaceType not being correctly parsed on mingw-gcc for some odd reason. Hi, I don't think it is related with BlockInterfaceType itself. The problem is to use interface as a variable or parameter name, which seems to be confused with a reserved keyword, type or something like that. I was able to compile with mingw changing that variable name and all its references along the code. Regards.
Re: [Qemu-devel] Windows build broken
2007/12/12, C.W. Betts [EMAIL PROTECTED]: Could you perhaps give a patch? I don't feel like going through and changing every instance of BlockInterfaceType to something else. Having a closer look I think the underlying problem is a name conflict with a #define in Mingw's header file basetyps.h, so renaming variables looks right to me. Patch attached. Regards, *** sysemu.h --- sysemu.h --- sysemu.h 2 Dec 2007 04:51:08 - 1.2 +++ sysemu.h 12 Dec 2007 19:17:47 - @@ -122,7 +122,7 @@ typedef struct DriveInfo { BlockDriverState *bdrv; -BlockInterfaceType interface; +BlockInterfaceType binterface; int bus; int unit; } DriveInfo; @@ -134,8 +134,8 @@ int nb_drives; DriveInfo drives_table[MAX_DRIVES+1]; -extern int drive_get_index(BlockInterfaceType interface, int bus, int unit); -extern int drive_get_max_bus(BlockInterfaceType interface); +extern int drive_get_index(BlockInterfaceType binterface, int bus, int unit); +extern int drive_get_max_bus(BlockInterfaceType binterface); /* serial ports */ *** vl.c --- vl.c --- vl.c 10 Dec 2007 20:00:10 - 1.378 +++ vl.c 12 Dec 2007 19:17:09 - @@ -4811,14 +4811,14 @@ return nb_drives_opt++; } -int drive_get_index(BlockInterfaceType interface, int bus, int unit) +int drive_get_index(BlockInterfaceType binterface, int bus, int unit) { int index; /* seek interface, bus and unit */ for (index = 0; index nb_drives; index++) -if (drives_table[index].interface == interface +if (drives_table[index].binterface == binterface drives_table[index].bus == bus drives_table[index].unit == unit) return index; @@ -4826,14 +4826,14 @@ return -1; } -int drive_get_max_bus(BlockInterfaceType interface) +int drive_get_max_bus(BlockInterfaceType binterface) { int max_bus; int index; max_bus = -1; for (index = 0; index nb_drives; index++) { -if(drives_table[index].interface == interface +if(drives_table[index].binterface == binterface drives_table[index].bus max_bus) max_bus = drives_table[index].bus; } @@ -4846,7 +4846,7 @@ char file[1024]; char devname[128]; const char *mediastr = ; -BlockInterfaceType interface; +BlockInterfaceType binterface; enum { MEDIA_DISK, MEDIA_CDROM } media; int bus_id, unit_id; int cyls, heads, secs, translation; @@ -4875,11 +4875,11 @@ !strcmp(machine-name, SS-600MP) || !strcmp(machine-name, versatilepb) || !strcmp(machine-name, versatileab)) { -interface = IF_SCSI; +binterface = IF_SCSI; max_devs = MAX_SCSI_DEVS; strcpy(devname, scsi); } else { -interface = IF_IDE; +binterface = IF_IDE; max_devs = MAX_IDE_DEVS; strcpy(devname, ide); } @@ -4906,22 +4906,22 @@ if (get_param_value(buf, sizeof(buf), if, str)) { strncpy(devname, buf, sizeof(devname)); if (!strcmp(buf, ide)) { - interface = IF_IDE; + binterface = IF_IDE; max_devs = MAX_IDE_DEVS; } else if (!strcmp(buf, scsi)) { - interface = IF_SCSI; + binterface = IF_SCSI; max_devs = MAX_SCSI_DEVS; } else if (!strcmp(buf, floppy)) { - interface = IF_FLOPPY; + binterface = IF_FLOPPY; max_devs = 0; } else if (!strcmp(buf, pflash)) { - interface = IF_PFLASH; + binterface = IF_PFLASH; max_devs = 0; } else if (!strcmp(buf, mtd)) { - interface = IF_MTD; + binterface = IF_MTD; max_devs = 0; } else if (!strcmp(buf, sd)) { - interface = IF_SD; + binterface = IF_SD; max_devs = 0; } else { fprintf(stderr, qemu: '%s' unsupported bus type '%s'\n, str, buf); @@ -5036,7 +5036,7 @@ if (unit_id == -1) { unit_id = 0; - while (drive_get_index(interface, bus_id, unit_id) != -1) { + while (drive_get_index(binterface, bus_id, unit_id) != -1) { unit_id++; if (max_devs unit_id = max_devs) { unit_id -= max_devs; @@ -5057,23 +5057,23 @@ * ignore multiple definitions */ -if (drive_get_index(interface, bus_id, unit_id) != -1) +if (drive_get_index(binterface, bus_id, unit_id) != -1) return 0; /* init */ -if (interface == IF_IDE || interface == IF_SCSI) +if (binterface == IF_IDE || binterface == IF_SCSI) mediastr = (media == MEDIA_CDROM) ? -cd : -hd; snprintf(buf, sizeof(buf), max_devs ? %1$s%4$i%2$s%3$i : %s%s%i, devname, mediastr, unit_id, bus_id); bdrv = bdrv_new(buf); drives_table[nb_drives].bdrv = bdrv; -drives_table[nb_drives].interface = interface; +drives_table[nb_drives].binterface = binterface; drives_table[nb_drives].bus = bus_id; drives_table[nb_drives].unit = unit_id; nb_drives++; -switch(interface) { +
Re: [Qemu-devel] Windows build broken
basetyps.h is included by windows.h / rpc.h. QEMU does not need it, so you can avoid it like this: #define WIN32_LEAN_AND_MEAN #include windows.h WIN32_LEAN_AND_MEAN reduces the number of includes in windows.h and increases compilation speed. And you don't have to rename variables like interface :-) Regards, Stefan Eduardo Felipe schrieb: 2007/12/12, C.W. Betts [EMAIL PROTECTED] mailto:[EMAIL PROTECTED]: Could you perhaps give a patch? I don't feel like going through and changing every instance of BlockInterfaceType to something else. Having a closer look I think the underlying problem is a name conflict with a #define in Mingw's header file basetyps.h, so renaming variables looks right to me. Patch attached. Regards, *** sysemu.h --- sysemu.h --- sysemu.h 2 Dec 2007 04:51:08 - 1.2 +++ sysemu.h 12 Dec 2007 19:17:47 - @@ -122,7 +122,7 @@ typedef struct DriveInfo { BlockDriverState *bdrv; - BlockInterfaceType interface; + BlockInterfaceType binterface; int bus; int unit; } DriveInfo; @@ -134,8 +134,8 @@ int nb_drives; DriveInfo drives_table[MAX_DRIVES+1]; -extern int drive_get_index(BlockInterfaceType interface, int bus, int unit); -extern int drive_get_max_bus(BlockInterfaceType interface); +extern int drive_get_index(BlockInterfaceType binterface, int bus, int unit); +extern int drive_get_max_bus(BlockInterfaceType binterface); /* serial ports */ *** vl.c --- vl.c --- vl.c 10 Dec 2007 20:00:10 - 1.378 +++ vl.c 12 Dec 2007 19:17:09 - @@ -4811,14 +4811,14 @@ return nb_drives_opt++; } -int drive_get_index(BlockInterfaceType interface, int bus, int unit) +int drive_get_index(BlockInterfaceType binterface, int bus, int unit) { int index; /* seek interface, bus and unit */ for (index = 0; index nb_drives; index++) - if (drives_table[index].interface == interface + if (drives_table[index].binterface == binterface drives_table[index].bus == bus drives_table[index].unit == unit) return index; @@ -4826,14 +4826,14 @@ return -1; } -int drive_get_max_bus(BlockInterfaceType interface) +int drive_get_max_bus(BlockInterfaceType binterface) { int max_bus; int index; max_bus = -1; for (index = 0; index nb_drives; index++) { - if(drives_table[index].interface == interface + if(drives_table[index].binterface == binterface drives_table[index].bus max_bus) max_bus = drives_table[index].bus; } @@ -4846,7 +4846,7 @@ char file[1024]; char devname[128]; const char *mediastr = ; - BlockInterfaceType interface; + BlockInterfaceType binterface; enum { MEDIA_DISK, MEDIA_CDROM } media; int bus_id, unit_id; int cyls, heads, secs, translation; @@ -4875,11 +4875,11 @@ !strcmp(machine-name, SS-600MP) || !strcmp(machine-name, versatilepb) || !strcmp(machine-name, versatileab)) { - interface = IF_SCSI; + binterface = IF_SCSI; max_devs = MAX_SCSI_DEVS; strcpy(devname, scsi); } else { - interface = IF_IDE; + binterface = IF_IDE; max_devs = MAX_IDE_DEVS; strcpy(devname, ide); } @@ -4906,22 +4906,22 @@ if (get_param_value(buf, sizeof(buf), if, str)) { strncpy(devname, buf, sizeof(devname)); if (!strcmp(buf, ide)) { - interface = IF_IDE; + binterface = IF_IDE; max_devs = MAX_IDE_DEVS; } else if (!strcmp(buf, scsi)) { - interface = IF_SCSI; + binterface = IF_SCSI; max_devs = MAX_SCSI_DEVS; } else if (!strcmp(buf, floppy)) { - interface = IF_FLOPPY; + binterface = IF_FLOPPY; max_devs = 0; } else if (!strcmp(buf, pflash)) { - interface = IF_PFLASH; + binterface = IF_PFLASH; max_devs = 0; } else if (!strcmp(buf, mtd)) { - interface = IF_MTD; + binterface = IF_MTD; max_devs = 0; } else if (!strcmp(buf, sd)) { - interface = IF_SD; + binterface = IF_SD; max_devs = 0; } else { fprintf(stderr, qemu: '%s' unsupported bus type '%s'\n, str, buf); @@ -5036,7 +5036,7 @@ if (unit_id == -1) { unit_id = 0; - while (drive_get_index(interface, bus_id, unit_id) != -1) { + while (drive_get_index(binterface, bus_id, unit_id) != -1) { unit_id++; if (max_devs unit_id = max_devs) { unit_id -= max_devs; @@ -5057,23 +5057,23 @@ * ignore multiple definitions */ - if (drive_get_index(interface, bus_id, unit_id) != -1) + if (drive_get_index(binterface, bus_id, unit_id) != -1) return 0; /* init */ - if (interface == IF_IDE || interface == IF_SCSI) + if (binterface == IF_IDE || binterface == IF_SCSI) mediastr = (media == MEDIA_CDROM) ? -cd : -hd; snprintf(buf, sizeof(buf), max_devs ? %1$s%4$i%2$s%3$i : %s%s%i, devname, mediastr, unit_id, bus_id); bdrv = bdrv_new(buf); drives_table[nb_drives].bdrv = bdrv; - drives_table[nb_drives].interface = interface; + drives_table[nb_drives].binterface = binterface; drives_table[nb_drives].bus = bus_id; drives_table[nb_drives].unit = unit_id; nb_drives++; - switch(interface) { + switch(binterface) { case IF_IDE: case IF_SCSI: switch(media) {
Re: [Qemu-devel] Windows build broken
Stefan Weil wrote: basetyps.h is included by windows.h / rpc.h. QEMU does not need it, so you can avoid it like this: #define WIN32_LEAN_AND_MEAN #include windows.h WIN32_LEAN_AND_MEAN reduces the number of includes in windows.h and increases compilation speed. And you don't have to rename variables like interface :-) Regards, Stefan Eduardo Felipe schrieb: 2007/12/12, C.W. Betts [EMAIL PROTECTED] mailto:[EMAIL PROTECTED]: Could you perhaps give a patch? I don't feel like going through and changing every instance of BlockInterfaceType to something else. Having a closer look I think the underlying problem is a name conflict with a #define in Mingw's header file basetyps.h, so renaming variables looks right to me. Patch attached. Regards, Hi, I would prefer Eduardo's patch, defining WIN32_LEAN_AND_MEAN breaks dsound. Thanks.