Summary: | mesa/darwin is severly broken | ||
---|---|---|---|
Product: | Mesa | Reporter: | Vinson Lee <vlee> |
Component: | Other | Assignee: | Kristian Høgsberg <krh> |
Status: | RESOLVED FIXED | QA Contact: | |
Severity: | blocker | ||
Priority: | highest | CC: | jeremyhu |
Version: | git | ||
Hardware: | x86 (IA32) | ||
OS: | Mac OS X (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Bug Depends on: | |||
Bug Blocks: | 30124 |
Description
Vinson Lee
2010-07-19 23:00:21 UTC
I've #ifdef'ed the DRI prototype with commit c1cbdbfde0a1f016f9d3f23a39cb7bc0b9825e12. mesa: 5ed6627ceb82845a7b578419b3cd4168ad0106d3 (master) gcc -c -I. -Iinclude -I.. -I../../../include -I../../../include/GL/internal -I../../../src/mesa -I../../../src/mapi -I../../../src/mapi/glapi -ggdb3 -Os -Wall -Wmissing-prototypes -std=c99 -ffast-math -fno-strict-aliasing -I/usr/X11/include -I/usr/X11/include -fPIC -D_DARWIN_C_SOURCE -DPTHREADS -D_GNU_SOURCE -DGLX_ALIAS_UNSUPPORTED -DGLX_DIRECT_RENDERING -DGLX_USE_APPLEGL ../glxext.c -o ../glxext.o ../glxext.c:137: warning: no previous prototype for ‘__glXFindDisplay’ ../glxext.c: In function ‘__glXFreeDisplayPrivate’: ../glxext.c:297: error: ‘__GLXdisplayPrivate’ has no member named ‘drawHash’ ../glxext.c: In function ‘glx_screen_init’: ../glxext.c:753: error: ‘__GLXscreenConfigs’ has no member named ‘scr’ ../glxext.c:754: error: ‘__GLXscreenConfigs’ has no member named ‘dpy’ make[2]: *** [../glxext.o] Error 1 make[1]: *** [subdirs] Error 1 make: *** [default] Error 1 mesa: c686ee0fa7e2298408259f5533b739c7d05c78b8 (master) $ make Making sources for darwin ... gcc -c -I. -Iinclude -I.. -I../../../include -I../../../include/GL/internal -I../../../src/mesa -I../../../src/mapi -I../../../src/mapi/glapi -ggdb3 -Os -Wall -Wmissing-prototypes -std=c99 -ffast-math -fno-strict-aliasing -I/usr/X11/include -I/usr/X11/include -fPIC -D_DARWIN_C_SOURCE -DPTHREADS -D_GNU_SOURCE -DGLX_ALIAS_UNSUPPORTED -DGLX_DIRECT_RENDERING -DGLX_USE_APPLEGL ../glxext.c -o ../glxext.o ../glxext.c:137: warning: no previous prototype for ‘__glXFindDisplay’ ../glxext.c: In function ‘__glXFreeDisplayPrivate’: ../glxext.c:297: error: ‘__GLXdisplayPrivate’ has no member named ‘drawHash’ ../glxext.c: In function ‘glx_screen_init’: ../glxext.c:753: error: ‘__GLXscreenConfigs’ has no member named ‘scr’ ../glxext.c:754: error: ‘__GLXscreenConfigs’ has no member named ‘dpy’ Ping. I refer to http://lists.freedesktop.org/archives/mesa-dev/2010-May/000757.html and will ping Jeremy once I'm done moving things around. I'm up to my ears and won't have much time to do the big cleanup I promised until late August Is this still an issue with current Mesa git? I'll pull the latest git later today and test it, but last time I looked, mesa wouldn't even build for Mac OSX. We're still using 7.8.x (which was not fully packaged, so I made an additional tarball with the apple sources) mesa: 118ecb1a2226494929a87c36b7802b64451ca004 (master) $ make darwin [...] gcc -c -I. -Iinclude -I.. -I../../../include -I../../../include/GL/internal -I../../../src/mesa -I../../../src/mapi -I../../../src/mapi/glapi -ggdb3 -Os -Wall -Wmissing-prototypes -std=c99 -ffast-math -fno-strict-aliasing -I/usr/X11/include -I/usr/X11/include -fPIC -D_DARWIN_C_SOURCE -DPTHREADS -D_GNU_SOURCE -DGLX_ALIAS_UNSUPPORTED -DGLX_DIRECT_RENDERING -DGLX_USE_APPLEGL apple_glx_pbuffer.c -o apple_glx_pbuffer.o apple_glx_pbuffer.c:47:28: error: glcontextmodes.h: No such file or directory apple_glx_pbuffer.c: In function ‘apple_glx_pbuffer_create’: apple_glx_pbuffer.c:131: error: ‘__GLcontextModes’ undeclared (first use in this function) apple_glx_pbuffer.c:131: error: (Each undeclared identifier is reported only once apple_glx_pbuffer.c:131: error: for each function it appears in.) apple_glx_pbuffer.c:131: error: expected expression before ‘)’ token apple_glx_pbuffer.c:162: error: dereferencing pointer to incomplete type apple_glx_pbuffer.c:172: error: dereferencing pointer to incomplete type $ scons [...] scons: Building targets ... Compiling src/egl/main/eglapi.c ... In file included from include/EGL/egl.h:36, from src/egl/main/egltypedefs.h:6, from src/egl/main/eglcontext.h:5, from src/egl/main/eglapi.c:60: include/EGL/eglplatform.h:108:2: error: #error "Platform not recognized" I've fixed it as far as I can. Kristian, I think you didn't finish something with appleglDisplay ... can you please look into this? I've addressed all the other build failures that I ran into (I obviously can't test the runtime yet) So I've finally sat down and tried to fix regressions on master due to glx restructuring last year ... mostly these are changes where people forgot to make corresponding changes in the apple subdirectory. There is one standout that I'm not sure how to fix (glxext.c). This is a build failure introduced by (http://cgit.freedesktop.org/mesa/mesa/commit/?id=6849916170c0275c13510251a7b217c20f2b993e This commit added a new reference to appleglDisplay, but it was never defined. What is supposed to be happening here? ../glxext.c: In function ‘AllocAndFetchScreenConfigs’: ../glxext.c:782: error: ‘struct glx_display’ has no member named ‘appleglDisplay’ ../glxext.c:783: error: ‘struct glx_display’ has no member named ‘appleglDisplay’ ../glxext.c: In function ‘__glXInitialize’: ../glxext.c:869: warning: implicit declaration of function ‘applegl_create_display’ Also, 6ec39db726beead21d97bf64ddbe1f0b2d2d6ca1 introduced applegl_create_context, but it never gets called. It was later added to appegl_screen_vtable, but that vtable is never used. Ok, I figured out the above problems ... some typos and some incorrect API usage... now I'm trying to figure out how to get applegl_glx.c building ... I've gotten to here: ../applegl_glx.c: In function ‘applegl_bind_context’: ../applegl_glx.c:55: error: ‘oldGC’ undeclared (first use in this function) ../applegl_glx.c:55: error: (Each undeclared identifier is reported only once ../applegl_glx.c:55: error: for each function it appears in.) ../applegl_glx.c:56: error: expected ‘)’ before ‘gc’ ../applegl_glx.c:56: error: too few arguments to function ‘apple_glx_make_current_context’ ../applegl_glx.c: In function ‘applegl_create_context’: ../applegl_glx.c:123: error: ‘screen’ undeclared (first use in this function) ../applegl_glx.c:123: error: ‘fbconfig’ undeclared (first use in this function) ../applegl_glx.c:132: error: ‘struct glx_context’ has no member named ‘mode’ ../applegl_glx.c:133: error: ‘allowDirect’ undeclared (first use in this function) Ok, I figured out the rest of the API changes to fix up most of the remaining changes. So it *builds* now... "make install" is still broken. The built libGL works well enough to run glxinfo and glxgears, but I haven't done much more than that in testing. I think after fixing the install target, this bug should be closed, and any remaining issues should be managed in a new bug report. master and 7.10 both build for darwin on Snow Leopard. If any other issues arise, please open a new bug report (and CC me) |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.