Re: [Qemu-devel] Windows build broken

2007-12-12 Thread C.W. Betts
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

2007-12-12 Thread C.W. Betts
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 Thread Eduardo Felipe
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

2007-12-12 Thread Stefan Weil
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

2007-12-12 Thread JonY

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.