* [Qemu-devel] [PATCH v2 0/4] Cocoa patches for 1.0 @ 2011-10-31 19:17 Andreas Färber 2011-10-31 19:17 ` [Qemu-devel] [PATCH v2 1/4] MAINTAINERS: Add Cocoa maintainer Andreas Färber ` (3 more replies) 0 siblings, 4 replies; 24+ messages in thread From: Andreas Färber @ 2011-10-31 19:17 UTC (permalink / raw) To: qemu-devel; +Cc: Andreas Färber Hello, Here's an updated series, including a runtime abort fix and a GUI bugfix. Note: Patch 3/4 touches generic code. Regards, Andreas Andreas Färber (4): MAINTAINERS: Add Cocoa maintainer softfloat: Avoid uint16 type conflict on Darwin vl.c: Guard against GThread double-initialization cocoa: Close sheet after image file selection MAINTAINERS | 5 +++++ fpu/softfloat.h | 3 +++ ui/cocoa.m | 2 ++ vl.c | 4 +++- 4 files changed, 13 insertions(+), 1 deletions(-) ^ permalink raw reply [flat|nested] 24+ messages in thread
* [Qemu-devel] [PATCH v2 1/4] MAINTAINERS: Add Cocoa maintainer 2011-10-31 19:17 [Qemu-devel] [PATCH v2 0/4] Cocoa patches for 1.0 Andreas Färber @ 2011-10-31 19:17 ` Andreas Färber 2011-10-31 19:18 ` [Qemu-devel] [PATCH v2 2/4] softfloat: Avoid uint16 type conflict on Darwin Andreas Färber ` (2 subsequent siblings) 3 siblings, 0 replies; 24+ messages in thread From: Andreas Färber @ 2011-10-31 19:17 UTC (permalink / raw) To: qemu-devel; +Cc: Andreas Färber, Anthony Liguori Degrade cocoa.m from Maintained to Odd Fixes. Signed-off-by: Andreas Färber <andreas.faerber@web.de> Cc: Anthony Liguori <aliguori@us.ibm.com> --- MAINTAINERS | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-) diff --git a/MAINTAINERS b/MAINTAINERS index 2b4c5d7..c08951c 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -446,6 +446,11 @@ M: Anthony Liguori <aliguori@us.ibm.com> S: Maintained F: ui/ +Cocoa graphics +M: Andreas Färber <andreas.faerber@web.de> +S: Odd Fixes +F: ui/cocoa.m + Main loop M: Anthony Liguori <aliguori@us.ibm.com> S: Supported -- 1.7.0.3 ^ permalink raw reply related [flat|nested] 24+ messages in thread
* [Qemu-devel] [PATCH v2 2/4] softfloat: Avoid uint16 type conflict on Darwin 2011-10-31 19:17 [Qemu-devel] [PATCH v2 0/4] Cocoa patches for 1.0 Andreas Färber 2011-10-31 19:17 ` [Qemu-devel] [PATCH v2 1/4] MAINTAINERS: Add Cocoa maintainer Andreas Färber @ 2011-10-31 19:18 ` Andreas Färber 2011-10-31 19:42 ` Peter Maydell 2011-11-01 8:09 ` Eric Sunshine 2011-10-31 19:18 ` [Qemu-devel] [PATCH v2 3/4] vl.c: Guard against GThread double-initialization Andreas Färber 2011-10-31 19:18 ` [Qemu-devel] [PATCH v2 4/4] cocoa: Close sheet after image file selection Andreas Färber 3 siblings, 2 replies; 24+ messages in thread From: Andreas Färber @ 2011-10-31 19:18 UTC (permalink / raw) To: qemu-devel; +Cc: Peter Maydell, Andreas Färber, Juan Pineda In file included from ./bswap.h:7, from ./qemu-common.h:106, from ./qemu-aio.h:17, from ./Block.h:4, from /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/FSEvents.h:28, from /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/CarbonCore.h:218, from /System/Library/Frameworks/CoreServices.framework/Frameworks/AE.framework/Headers/AE.h:20, from /System/Library/Frameworks/CoreServices.framework/Headers/CoreServices.h:21, from /System/Library/Frameworks/Foundation.framework/Headers/NSURLError.h:17, from /System/Library/Frameworks/Foundation.framework/Headers/Foundation.h:81, from /System/Library/Frameworks/Cocoa.framework/Headers/Cocoa.h:12, from ui/cocoa.m:25: /Users/andreas/QEMU/qemu/fpu/softfloat.h:60: error: conflicting types for ‘uint16’ /System/Library/Frameworks/Security.framework/Headers/cssmconfig.h:73: error: previous declaration of ‘uint16’ was here make: *** [ui/cocoa.o] Error 1 Apple's FSEvents.h has #include <Block.h>, which wants /usr/include/Block.h but due to case-insensitive file system and include path jungle gets QEMU's ./block.h, which in turn includes softfloat.h indirectly. Therefore work around the conflict in softfloat.h itself by renaming specifically uint16 on Darwin to qemu_uint16. This fixes the build until we have a more general solution. Signed-off-by: Andreas Färber <andreas.faerber@web.de> Cc: Juan Pineda <juan@logician.com> Cc: Peter Maydell <peter.maydell@linaro.org> --- fpu/softfloat.h | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/fpu/softfloat.h b/fpu/softfloat.h index 07c2929..5320945 100644 --- a/fpu/softfloat.h +++ b/fpu/softfloat.h @@ -54,6 +54,9 @@ these four paragraphs for those parts of this code that are retained. | to the same as `int'. *----------------------------------------------------------------------------*/ typedef uint8_t flag; +#ifdef __APPLE__ +#define uint16 qemu_uint16 +#endif typedef uint8_t uint8; typedef int8_t int8; #ifndef _AIX -- 1.7.0.3 ^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: [Qemu-devel] [PATCH v2 2/4] softfloat: Avoid uint16 type conflict on Darwin 2011-10-31 19:18 ` [Qemu-devel] [PATCH v2 2/4] softfloat: Avoid uint16 type conflict on Darwin Andreas Färber @ 2011-10-31 19:42 ` Peter Maydell 2011-10-31 19:17 ` Andreas Färber 2011-11-01 8:09 ` Eric Sunshine 1 sibling, 1 reply; 24+ messages in thread From: Peter Maydell @ 2011-10-31 19:42 UTC (permalink / raw) To: Andreas Färber; +Cc: Juan Pineda, qemu-devel On 31 October 2011 19:18, Andreas Färber <andreas.faerber@web.de> wrote: > --- a/fpu/softfloat.h > +++ b/fpu/softfloat.h > @@ -54,6 +54,9 @@ these four paragraphs for those parts of this code that are retained. > | to the same as `int'. > *----------------------------------------------------------------------------*/ > typedef uint8_t flag; > +#ifdef __APPLE__ > +#define uint16 qemu_uint16 > +#endif > typedef uint8_t uint8; > typedef int8_t int8; > #ifndef _AIX I hate this, but I don't think I quite hate it enough to leave compilation on Macs broken in 1.0... Ideally we should just make a decision about whether we want option (1) or (2) from http://permalink.gmane.org/gmane.comp.emulators.qemu/115848 -- PMM ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [Qemu-devel] [PATCH v2 2/4] softfloat: Avoid uint16 type conflict on Darwin 2011-10-31 19:42 ` Peter Maydell @ 2011-10-31 19:17 ` Andreas Färber 0 siblings, 0 replies; 24+ messages in thread From: Andreas Färber @ 2011-10-31 19:17 UTC (permalink / raw) To: Peter Maydell; +Cc: Juan Pineda, qemu-devel Am 31.10.2011 20:42, schrieb Peter Maydell: > On 31 October 2011 19:18, Andreas Färber <andreas.faerber@web.de> wrote: >> --- a/fpu/softfloat.h >> +++ b/fpu/softfloat.h >> @@ -54,6 +54,9 @@ these four paragraphs for those parts of this code that are retained. >> | to the same as `int'. >> *----------------------------------------------------------------------------*/ >> typedef uint8_t flag; >> +#ifdef __APPLE__ >> +#define uint16 qemu_uint16 >> +#endif >> typedef uint8_t uint8; >> typedef int8_t int8; >> #ifndef _AIX > > I hate this, but I don't think I quite hate it enough to leave compilation > on Macs broken in 1.0... > > Ideally we should just make a decision about whether we want option > (1) or (2) from > http://permalink.gmane.org/gmane.comp.emulators.qemu/115848 That's what "more general solution" refers to. At this point in time though I'd much prefer to commit a non-intrusive three-line quickfix (which we can easily remove later on) than no solution at all or than to refactor lots of softfloat code. Andreas ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [Qemu-devel] [PATCH v2 2/4] softfloat: Avoid uint16 type conflict on Darwin 2011-10-31 19:18 ` [Qemu-devel] [PATCH v2 2/4] softfloat: Avoid uint16 type conflict on Darwin Andreas Färber 2011-10-31 19:42 ` Peter Maydell @ 2011-11-01 8:09 ` Eric Sunshine 2011-11-01 16:37 ` Andreas Färber 1 sibling, 1 reply; 24+ messages in thread From: Eric Sunshine @ 2011-11-01 8:09 UTC (permalink / raw) To: Andreas Färber; +Cc: Peter Maydell, Juan Pineda, qemu-devel On Oct 31, 2011, at 3:18 PM, Andreas Färber wrote: > In file included from ./bswap.h:7, > from ./qemu-common.h:106, > from ./qemu-aio.h:17, > from ./Block.h:4, > from /System/Library/Frameworks/ > CoreServices.framework/Frameworks/CarbonCore.framework/Headers/ > FSEvents.h:28, > from /System/Library/Frameworks/ > CoreServices.framework/Frameworks/CarbonCore.framework/Headers/ > CarbonCore.h:218, > from /System/Library/Frameworks/ > CoreServices.framework/Frameworks/AE.framework/Headers/AE.h:20, > from /System/Library/Frameworks/ > CoreServices.framework/Headers/CoreServices.h:21, > from /System/Library/Frameworks/Foundation.framework/ > Headers/NSURLError.h:17, > from /System/Library/Frameworks/Foundation.framework/ > Headers/Foundation.h:81, > from /System/Library/Frameworks/Cocoa.framework/ > Headers/Cocoa.h:12, > from ui/cocoa.m:25: > /Users/andreas/QEMU/qemu/fpu/softfloat.h:60: error: conflicting > types for ‘uint16’ > /System/Library/Frameworks/Security.framework/Headers/cssmconfig.h: > 73: error: previous declaration of ‘uint16’ was here > make: *** [ui/cocoa.o] Error 1 > > Apple's FSEvents.h has #include <Block.h>, which wants > /usr/include/Block.h but due to case-insensitive file system and > include path jungle gets QEMU's ./block.h, which in turn includes > softfloat.h indirectly. > > Therefore work around the conflict in softfloat.h itself > by renaming specifically uint16 on Darwin to qemu_uint16. > This fixes the build until we have a more general solution. > > Signed-off-by: Andreas Färber <andreas.faerber@web.de> > Cc: Juan Pineda <juan@logician.com> > Cc: Peter Maydell <peter.maydell@linaro.org> > --- > fpu/softfloat.h | 3 +++ > 1 files changed, 3 insertions(+), 0 deletions(-) > > diff --git a/fpu/softfloat.h b/fpu/softfloat.h > index 07c2929..5320945 100644 > --- a/fpu/softfloat.h > +++ b/fpu/softfloat.h > @@ -54,6 +54,9 @@ these four paragraphs for those parts of this code > that are retained. > | to the same as `int'. > *----------------------------------------------------------------------------*/ > typedef uint8_t flag; > +#ifdef __APPLE__ > +#define uint16 qemu_uint16 > +#endif > typedef uint8_t uint8; > typedef int8_t int8; > #ifndef _AIX Perhaps the following alternative solution would be more palatable? It's still tremendously ugly, but is localized to cocoa.m, thus less intrusive. -- >8 -- Subject: [PATCH] softfloat: Avoid uint16 type conflict on Darwin cocoa.m includes <Security/cssmconfig.h> indirectly via <Cocoa/Cocoa.h>. cssmconfig.h defines type uint16 which unfortunately conflicts with the definition in qemu's softfloat.h, thus resulting in compilation failure. To work around the problem, #define _UINT16, which informs cssmconfig.h that uint16 is already defined and that it should not apply its own definition. Additionally, ensure that <Cocoa/Cocoa.h> is included after softfloat.h rather than before since some Cocoa headers expect type uint16 to exist. Signed-off-by: Eric Sunshine <sunshine@sunshineco.com> --- ui/cocoa.m | 7 ++++--- 1 files changed, 4 insertions(+), 3 deletions(-) diff --git a/ui/cocoa.m b/ui/cocoa.m index d9e4e3d..ac15418 100644 --- a/ui/cocoa.m +++ b/ui/cocoa.m @@ -22,13 +22,14 @@ * THE SOFTWARE. */ -#import <Cocoa/Cocoa.h> -#include <crt_externs.h> - #include "qemu-common.h" #include "console.h" #include "sysemu.h" +#define _UINT16 +#import <Cocoa/Cocoa.h> +#include <crt_externs.h> + #ifndef MAC_OS_X_VERSION_10_4 #define MAC_OS_X_VERSION_10_4 1040 #endif -- 1.7.7.1 ^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: [Qemu-devel] [PATCH v2 2/4] softfloat: Avoid uint16 type conflict on Darwin 2011-11-01 8:09 ` Eric Sunshine @ 2011-11-01 16:37 ` Andreas Färber 2011-11-01 17:59 ` [Qemu-devel] [PATCH v3 " Andreas Färber 2011-11-01 18:47 ` [Qemu-devel] [PATCH v2 " Eric Sunshine 0 siblings, 2 replies; 24+ messages in thread From: Andreas Färber @ 2011-11-01 16:37 UTC (permalink / raw) To: Eric Sunshine; +Cc: Peter Maydell, Juan Pineda, qemu-devel Am 01.11.2011 09:09, schrieb Eric Sunshine: > Perhaps the following alternative solution would be more palatable? It's > still tremendously ugly, but is localized to cocoa.m, thus less intrusive. > > -- >8 -- > Subject: [PATCH] softfloat: Avoid uint16 type conflict on Darwin > > cocoa.m includes <Security/cssmconfig.h> indirectly via <Cocoa/Cocoa.h>. > cssmconfig.h defines type uint16 which unfortunately conflicts with the > definition in qemu's softfloat.h, thus resulting in compilation failure. > To work around the problem, #define _UINT16, which informs cssmconfig.h > that uint16 is already defined and that it should not apply its own > definition. Thanks for the suggestion! _UINT16 is an interesting suggestion, however softfloat's uint16 is not uint16_t but int, so I'd rather not do it that way around. (I had also decided against the AIX path of never defining uint16 and always using system definitions, since that wouldn't work outside Cocoa code.) Do you have any thoughts about the include path issue? If we could keep QEMU code from getting into #import <Cocoa/Cocoa.h> then we could redefine the system type instead, in cocoa.m. Andreas ^ permalink raw reply [flat|nested] 24+ messages in thread
* [Qemu-devel] [PATCH v3 2/4] softfloat: Avoid uint16 type conflict on Darwin 2011-11-01 16:37 ` Andreas Färber @ 2011-11-01 17:59 ` Andreas Färber 2011-11-01 18:01 ` Peter Maydell 2011-11-01 18:17 ` Andreas Färber 2011-11-01 18:47 ` [Qemu-devel] [PATCH v2 " Eric Sunshine 1 sibling, 2 replies; 24+ messages in thread From: Andreas Färber @ 2011-11-01 17:59 UTC (permalink / raw) To: qemu-devel; +Cc: Peter Maydell, Andreas Färber, Juan Pineda, Eric Sunshine On Mac OS X we get: In file included from ./bswap.h:7, from ./qemu-common.h:106, from ./qemu-aio.h:17, from ./Block.h:4, from /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/FSEvents.h:28, from /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/CarbonCore.h:218, from /System/Library/Frameworks/CoreServices.framework/Frameworks/AE.framework/Headers/AE.h:20, from /System/Library/Frameworks/CoreServices.framework/Headers/CoreServices.h:21, from /System/Library/Frameworks/Foundation.framework/Headers/NSURLError.h:17, from /System/Library/Frameworks/Foundation.framework/Headers/Foundation.h:81, from /System/Library/Frameworks/Cocoa.framework/Headers/Cocoa.h:12, from ui/cocoa.m:25: /Users/andreas/QEMU/qemu/fpu/softfloat.h:60: error: conflicting types for ‘uint16’ /System/Library/Frameworks/Security.framework/Headers/cssmconfig.h:73: error: previous declaration of ‘uint16’ was here make: *** [ui/cocoa.o] Error 1 Apple's FSEvents.h has #include <Block.h>, which wants /usr/include/Block.h but due to case-insensitive file system and include path jungle gets QEMU's ./block.h, which in turn includes softfloat.h indirectly. Therefore work around the conflict in softfloat.h itself, by reusing uint16 from Security/cssmconfig.h on Darwin. This fixes the build until we have a more general solution. Signed-off-by: Andreas Färber <andreas.faerber@web.de> Cc: Eric Sunshine <sunshine@sunshineco.com> Cc: Juan Pineda <juan@logician.com> Cc: Peter Maydell <peter.maydell@linaro.org> --- fpu/softfloat.h | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/fpu/softfloat.h b/fpu/softfloat.h index 07c2929..229d834 100644 --- a/fpu/softfloat.h +++ b/fpu/softfloat.h @@ -57,7 +57,9 @@ typedef uint8_t flag; typedef uint8_t uint8; typedef int8_t int8; #ifndef _AIX +#if !(defined(__APPLE__) && defined(_UINT16)) typedef int uint16; +#endif typedef int int16; #endif typedef unsigned int uint32; -- 1.7.0.3 ^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: [Qemu-devel] [PATCH v3 2/4] softfloat: Avoid uint16 type conflict on Darwin 2011-11-01 17:59 ` [Qemu-devel] [PATCH v3 " Andreas Färber @ 2011-11-01 18:01 ` Peter Maydell 2011-11-01 18:05 ` Andreas Färber 2011-11-01 18:17 ` Andreas Färber 1 sibling, 1 reply; 24+ messages in thread From: Peter Maydell @ 2011-11-01 18:01 UTC (permalink / raw) To: Andreas Färber; +Cc: Juan Pineda, qemu-devel, Eric Sunshine On 1 November 2011 17:59, Andreas Färber <andreas.faerber@web.de> wrote: > Apple's FSEvents.h has #include <Block.h>, which wants > /usr/include/Block.h but due to case-insensitive file system and > include path jungle gets QEMU's ./block.h, which in turn includes > softfloat.h indirectly. Incidentally, surely you need to fix this anyway (ie fix the include path issue somehow)? -- PMM ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [Qemu-devel] [PATCH v3 2/4] softfloat: Avoid uint16 type conflict on Darwin 2011-11-01 18:01 ` Peter Maydell @ 2011-11-01 18:05 ` Andreas Färber 2011-11-01 18:55 ` Eric Sunshine 0 siblings, 1 reply; 24+ messages in thread From: Andreas Färber @ 2011-11-01 18:05 UTC (permalink / raw) To: Peter Maydell; +Cc: Juan Pineda, qemu-devel, Eric Sunshine Am 01.11.2011 19:01, schrieb Peter Maydell: > On 1 November 2011 17:59, Andreas Färber <andreas.faerber@web.de> wrote: >> Apple's FSEvents.h has #include <Block.h>, which wants >> /usr/include/Block.h but due to case-insensitive file system and >> include path jungle gets QEMU's ./block.h, which in turn includes >> softfloat.h indirectly. > > Incidentally, surely you need to fix this anyway (ie fix the > include path issue somehow)? Yes, that's why I'm explicitly documenting it. I have no clue how to fix it though. Experts' opinion welcome! Andreas ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [Qemu-devel] [PATCH v3 2/4] softfloat: Avoid uint16 type conflict on Darwin 2011-11-01 18:05 ` Andreas Färber @ 2011-11-01 18:55 ` Eric Sunshine 2011-11-01 19:11 ` Andreas Färber 0 siblings, 1 reply; 24+ messages in thread From: Eric Sunshine @ 2011-11-01 18:55 UTC (permalink / raw) To: Andreas Färber; +Cc: Peter Maydell, Juan Pineda, qemu-devel On Nov 1, 2011, at 2:05 PM, Andreas Färber wrote: > Am 01.11.2011 19:01, schrieb Peter Maydell: >> On 1 November 2011 17:59, Andreas Färber <andreas.faerber@web.de> >> wrote: >>> Apple's FSEvents.h has #include <Block.h>, which wants >>> /usr/include/Block.h but due to case-insensitive file system and >>> include path jungle gets QEMU's ./block.h, which in turn includes >>> softfloat.h indirectly. >> >> Incidentally, surely you need to fix this anyway (ie fix the >> include path issue somehow)? > > Yes, that's why I'm explicitly documenting it. I have no clue how to > fix > it though. Experts' opinion welcome! It probably is not a good idea to emphasize the particular #include stack issued by this one build environment (presumably XCode on Lion?) so loudly in the commit message. The type redefinition error will manifest regardless of #include ordering and regardless of whether or not ./block.h is picked up accidentally instead of <Block.h>. For instance, on Leopard with XCode 3.1.4, the #include stack emitted with the error message is entirely different even though the underlying issue is the same: OBJC ui/cocoa.o In file included from ./bswap.h:8, from ./qemu-common.h:107, from ui/cocoa.m:29: /Users/sunshine/Desktop/qemu/fpu/softfloat.h:60: error: conflicting types for 'uint16' /System/Library/Frameworks/Security.framework/Headers/cssmconfig.h:68: error: previous declaration of 'uint16' was here make: *** [ui/cocoa.o] Error 1 In fact, on Leopard, FSEvents.h does not #include <Block.h>, so focusing on it in the log message is misleading. -- ES ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [Qemu-devel] [PATCH v3 2/4] softfloat: Avoid uint16 type conflict on Darwin 2011-11-01 18:55 ` Eric Sunshine @ 2011-11-01 19:11 ` Andreas Färber 0 siblings, 0 replies; 24+ messages in thread From: Andreas Färber @ 2011-11-01 19:11 UTC (permalink / raw) To: Eric Sunshine; +Cc: Peter Maydell, Juan Pineda, qemu-devel Am 01.11.2011 19:55, schrieb Eric Sunshine: > On Nov 1, 2011, at 2:05 PM, Andreas Färber wrote: >> Am 01.11.2011 19:01, schrieb Peter Maydell: >>> On 1 November 2011 17:59, Andreas Färber <andreas.faerber@web.de> wrote: >>>> Apple's FSEvents.h has #include <Block.h>, which wants >>>> /usr/include/Block.h but due to case-insensitive file system and >>>> include path jungle gets QEMU's ./block.h, which in turn includes >>>> softfloat.h indirectly. >>> >>> Incidentally, surely you need to fix this anyway (ie fix the >>> include path issue somehow)? >> >> Yes, that's why I'm explicitly documenting it. I have no clue how to fix >> it though. Experts' opinion welcome! > > > It probably is not a good idea to emphasize the particular #include > stack issued by this one build environment (presumably XCode on Lion?) > so loudly in the commit message. The type redefinition error will > manifest regardless of #include ordering and regardless of whether or > not ./block.h is picked up accidentally instead of <Block.h>. For > instance, on Leopard with XCode 3.1.4, the #include stack emitted with > the error message is entirely different even though the underlying issue > is the same: > > OBJC ui/cocoa.o > In file included from ./bswap.h:8, > from ./qemu-common.h:107, > from ui/cocoa.m:29: > /Users/sunshine/Desktop/qemu/fpu/softfloat.h:60: error: conflicting > types for 'uint16' > /System/Library/Frameworks/Security.framework/Headers/cssmconfig.h:68: > error: previous declaration of 'uint16' was here > make: *** [ui/cocoa.o] Error 1 > > In fact, on Leopard, FSEvents.h does not #include <Block.h>, so focusing > on it in the log message is misleading. My point is, that's the reason it needs to be fixed *this* way and not in cocoa.m like you'd expect. If it doesn't show up in git-blame, people will not understand and "clean up". It's always just an example since it includes user-specific paths - here Snow Leopard. Rewording. AF ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [Qemu-devel] [PATCH v3 2/4] softfloat: Avoid uint16 type conflict on Darwin 2011-11-01 17:59 ` [Qemu-devel] [PATCH v3 " Andreas Färber 2011-11-01 18:01 ` Peter Maydell @ 2011-11-01 18:17 ` Andreas Färber 1 sibling, 0 replies; 24+ messages in thread From: Andreas Färber @ 2011-11-01 18:17 UTC (permalink / raw) To: qemu-devel; +Cc: Peter Maydell, Juan Pineda, Eric Sunshine Am 01.11.2011 18:59, schrieb Andreas Färber: > On Mac OS X we get: > > In file included from ./bswap.h:7, > from ./qemu-common.h:106, > from ./qemu-aio.h:17, > from ./Block.h:4, > from /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/FSEvents.h:28, > from /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/CarbonCore.h:218, > from /System/Library/Frameworks/CoreServices.framework/Frameworks/AE.framework/Headers/AE.h:20, > from /System/Library/Frameworks/CoreServices.framework/Headers/CoreServices.h:21, > from /System/Library/Frameworks/Foundation.framework/Headers/NSURLError.h:17, > from /System/Library/Frameworks/Foundation.framework/Headers/Foundation.h:81, > from /System/Library/Frameworks/Cocoa.framework/Headers/Cocoa.h:12, > from ui/cocoa.m:25: > /Users/andreas/QEMU/qemu/fpu/softfloat.h:60: error: conflicting types for ‘uint16’ > /System/Library/Frameworks/Security.framework/Headers/cssmconfig.h:73: error: previous declaration of ‘uint16’ was here > make: *** [ui/cocoa.o] Error 1 > > Apple's FSEvents.h has #include <Block.h>, which wants > /usr/include/Block.h but due to case-insensitive file system and > include path jungle gets QEMU's ./block.h, which in turn includes > softfloat.h indirectly. > > Therefore work around the conflict in softfloat.h itself, > by reusing uint16 from Security/cssmconfig.h on Darwin. > This fixes the build until we have a more general solution. > > Signed-off-by: Andreas Färber <andreas.faerber@web.de> > Cc: Eric Sunshine <sunshine@sunshineco.com> > Cc: Juan Pineda <juan@logician.com> > Cc: Peter Maydell <peter.maydell@linaro.org> v3 series is available from git://repo.or.cz/qemu/afaerber.git cocoa-for-upstream If no further protest arises, I'll send a pull request later today. Andreas > --- > fpu/softfloat.h | 2 ++ > 1 files changed, 2 insertions(+), 0 deletions(-) > > diff --git a/fpu/softfloat.h b/fpu/softfloat.h > index 07c2929..229d834 100644 > --- a/fpu/softfloat.h > +++ b/fpu/softfloat.h > @@ -57,7 +57,9 @@ typedef uint8_t flag; > typedef uint8_t uint8; > typedef int8_t int8; > #ifndef _AIX > +#if !(defined(__APPLE__) && defined(_UINT16)) > typedef int uint16; > +#endif > typedef int int16; > #endif > typedef unsigned int uint32; ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [Qemu-devel] [PATCH v2 2/4] softfloat: Avoid uint16 type conflict on Darwin 2011-11-01 16:37 ` Andreas Färber 2011-11-01 17:59 ` [Qemu-devel] [PATCH v3 " Andreas Färber @ 2011-11-01 18:47 ` Eric Sunshine 2011-11-01 18:52 ` Andreas Färber 1 sibling, 1 reply; 24+ messages in thread From: Eric Sunshine @ 2011-11-01 18:47 UTC (permalink / raw) To: Andreas Färber; +Cc: Peter Maydell, Juan Pineda, qemu-devel On Nov 1, 2011, at 12:37 PM, Andreas Färber wrote: > Am 01.11.2011 09:09, schrieb Eric Sunshine: >> Perhaps the following alternative solution would be more palatable? >> It's >> still tremendously ugly, but is localized to cocoa.m, thus less >> intrusive. >> >> -- >8 -- >> Subject: [PATCH] softfloat: Avoid uint16 type conflict on Darwin >> >> cocoa.m includes <Security/cssmconfig.h> indirectly via <Cocoa/ >> Cocoa.h>. >> cssmconfig.h defines type uint16 which unfortunately conflicts with >> the >> definition in qemu's softfloat.h, thus resulting in compilation >> failure. >> To work around the problem, #define _UINT16, which informs >> cssmconfig.h >> that uint16 is already defined and that it should not apply its own >> definition. > > Thanks for the suggestion! _UINT16 is an interesting suggestion, > however > softfloat's uint16 is not uint16_t but int, so I'd rather not do it > that > way around. > > (I had also decided against the AIX path of never defining uint16 and > always using system definitions, since that wouldn't work outside > Cocoa > code.) > > Do you have any thoughts about the include path issue? If we could > keep > QEMU code from getting into #import <Cocoa/Cocoa.h> then we could > redefine the system type instead, in cocoa.m. Is the intention to trust uint16 from <Security/cssmconfig.h> over the one softfloat.h? If so, shouldn't we be taking as many type definitions from <Security/cssmconfig.h> as we can rather than just this one? (I'm not recommending it; just trying to understand the goal.) -- ES ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [Qemu-devel] [PATCH v2 2/4] softfloat: Avoid uint16 type conflict on Darwin 2011-11-01 18:47 ` [Qemu-devel] [PATCH v2 " Eric Sunshine @ 2011-11-01 18:52 ` Andreas Färber 2011-11-01 19:06 ` Eric Sunshine 0 siblings, 1 reply; 24+ messages in thread From: Andreas Färber @ 2011-11-01 18:52 UTC (permalink / raw) To: Eric Sunshine; +Cc: Peter Maydell, Juan Pineda, qemu-devel Am 01.11.2011 19:47, schrieb Eric Sunshine: > On Nov 1, 2011, at 12:37 PM, Andreas Färber wrote: >> Am 01.11.2011 09:09, schrieb Eric Sunshine: >>> Perhaps the following alternative solution would be more palatable? It's >>> still tremendously ugly, but is localized to cocoa.m, thus less >>> intrusive. >>> >>> -- >8 -- >>> Subject: [PATCH] softfloat: Avoid uint16 type conflict on Darwin >>> >>> cocoa.m includes <Security/cssmconfig.h> indirectly via <Cocoa/Cocoa.h>. >>> cssmconfig.h defines type uint16 which unfortunately conflicts with the >>> definition in qemu's softfloat.h, thus resulting in compilation failure. >>> To work around the problem, #define _UINT16, which informs cssmconfig.h >>> that uint16 is already defined and that it should not apply its own >>> definition. >> >> Thanks for the suggestion! _UINT16 is an interesting suggestion, however >> softfloat's uint16 is not uint16_t but int, so I'd rather not do it that >> way around. >> >> (I had also decided against the AIX path of never defining uint16 and >> always using system definitions, since that wouldn't work outside Cocoa >> code.) >> >> Do you have any thoughts about the include path issue? If we could keep >> QEMU code from getting into #import <Cocoa/Cocoa.h> then we could >> redefine the system type instead, in cocoa.m. > > Is the intention to trust uint16 from <Security/cssmconfig.h> over the > one softfloat.h? If so, shouldn't we be taking as many type definitions > from <Security/cssmconfig.h> as we can rather than just this one? (I'm > not recommending it; just trying to understand the goal.) Short-term goal: make Darwin build 1.0 without breaking others Long-term goal: not use uint16 etc. in QEMU at all Don't see what you mean with "taking as many type definitions". After uint16 I get no further conflicts for --enable-system --disable-user, so what is there to take? Andreas ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [Qemu-devel] [PATCH v2 2/4] softfloat: Avoid uint16 type conflict on Darwin 2011-11-01 18:52 ` Andreas Färber @ 2011-11-01 19:06 ` Eric Sunshine 2011-11-01 19:25 ` Andreas Färber 2011-11-01 19:25 ` Eric Sunshine 0 siblings, 2 replies; 24+ messages in thread From: Eric Sunshine @ 2011-11-01 19:06 UTC (permalink / raw) To: Andreas Färber; +Cc: Peter Maydell, Juan Pineda, qemu-devel On Nov 1, 2011, at 2:52 PM, Andreas Färber wrote: > Am 01.11.2011 19:47, schrieb Eric Sunshine: >> On Nov 1, 2011, at 12:37 PM, Andreas Färber wrote: >>> Am 01.11.2011 09:09, schrieb Eric Sunshine: >>>> Perhaps the following alternative solution would be more >>>> palatable? It's >>>> still tremendously ugly, but is localized to cocoa.m, thus less >>>> intrusive. >>>> >>>> -- >8 -- >>>> Subject: [PATCH] softfloat: Avoid uint16 type conflict on Darwin >>>> >>>> cocoa.m includes <Security/cssmconfig.h> indirectly via <Cocoa/ >>>> Cocoa.h>. >>>> cssmconfig.h defines type uint16 which unfortunately conflicts >>>> with the >>>> definition in qemu's softfloat.h, thus resulting in compilation >>>> failure. >>>> To work around the problem, #define _UINT16, which informs >>>> cssmconfig.h >>>> that uint16 is already defined and that it should not apply its own >>>> definition. >>> >>> Thanks for the suggestion! _UINT16 is an interesting suggestion, >>> however >>> softfloat's uint16 is not uint16_t but int, so I'd rather not do >>> it that >>> way around. >>> >>> (I had also decided against the AIX path of never defining uint16 >>> and >>> always using system definitions, since that wouldn't work outside >>> Cocoa >>> code.) >>> >>> Do you have any thoughts about the include path issue? If we could >>> keep >>> QEMU code from getting into #import <Cocoa/Cocoa.h> then we could >>> redefine the system type instead, in cocoa.m. >> >> Is the intention to trust uint16 from <Security/cssmconfig.h> over >> the >> one softfloat.h? If so, shouldn't we be taking as many type >> definitions >> from <Security/cssmconfig.h> as we can rather than just this one? >> (I'm >> not recommending it; just trying to understand the goal.) > > Short-term goal: make Darwin build 1.0 without breaking others > Long-term goal: not use uint16 etc. in QEMU at all > > Don't see what you mean with "taking as many type definitions". After > uint16 I get no further conflicts for --enable-system --disable-user, > so what is there to take? Sorry for not being clear. My question was not about build errors but about semantics. What I meant was that, with this patch, you are giving special preference only to Darwin's definition of uint16, but then contrarily preferring softfloat's definition of int16. Likewise, softfloat's uint32, int32, uint64, int64 from softfloat are trusted over the definitions from Darwin. Other than the fact that only uint16 led to a compilation error, it does not make sense semantically to single out Darwin's definition of only this one type. I would think that we should be trusting either _all_ Darwin type definitions or _none_. Singling out just this one seems anomalous. -- ES ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [Qemu-devel] [PATCH v2 2/4] softfloat: Avoid uint16 type conflict on Darwin 2011-11-01 19:06 ` Eric Sunshine @ 2011-11-01 19:25 ` Andreas Färber 2011-11-01 19:37 ` Peter Maydell 2011-11-01 19:45 ` Eric Sunshine 2011-11-01 19:25 ` Eric Sunshine 1 sibling, 2 replies; 24+ messages in thread From: Andreas Färber @ 2011-11-01 19:25 UTC (permalink / raw) To: Eric Sunshine; +Cc: Peter Maydell, Juan Pineda, qemu-devel Am 01.11.2011 20:06, schrieb Eric Sunshine: > > On Nov 1, 2011, at 2:52 PM, Andreas Färber wrote: > >> Am 01.11.2011 19:47, schrieb Eric Sunshine: >>> On Nov 1, 2011, at 12:37 PM, Andreas Färber wrote: >>>> Am 01.11.2011 09:09, schrieb Eric Sunshine: >>>>> Perhaps the following alternative solution would be more palatable? >>>>> It's >>>>> still tremendously ugly, but is localized to cocoa.m, thus less >>>>> intrusive. >>>>> >>>>> -- >8 -- >>>>> Subject: [PATCH] softfloat: Avoid uint16 type conflict on Darwin >>>>> >>>>> cocoa.m includes <Security/cssmconfig.h> indirectly via >>>>> <Cocoa/Cocoa.h>. >>>>> cssmconfig.h defines type uint16 which unfortunately conflicts with >>>>> the >>>>> definition in qemu's softfloat.h, thus resulting in compilation >>>>> failure. >>>>> To work around the problem, #define _UINT16, which informs >>>>> cssmconfig.h >>>>> that uint16 is already defined and that it should not apply its own >>>>> definition. >>>> >>>> Thanks for the suggestion! _UINT16 is an interesting suggestion, >>>> however >>>> softfloat's uint16 is not uint16_t but int, so I'd rather not do it >>>> that >>>> way around. >>>> >>>> (I had also decided against the AIX path of never defining uint16 and >>>> always using system definitions, since that wouldn't work outside Cocoa >>>> code.) >>>> >>>> Do you have any thoughts about the include path issue? If we could keep >>>> QEMU code from getting into #import <Cocoa/Cocoa.h> then we could >>>> redefine the system type instead, in cocoa.m. >>> >>> Is the intention to trust uint16 from <Security/cssmconfig.h> over the >>> one softfloat.h? If so, shouldn't we be taking as many type definitions >>> from <Security/cssmconfig.h> as we can rather than just this one? (I'm >>> not recommending it; just trying to understand the goal.) >> >> Short-term goal: make Darwin build 1.0 without breaking others >> Long-term goal: not use uint16 etc. in QEMU at all >> >> Don't see what you mean with "taking as many type definitions". After >> uint16 I get no further conflicts for --enable-system --disable-user, >> so what is there to take? > > Sorry for not being clear. My question was not about build errors but > about semantics. What I meant was that, with this patch, you are giving > special preference only to Darwin's definition of uint16, but then > contrarily preferring softfloat's definition of int16. Likewise, > softfloat's uint32, int32, uint64, int64 from softfloat are trusted over > the definitions from Darwin. > > Other than the fact that only uint16 led to a compilation error, it does > not make sense semantically to single out Darwin's definition of only > this one type. I would think that we should be trusting either _all_ > Darwin type definitions or _none_. Singling out just this one seems > anomalous. Listen, I dont have time for this. We have three options: 1) I can say, "I'm the Cocoa maintainer for multiple years now, I don't care if someone pops up day before the deadline and complains" and just push my version of preference. 2) We disagree on the solution, so I'm fair and send a pull request for the three other non-controversial patches only and 1.0 remains broken on Darwin. 3) You send a patch based on this one, detailing what additional changes you suggest and we'll see clearer what exactly you mean. I'm not preferring any definition of int16, uint32, etc., there simply is no conflict, so why would I clutter softfloat.h with unnecessary workarounds that we want to go away anyway. Feel free to refactor fpu/* instead to not use uint16 in the first place. I did so once and it was rejected, so I'm not too inclined to do that again unless we decide on how exactly to proceed with that! Andreas ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [Qemu-devel] [PATCH v2 2/4] softfloat: Avoid uint16 type conflict on Darwin 2011-11-01 19:25 ` Andreas Färber @ 2011-11-01 19:37 ` Peter Maydell 2011-11-01 19:45 ` Eric Sunshine 1 sibling, 0 replies; 24+ messages in thread From: Peter Maydell @ 2011-11-01 19:37 UTC (permalink / raw) To: Andreas Färber; +Cc: Juan Pineda, qemu-devel, Eric Sunshine On 1 November 2011 19:25, Andreas Färber <andreas.faerber@web.de> wrote: > Feel free to refactor fpu/* instead to not use uint16 in the first > place. I did so once and it was rejected, so I'm not too inclined to do > that again unless we decide on how exactly to proceed with that! I think we could probably resolve that with a little bit of benchmarking about whether it really makes any difference whether we use an int16_t or an int32_t for the variables where softfloat has int16 currently; but benchmarking is tedious so I've never got round to it :-) -- PMM ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [Qemu-devel] [PATCH v2 2/4] softfloat: Avoid uint16 type conflict on Darwin 2011-11-01 19:25 ` Andreas Färber 2011-11-01 19:37 ` Peter Maydell @ 2011-11-01 19:45 ` Eric Sunshine 2011-11-01 20:21 ` Andreas Färber 1 sibling, 1 reply; 24+ messages in thread From: Eric Sunshine @ 2011-11-01 19:45 UTC (permalink / raw) To: Andreas Färber; +Cc: Peter Maydell, Juan Pineda, qemu-devel On Nov 1, 2011, at 3:25 PM, Andreas Färber wrote: > Am 01.11.2011 20:06, schrieb Eric Sunshine: >> >> On Nov 1, 2011, at 2:52 PM, Andreas Färber wrote: >> >>> Am 01.11.2011 19:47, schrieb Eric Sunshine: >>>> On Nov 1, 2011, at 12:37 PM, Andreas Färber wrote: >>>>> Am 01.11.2011 09:09, schrieb Eric Sunshine: >>>>>> Perhaps the following alternative solution would be more >>>>>> palatable? >>>>>> It's >>>>>> still tremendously ugly, but is localized to cocoa.m, thus less >>>>>> intrusive. >>>>>> >>>>>> -- >8 -- >>>>>> Subject: [PATCH] softfloat: Avoid uint16 type conflict on Darwin >>>>>> >>>>>> cocoa.m includes <Security/cssmconfig.h> indirectly via >>>>>> <Cocoa/Cocoa.h>. >>>>>> cssmconfig.h defines type uint16 which unfortunately conflicts >>>>>> with >>>>>> the >>>>>> definition in qemu's softfloat.h, thus resulting in compilation >>>>>> failure. >>>>>> To work around the problem, #define _UINT16, which informs >>>>>> cssmconfig.h >>>>>> that uint16 is already defined and that it should not apply its >>>>>> own >>>>>> definition. >>>>> >>>>> Thanks for the suggestion! _UINT16 is an interesting suggestion, >>>>> however >>>>> softfloat's uint16 is not uint16_t but int, so I'd rather not do >>>>> it >>>>> that >>>>> way around. >>>>> >>>>> (I had also decided against the AIX path of never defining >>>>> uint16 and >>>>> always using system definitions, since that wouldn't work >>>>> outside Cocoa >>>>> code.) >>>>> >>>>> Do you have any thoughts about the include path issue? If we >>>>> could keep >>>>> QEMU code from getting into #import <Cocoa/Cocoa.h> then we could >>>>> redefine the system type instead, in cocoa.m. >>>> >>>> Is the intention to trust uint16 from <Security/cssmconfig.h> >>>> over the >>>> one softfloat.h? If so, shouldn't we be taking as many type >>>> definitions >>>> from <Security/cssmconfig.h> as we can rather than just this one? >>>> (I'm >>>> not recommending it; just trying to understand the goal.) >>> >>> Short-term goal: make Darwin build 1.0 without breaking others >>> Long-term goal: not use uint16 etc. in QEMU at all >>> >>> Don't see what you mean with "taking as many type definitions". >>> After >>> uint16 I get no further conflicts for --enable-system --disable- >>> user, >>> so what is there to take? >> >> Sorry for not being clear. My question was not about build errors but >> about semantics. What I meant was that, with this patch, you are >> giving >> special preference only to Darwin's definition of uint16, but then >> contrarily preferring softfloat's definition of int16. Likewise, >> softfloat's uint32, int32, uint64, int64 from softfloat are trusted >> over >> the definitions from Darwin. >> >> Other than the fact that only uint16 led to a compilation error, it >> does >> not make sense semantically to single out Darwin's definition of only >> this one type. I would think that we should be trusting either _all_ >> Darwin type definitions or _none_. Singling out just this one seems >> anomalous. > > Listen, I dont have time for this. We have three options: > > 1) I can say, "I'm the Cocoa maintainer for multiple years now, I > don't > care if someone pops up day before the deadline and complains" and > just > push my version of preference. I hope that you do not interpret my alternate patch as a "complaint before the deadline". My intention only was to be helpful when I saw Peter's response [1], and thought that a less intrusive patch might be more acceptable. [1]: http://lists.nongnu.org/archive/html/qemu-devel/2011-10/msg03936.html -- ES ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [Qemu-devel] [PATCH v2 2/4] softfloat: Avoid uint16 type conflict on Darwin 2011-11-01 19:45 ` Eric Sunshine @ 2011-11-01 20:21 ` Andreas Färber 0 siblings, 0 replies; 24+ messages in thread From: Andreas Färber @ 2011-11-01 20:21 UTC (permalink / raw) To: Eric Sunshine; +Cc: Peter Maydell, Juan Pineda, qemu-devel Am 01.11.2011 20:45, schrieb Eric Sunshine: > On Nov 1, 2011, at 3:25 PM, Andreas Färber wrote: >> Am 01.11.2011 20:06, schrieb Eric Sunshine: >>> >>> On Nov 1, 2011, at 2:52 PM, Andreas Färber wrote: >>> >>>> Am 01.11.2011 19:47, schrieb Eric Sunshine: >>>>> On Nov 1, 2011, at 12:37 PM, Andreas Färber wrote: >>>>>> Am 01.11.2011 09:09, schrieb Eric Sunshine: >>>>>>> Perhaps the following alternative solution would be more palatable? >>>>>>> It's >>>>>>> still tremendously ugly, but is localized to cocoa.m, thus less >>>>>>> intrusive. >>>>>>> >>>>>>> -- >8 -- >>>>>>> Subject: [PATCH] softfloat: Avoid uint16 type conflict on Darwin >>>>>>> >>>>>>> cocoa.m includes <Security/cssmconfig.h> indirectly via >>>>>>> <Cocoa/Cocoa.h>. >>>>>>> cssmconfig.h defines type uint16 which unfortunately conflicts with >>>>>>> the >>>>>>> definition in qemu's softfloat.h, thus resulting in compilation >>>>>>> failure. >>>>>>> To work around the problem, #define _UINT16, which informs >>>>>>> cssmconfig.h >>>>>>> that uint16 is already defined and that it should not apply its own >>>>>>> definition. >>>>>> >>>>>> Thanks for the suggestion! _UINT16 is an interesting suggestion, >>>>>> however >>>>>> softfloat's uint16 is not uint16_t but int, so I'd rather not do it >>>>>> that >>>>>> way around. >>>>>> >>>>>> (I had also decided against the AIX path of never defining uint16 and >>>>>> always using system definitions, since that wouldn't work outside >>>>>> Cocoa >>>>>> code.) >>>>>> >>>>>> Do you have any thoughts about the include path issue? If we could >>>>>> keep >>>>>> QEMU code from getting into #import <Cocoa/Cocoa.h> then we could >>>>>> redefine the system type instead, in cocoa.m. >>>>> >>>>> Is the intention to trust uint16 from <Security/cssmconfig.h> over the >>>>> one softfloat.h? If so, shouldn't we be taking as many type >>>>> definitions >>>>> from <Security/cssmconfig.h> as we can rather than just this one? (I'm >>>>> not recommending it; just trying to understand the goal.) >>>> >>>> Short-term goal: make Darwin build 1.0 without breaking others >>>> Long-term goal: not use uint16 etc. in QEMU at all >>>> >>>> Don't see what you mean with "taking as many type definitions". After >>>> uint16 I get no further conflicts for --enable-system --disable-user, >>>> so what is there to take? >>> >>> Sorry for not being clear. My question was not about build errors but >>> about semantics. What I meant was that, with this patch, you are giving >>> special preference only to Darwin's definition of uint16, but then >>> contrarily preferring softfloat's definition of int16. Likewise, >>> softfloat's uint32, int32, uint64, int64 from softfloat are trusted over >>> the definitions from Darwin. >>> >>> Other than the fact that only uint16 led to a compilation error, it does >>> not make sense semantically to single out Darwin's definition of only >>> this one type. I would think that we should be trusting either _all_ >>> Darwin type definitions or _none_. Singling out just this one seems >>> anomalous. >> >> Listen, I dont have time for this. We have three options: >> >> 1) I can say, "I'm the Cocoa maintainer for multiple years now, I don't >> care if someone pops up day before the deadline and complains" and just >> push my version of preference. > > I hope that you do not interpret my alternate patch as a "complaint > before the deadline". Not your patch, I thanked you for it, but the seemingly nonconstructive complaints about my follow-up. I would've much preferred code. :/ > My intention only was to be helpful when I saw > Peter's response [1], and thought that a less intrusive patch might be > more acceptable. > > [1]: http://lists.nongnu.org/archive/html/qemu-devel/2011-10/msg03936.html Then it's not the intention we differ in, I had tried some solutions inside ui/cocoa.m myself before. Apart from non-intrusiveness further criteria are reversibility of the short-term fix[1] and ABI safety. I'll happily review new patches from tomorrow on. Regards, Andreas [1] We have similar lurking issues with [u]int* on Haiku/BeOS. ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [Qemu-devel] [PATCH v2 2/4] softfloat: Avoid uint16 type conflict on Darwin 2011-11-01 19:06 ` Eric Sunshine 2011-11-01 19:25 ` Andreas Färber @ 2011-11-01 19:25 ` Eric Sunshine 2011-11-01 19:32 ` Andreas Färber 1 sibling, 1 reply; 24+ messages in thread From: Eric Sunshine @ 2011-11-01 19:25 UTC (permalink / raw) To: Eric Sunshine; +Cc: Peter Maydell, Andreas Färber, Juan Pineda, qemu-devel On Nov 1, 2011, at 3:06 PM, Eric Sunshine wrote: > On Nov 1, 2011, at 2:52 PM, Andreas Färber wrote: > >> Am 01.11.2011 19:47, schrieb Eric Sunshine: >>> On Nov 1, 2011, at 12:37 PM, Andreas Färber wrote: >>>> Am 01.11.2011 09:09, schrieb Eric Sunshine: >>>>> Perhaps the following alternative solution would be more >>>>> palatable? It's >>>>> still tremendously ugly, but is localized to cocoa.m, thus less >>>>> intrusive. >>>>> >>>>> -- >8 -- >>>>> Subject: [PATCH] softfloat: Avoid uint16 type conflict on Darwin >>>>> >>>>> cocoa.m includes <Security/cssmconfig.h> indirectly via <Cocoa/ >>>>> Cocoa.h>. >>>>> cssmconfig.h defines type uint16 which unfortunately conflicts >>>>> with the >>>>> definition in qemu's softfloat.h, thus resulting in compilation >>>>> failure. >>>>> To work around the problem, #define _UINT16, which informs >>>>> cssmconfig.h >>>>> that uint16 is already defined and that it should not apply its >>>>> own >>>>> definition. >>>> >>>> Thanks for the suggestion! _UINT16 is an interesting suggestion, >>>> however >>>> softfloat's uint16 is not uint16_t but int, so I'd rather not do >>>> it that >>>> way around. >>>> >>>> (I had also decided against the AIX path of never defining uint16 >>>> and >>>> always using system definitions, since that wouldn't work outside >>>> Cocoa >>>> code.) >>>> >>>> Do you have any thoughts about the include path issue? If we >>>> could keep >>>> QEMU code from getting into #import <Cocoa/Cocoa.h> then we could >>>> redefine the system type instead, in cocoa.m. >>> >>> Is the intention to trust uint16 from <Security/cssmconfig.h> over >>> the >>> one softfloat.h? If so, shouldn't we be taking as many type >>> definitions >>> from <Security/cssmconfig.h> as we can rather than just this one? >>> (I'm >>> not recommending it; just trying to understand the goal.) >> >> Short-term goal: make Darwin build 1.0 without breaking others >> Long-term goal: not use uint16 etc. in QEMU at all >> >> Don't see what you mean with "taking as many type definitions". After >> uint16 I get no further conflicts for --enable-system --disable-user, >> so what is there to take? > > Sorry for not being clear. My question was not about build errors > but about semantics. What I meant was that, with this patch, you are > giving special preference only to Darwin's definition of uint16, but > then contrarily preferring softfloat's definition of int16. > Likewise, softfloat's uint32, int32, uint64, int64 from softfloat > are trusted over the definitions from Darwin. > > Other than the fact that only uint16 led to a compilation error, it > does not make sense semantically to single out Darwin's definition > of only this one type. I would think that we should be trusting > either _all_ Darwin type definitions or _none_. Singling out just > this one seems anomalous. > > -- ES I forgot to mention that with your patch, only cocoa.m is seeing Darwin's definition of uint16. The rest of qemu is seeing the definition from softfloat.h. This inconsistency hopefully is not harmful in the short-term, which is why I asked about the goal. If the short-term idea is for cocoa.m to build cleanly but not to worry much that cocoa.m sees a different uint16 from the rest of qemu, then the less intrusive patch involving only cocoa.m may be preferable. -- ES ^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [Qemu-devel] [PATCH v2 2/4] softfloat: Avoid uint16 type conflict on Darwin 2011-11-01 19:25 ` Eric Sunshine @ 2011-11-01 19:32 ` Andreas Färber 0 siblings, 0 replies; 24+ messages in thread From: Andreas Färber @ 2011-11-01 19:32 UTC (permalink / raw) To: Eric Sunshine; +Cc: Peter Maydell, Juan Pineda, qemu-devel Am 01.11.2011 20:25, schrieb Eric Sunshine: > I forgot to mention that with your patch, only cocoa.m is seeing > Darwin's definition of uint16. The rest of qemu is seeing the definition > from softfloat.h. This inconsistency hopefully is not harmful in the > short-term, which is why I asked about the goal. If the short-term idea > is for cocoa.m to build cleanly but not to worry much that cocoa.m sees > a different uint16 from the rest of qemu, then the less intrusive patch > involving only cocoa.m may be preferable. Ouch. Meaning both our softfloat patches are wrong, so I'll go with (2). It's evening in Italy and the last day for submaintainer PULLs. AF ^ permalink raw reply [flat|nested] 24+ messages in thread
* [Qemu-devel] [PATCH v2 3/4] vl.c: Guard against GThread double-initialization 2011-10-31 19:17 [Qemu-devel] [PATCH v2 0/4] Cocoa patches for 1.0 Andreas Färber 2011-10-31 19:17 ` [Qemu-devel] [PATCH v2 1/4] MAINTAINERS: Add Cocoa maintainer Andreas Färber 2011-10-31 19:18 ` [Qemu-devel] [PATCH v2 2/4] softfloat: Avoid uint16 type conflict on Darwin Andreas Färber @ 2011-10-31 19:18 ` Andreas Färber 2011-10-31 19:18 ` [Qemu-devel] [PATCH v2 4/4] cocoa: Close sheet after image file selection Andreas Färber 3 siblings, 0 replies; 24+ messages in thread From: Andreas Färber @ 2011-10-31 19:18 UTC (permalink / raw) To: qemu-devel; +Cc: Andreas Färber GThread-ERROR **: GThread system may only be initialized once. aborting... Making the g_thread_init() call in vl.c conditional resolves an abort on Mac OS X, where coroutine-gthread.c seems to call it before vl.c. Reported-by: Juan Pineda <juan@logician.com> Signed-off-by: Andreas Färber <andreas.faerber@web.de> Cc: Daniel P. Berrange <berrange@redhat.com> --- vl.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) diff --git a/vl.c b/vl.c index 1ddb17b..46b2909 100644 --- a/vl.c +++ b/vl.c @@ -2185,7 +2185,9 @@ int main(int argc, char **argv, char **envp) error_set_progname(argv[0]); g_mem_set_vtable(&mem_trace); - g_thread_init(NULL); + if (!g_thread_supported()) { + g_thread_init(NULL); + } runstate_init(); -- 1.7.0.3 ^ permalink raw reply related [flat|nested] 24+ messages in thread
* [Qemu-devel] [PATCH v2 4/4] cocoa: Close sheet after image file selection 2011-10-31 19:17 [Qemu-devel] [PATCH v2 0/4] Cocoa patches for 1.0 Andreas Färber ` (2 preceding siblings ...) 2011-10-31 19:18 ` [Qemu-devel] [PATCH v2 3/4] vl.c: Guard against GThread double-initialization Andreas Färber @ 2011-10-31 19:18 ` Andreas Färber 3 siblings, 0 replies; 24+ messages in thread From: Andreas Färber @ 2011-10-31 19:18 UTC (permalink / raw) To: qemu-devel; +Cc: Andreas Färber, Juan Pineda If no disk image is specified, the Cocoa frontend displays a modal sheet to let the user select an image file to boot from. This sheet is never closed and it permanently obscures the emulator window. Close it after obtaining the file name in case the user did select a file. Otherwise we exit immediately, so no need to close then. Signed-off-by: Juan Pineda <juan@logician.com> Signed-off-by: Andreas Färber <andreas.faerber@web.de> --- ui/cocoa.m | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/ui/cocoa.m b/ui/cocoa.m index d9e4e3d..0711205 100644 --- a/ui/cocoa.m +++ b/ui/cocoa.m @@ -811,6 +811,8 @@ QemuCocoaView *cocoaView; char **argv = (char**)malloc( sizeof(char*)*3 ); + [sheet close]; + asprintf(&argv[0], "%s", bin); asprintf(&argv[1], "-hda"); asprintf(&argv[2], "%s", img); -- 1.7.0.3 ^ permalink raw reply related [flat|nested] 24+ messages in thread
end of thread, other threads:[~2011-11-01 20:23 UTC | newest] Thread overview: 24+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2011-10-31 19:17 [Qemu-devel] [PATCH v2 0/4] Cocoa patches for 1.0 Andreas Färber 2011-10-31 19:17 ` [Qemu-devel] [PATCH v2 1/4] MAINTAINERS: Add Cocoa maintainer Andreas Färber 2011-10-31 19:18 ` [Qemu-devel] [PATCH v2 2/4] softfloat: Avoid uint16 type conflict on Darwin Andreas Färber 2011-10-31 19:42 ` Peter Maydell 2011-10-31 19:17 ` Andreas Färber 2011-11-01 8:09 ` Eric Sunshine 2011-11-01 16:37 ` Andreas Färber 2011-11-01 17:59 ` [Qemu-devel] [PATCH v3 " Andreas Färber 2011-11-01 18:01 ` Peter Maydell 2011-11-01 18:05 ` Andreas Färber 2011-11-01 18:55 ` Eric Sunshine 2011-11-01 19:11 ` Andreas Färber 2011-11-01 18:17 ` Andreas Färber 2011-11-01 18:47 ` [Qemu-devel] [PATCH v2 " Eric Sunshine 2011-11-01 18:52 ` Andreas Färber 2011-11-01 19:06 ` Eric Sunshine 2011-11-01 19:25 ` Andreas Färber 2011-11-01 19:37 ` Peter Maydell 2011-11-01 19:45 ` Eric Sunshine 2011-11-01 20:21 ` Andreas Färber 2011-11-01 19:25 ` Eric Sunshine 2011-11-01 19:32 ` Andreas Färber 2011-10-31 19:18 ` [Qemu-devel] [PATCH v2 3/4] vl.c: Guard against GThread double-initialization Andreas Färber 2011-10-31 19:18 ` [Qemu-devel] [PATCH v2 4/4] cocoa: Close sheet after image file selection Andreas Färber
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).