Build issues with winemac.drv and Mavericks

C.W. Betts computers57 at hotmail.com
Sun Dec 8 12:09:37 CST 2013


Sorry for the deprecation notices. I should have noticed that the missing functions were due to a missing include and just have said “The headers of Mavericks have changed and now winemac won’t compile."
On Dec 5, 2013, at 9:53 PM, Charles Davis <cdavis5x at gmail.com> wrote:

> 
> On Dec 2, 2013, at 1:49 PM, C.W. Betts wrote:
> 
>> I’ve run into issues when building winemac.drv on Mavericks. Attached is the log.
> Ken's patch should've fixed the undeclared GL functions warnings, but it won't address the other warnings.
> 
>> ../../../wine-git/dlls/winemac.drv/clipboard.c:320:78: warning: format specifies type 'const unichar *' (aka 'const unsigned short *') but the argument has type 'WCHAR *' (aka 'unsigned short *') [-Wformat]
>>                                                registered_name_type_prefix, buffer);
>>                                                                             ^~~~~~
> This is a false positive, because a Mac OS unichar is the same as a Wine WCHAR (i.e. a UTF-16 character). You could probably shut Clang up with a cast.
> 
>> ../../../wine-git/dlls/winemac.drv/opengl.c:2985:9: warning: 'gluCheckExtension' is deprecated: first deprecated in OS X 10.9 [-Wdeprecated-declarations]
>>    if (gluCheckExtension((GLubyte*)"GL_ARB_color_buffer_float", (GLubyte*)gl_info.glExtensions))
>>        ^
>> /System/Library/Frameworks/OpenGL.framework/Headers/glu.h:250:18: note: 'gluCheckExtension' declared here
>> extern GLboolean gluCheckExtension (const GLubyte *extName, const GLubyte *extString) OPENGL_DEPRECATED(10_2, 10_9);
>>                 ^
>> ../../../wine-git/dlls/winemac.drv/opengl.c:2991:9: warning: 'gluCheckExtension' is deprecated: first deprecated in OS X 10.9 [-Wdeprecated-declarations]
>>    if (gluCheckExtension((GLubyte*)"GL_ARB_multisample", (GLubyte*)gl_info.glExtensions))
>>        ^
>> /System/Library/Frameworks/OpenGL.framework/Headers/glu.h:250:18: note: 'gluCheckExtension' declared here
>> extern GLboolean gluCheckExtension (const GLubyte *extName, const GLubyte *extString) OPENGL_DEPRECATED(10_2, 10_9);
>>                 ^
>> ../../../wine-git/dlls/winemac.drv/opengl.c:2994:9: warning: 'gluCheckExtension' is deprecated: first deprecated in OS X 10.9 [-Wdeprecated-declarations]
>>    if (gluCheckExtension((GLubyte*)"GL_ARB_framebuffer_sRGB", (GLubyte*)gl_info.glExtensions))
>>        ^
>> /System/Library/Frameworks/OpenGL.framework/Headers/glu.h:250:18: note: 'gluCheckExtension' declared here
>> extern GLboolean gluCheckExtension (const GLubyte *extName, const GLubyte *extString) OPENGL_DEPRECATED(10_2, 10_9);
>>                 ^
>> ../../../wine-git/dlls/winemac.drv/opengl.c:2997:9: warning: 'gluCheckExtension' is deprecated: first deprecated in OS X 10.9 [-Wdeprecated-declarations]
>>    if (gluCheckExtension((GLubyte*)"GL_APPLE_pixel_buffer", (GLubyte*)gl_info.glExtensions))
>>        ^
>> /System/Library/Frameworks/OpenGL.framework/Headers/glu.h:250:18: note: 'gluCheckExtension' declared here
>> extern GLboolean gluCheckExtension (const GLubyte *extName, const GLubyte *extString) OPENGL_DEPRECATED(10_2, 10_9);
>>                 ^
>> ../../../wine-git/dlls/winemac.drv/opengl.c:3011:13: warning: 'gluCheckExtension' is deprecated: first deprecated in OS X 10.9 [-Wdeprecated-declarations]
>>        if (gluCheckExtension((GLubyte*)"GL_ARB_texture_rectangle", (GLubyte*)gl_info.glExtensions) ||
>>            ^
>> /System/Library/Frameworks/OpenGL.framework/Headers/glu.h:250:18: note: 'gluCheckExtension' declared here
>> extern GLboolean gluCheckExtension (const GLubyte *extName, const GLubyte *extString) OPENGL_DEPRECATED(10_2, 10_9);
>>                 ^
>> ../../../wine-git/dlls/winemac.drv/opengl.c:3012:13: warning: 'gluCheckExtension' is deprecated: first deprecated in OS X 10.9 [-Wdeprecated-declarations]
>>            gluCheckExtension((GLubyte*)"GL_EXT_texture_rectangle", (GLubyte*)gl_info.glExtensions))
>>            ^
>> /System/Library/Frameworks/OpenGL.framework/Headers/glu.h:250:18: note: 'gluCheckExtension' declared here
>> extern GLboolean gluCheckExtension (const GLubyte *extName, const GLubyte *extString) OPENGL_DEPRECATED(10_2, 10_9);
>>                 ^
>> ../../../wine-git/dlls/winemac.drv/opengl.c:3036:9: warning: 'gluCheckExtension' is deprecated: first deprecated in OS X 10.9 [-Wdeprecated-declarations]
>>    if (gluCheckExtension((GLubyte*)"GL_EXT_framebuffer_sRGB", (GLubyte*)gl_info.glExtensions))
>>        ^
>> /System/Library/Frameworks/OpenGL.framework/Headers/glu.h:250:18: note: 'gluCheckExtension' declared here
>> extern GLboolean gluCheckExtension (const GLubyte *extName, const GLubyte *extString) OPENGL_DEPRECATED(10_2, 10_9);
>>                 ^
>> ../../../wine-git/dlls/winemac.drv/opengl.c:3039:9: warning: 'gluCheckExtension' is deprecated: first deprecated in OS X 10.9 [-Wdeprecated-declarations]
>>    if (gluCheckExtension((GLubyte*)"GL_EXT_packed_float", (GLubyte*)gl_info.glExtensions))
>>        ^
>> /System/Library/Frameworks/OpenGL.framework/Headers/glu.h:250:18: note: 'gluCheckExtension' declared here
>> extern GLboolean gluCheckExtension (const GLubyte *extName, const GLubyte *extString) OPENGL_DEPRECATED(10_2, 10_9);
>>                 ^
>> ../../../wine-git/dlls/winemac.drv/opengl.c:3109:9: warning: 'gluCheckExtension' is deprecated: first deprecated in OS X 10.9 [-Wdeprecated-declarations]
>>    if (gluCheckExtension((GLubyte*)"GL_APPLE_flush_render", (GLubyte*)gl_info.glExtensions))
>>        ^
>> /System/Library/Frameworks/OpenGL.framework/Headers/glu.h:250:18: note: 'gluCheckExtension' declared here
>> extern GLboolean gluCheckExtension (const GLubyte *extName, const GLubyte *extString) OPENGL_DEPRECATED(10_2, 10_9);
>>                 ^
> We should probably replace gluCheckExtension with our own extension checker. No modern app uses GLU anymore--that's why Apple deprecated it. (That, and they want you to use GLKit instead. Like that'll ever happen in Wine...)
> 
>> ../../../wine-git/dlls/winemac.drv/opengl.c:75:5: warning: 'CGLPBufferObj' is deprecated: first deprecated in OS X 10.7 [-Wdeprecated-declarations]
>>    CGLPBufferObj   pbuffer;
>>    ^
>> /System/Library/Frameworks/OpenGL.framework/Headers/CGLTypes.h:21:41: note: 'CGLPBufferObj' declared here
>> typedef struct _CGLPBufferObject       *CGLPBufferObj OPENGL_DEPRECATED(10_3, 10_7);
>>                                        ^
> As for this and the other pbuffer-related deprecations... Any Mac capable of running Mavericks (including my ridiculously old 2007 Santa Rosa MacBook Pro) or even Lion probably supports FBOs; we can define them away if the minimum version targeted is >=10.7. If we absolutely must (say, because some legacy Win app wants pbuffers and doesn't understand FBOs), we could probably emulate pbuffers with FBOs.
> 
> The rest of the deprecations are of PFAs that for some reason have fallen out of favor with Apple. We can't set them at all when we add support for OpenGL 3/4--attempting to create a context with any of the deprecated PFAs set along with the profile PFA will make the creation fail. kCGLPFAWindow in particular is redundant--it's the default if you don't say you want one of the other kinds of rendering contexts. (The other kinds are all deprecated, too, by the way. If you want full-screen rendering, you're supposed to create a window covering the screen, and if you want off-screen rendering, you're supposed to render to an FBO.) Most of the other deprecated PFAs are largely useless (or so they tell us).
> 
>> ../../../wine-git/dlls/winemac.drv/cocoa_event.m:466:9: warning: variable 'semaphore' is captured uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
>>    if (!queue)
>>        ^~~~~~
>> ../../../wine-git/dlls/winemac.drv/cocoa_event.m:473:23: note: variable is captured by block here
>>    OnMainThreadAsync(^{
>>                      ^~
>> ../../../wine-git/dlls/winemac.drv/cocoa_event.m:466:5: note: remove the 'if' if its condition is always true
>>    if (!queue)
>>    ^~~~~~~~~~~
>> ../../../wine-git/dlls/winemac.drv/cocoa_event.m:463:35: note: initialize the variable 'semaphore' to silence this warning
>>    dispatch_semaphore_t semaphore;
>>                                  ^
>>                                   = NULL
> This is another false positive. Clang apparently cannot see into the block, so it doesn't see that, even though `semaphore' is captured, it's only used under the same conditions that it's initialized under.
> 
> Chip
> 




More information about the wine-devel mailing list