[Mesa-dev] Mesa 7.8.2 release?
tom fogal
tfogal at alumni.unh.edu
Thu Jun 17 08:39:19 PDT 2010
Jeremy Huddleston <jeremyhu at freedesktop.org> writes:
>
> On Jun 16, 2010, at 16:25, Dan Nicholson wrote:
>
> > On Wed, Jun 16, 2010 at 4:20 PM, Jeremy Huddleston
> > <jeremyhu at 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:
tfogal at 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:
tfogal at 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
More information about the mesa-dev
mailing list