Jeremy Huddleston <jerem...@freedesktop.org> writes: > > On Jun 16, 2010, at 16:25, Dan Nicholson wrote: > > > On Wed, Jun 16, 2010 at 4:20 PM, Jeremy Huddleston > > <jerem...@freedesktop.org> wrote: > >> Hey Tom, > >> > >> What version of OSX do you have? I hadn't pulled changes into my > >> tree (http://cgit.freedesktop.org/~jeremyhu/mesa/log/?h=7.8) since > >> the beginnin g of May, but I'm building that version just fine on > >> Leopard and Snow Leopard with 'make darwin'. I haven't given the > >> autoconf route a try for a while.
Yesterday was Snow Leopard; today the machine is booted into Leopard (shared machine). Based on what's below, my guess is that this failure was limited to the autoconf-based build. > >> I just merged origin/7.8 into my tree, and I just saw it successfully link > >> libOSMesa: > >> > >> /bin/sh ../../../../bin/mklib -o OSMesa -linker 'gcc' -ldflags '' \ > >> -major 7 -minor 8 -patch 1 \ > >> -install ../../../../lib \ > >> -id /usr/X11/lib/libOSMesa.7.dylib \ > >> -L../../../../lib -lGL osmesa.o > >> ../../../../src/mesa/libmesa.a ../../../../src/mesa/libglapi.a > >> ../../../../src/glsl/cl/libglslcl.a ../../../../src/glsl/pp/libglslpp.a > >> mklib: Making Darwin shared library: libOSMesa.7.8.dylib > >> mklib: Installing libOSMesa.7.8.dylib libOSMesa.7.dylib libOSMesa.dylib in > >> ../../../../lib > >> > >> Your LDFLAGS have: > >> -lMesaGL osmesa.o > >> > >> whereas mine have: > >> -lGL osmesa.o ../../../../src/mesa/libmesa.a ../../../../src/mesa/libglapi > >> .a > >> ../../../../src/glsl/cl/libglslcl.a After Dan's patch, I'm getting something similar to what you get from `make darwin': /bin/sh ../../../../bin/mklib -o OSMesa -linker 'gcc' -ldflags '' \ -major 7 -minor 8 -patch 1 \ -install ../../../../lib \ -id /Users/tfogal/sw/mesa-git/lib/libOSMesa.7.dylib \ -L../../../../lib -lm -lpthread osmesa.o ../../../../src/mesa/libmesa.a ../../../../src/mesa/libglapi.a ../../../../src/glsl/cl/libglslcl.a ../../../../src/glsl/pp/libglslpp.a > >> which probably results from your use of the autoconf build > >> system. A quick check shows the symbol you are looking for is in > >> libmesa.a: > >> > >> ~/src/freedesktop/src/mesa (7.8) $ nm src/mesa/libmesa.a | grep > >> mesa_make_current > >> 00000000000005ce T __mesa_make_current > >> 000000000004eca0 S __mesa_make_current.eh Yes, I get similar output, at least now: tfo...@neon mesa nm src/mesa/libmesa.a | grep mesa_make_cur 00000000000022fe T __mesa_make_current 000000000001a3d0 S __mesa_make_current.eh > > Right. In this case, the -lGL should be redundant since the reason > > OSMesa was linking to GL was just to not duplicate the internal > > libs (which you have here). Maybe you guys are using OSMesa > > differently than I think, though. > > So you expect that __mesa_make_current would be defined in libMesaGL? > Tom, check out how libMesaGL is getting built to make sure it's > getting built right. Unfortunately that part of mklib is silent by default. Adding a simple echo gets me this, though: mklib: Making Darwin shared library: libMesaGL.1.5.dylib cc -dynamiclib -multiply_defined suppress -current_version 1.5.0 -compatibility_version 1.5.0 -install_name /Users/tfogal/sw/mesa-git/lib/libMesaGL.1.dylib -arch x86_64 -o libMesaGL.1.5.dylib fakeglx.o glxapi.o xfonts.o xm_api.o xm_buffer.o xm_dd.o xm_glide.o xm_image.o xm_line.o xm_span.o xm_tri.o ../../../../src/mesa/libmesa.a ../../../../src/mesa/libglapi.a -L/usr/X11/lib -R/usr/X11/lib -lX11 -lXext -lm -lpthread It appears to be the same if I jump back before Dan's patch, to 8825d5ca54139ccf7c1095a4d3c3e28cf1387529, but I'll paste it here in case I'm missing a difference: cc -dynamiclib -multiply_defined suppress -current_version 1.5.0 -compatibility_version 1.5.0 -install_name /Users/tfogal/sw/mesa-git/lib/libMesaGL.1.dylib -arch x86_64 -o libMesaGL.1.5.dylib fakeglx.o glxapi.o xfonts.o xm_api.o xm_buffer.o xm_dd.o xm_glide.o xm_image.o xm_line.o xm_span.o xm_tri.o ../../../../src/mesa/libmesa.a ../../../../src/mesa/libglapi.a -L/usr/X11/lib -R/usr/X11/lib -lX11 -lXext -lm -lpthread The difference, I think, is that libMesaGL is a *dylib*, not an archive, and thus: tfo...@neon mesa nm lib/libMesaGL.1.dylib | grep mesa_make_cur 00000000000a1804 t __mesa_make_current Note that the symbol is present, but not exported. -tom _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev