[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