[Mesa-dev] [PATCH 05/11] gallium/auxiliary: Build libgallium shared.

Tom Stellard tom at stellard.net
Sat Jan 12 07:09:52 PST 2013


On Sat, Jan 12, 2013 at 10:04:16AM -0500, Tom Stellard wrote:
> On Sat, Jan 12, 2013 at 11:34:04AM +0100, Johannes Obermayr wrote:
> > Am Samstag, 12. Januar 2013, 13:34:34 schrieb Chia-I Wu:
> > > On Sat, Jan 12, 2013 at 10:23 AM, Johannes Obermayr
> > > <johannesobermayr at gmx.de> wrote:
> > > > diff --git a/src/gallium/auxiliary/Makefile.am b/src/gallium/auxiliary/Makefile.am
> > > > index a4eee47..21b3c6b 100644
> > > > --- a/src/gallium/auxiliary/Makefile.am
> > > > +++ b/src/gallium/auxiliary/Makefile.am
> > > > @@ -3,13 +3,17 @@ AUTOMAKE_OPTIONS = subdir-objects
> > > >  include Makefile.sources
> > > >  include $(top_srcdir)/src/gallium/Automake.inc
> > > >
> > > > -noinst_LTLIBRARIES = libgallium.la
> > > > +lib_LTLIBRARIES = libgallium at VERSION@.la
> > > I probably missed the discussion.  I suppose libgallium is meant to be
> > > internal.  What motivates the change?
> > > 
> > 
> > 1. It is easiest fix for a runtime fix if you build r600 and radeonsi together.
> >
> 
> I'm assuming the runtime errors you are referring are when static LLVM
> objects are initialized twice and lead to an assertion failure
> somewhere in the LLVM code.
> 
> I don't think these runtime errors are caused by building r600 and
> radeonsi together, because I get the same LLVM assertion failures
> running clover as I do with EGL.
> 
> From what I can tell, these runtime errors happen when a state tracker,
> like clover or EGL links to certain LLVM libraries and then loads a
> pipe_*.so library that has also been linked with these LLVM libraries.
> 
> I'm not sure why we weren't getting these errors before the automake
> merege.  Maybe we were just lucky, or maybe the linker is doing something
> differently with regards to symbol visibility.  It might be helpful to
> analyze libOpenCL.so or egl_gallium.so with objdump before and after
> the automake merge to see what has changed.  This may helps us figure
> out what the correct solution is.
> 
> -Tom

By the way, you should be able to reproduce these runtime errors by
building r600g with the llvm compiler and enabling egl support in mesa:

--with-gallium-drivers=r600 --enable-r600-llvm-compiler
--enable-gallium-egl --with-egl-platforms=x11,drm

And running one of the egl demos, like eglgears, from the mesa-demos
package.

-Tom



> > 2. All internal libraries will be shared in future and installed to $(libdir)/mesa-$(VERSION) to make packages on distributions much much much smaller .
> > You can follow the way to it here:
> > https://github.com/jobermayr/mesa/commits/master
> > (e. g. a "full" build will be ~ 15 - 20 MiB libraries + ~ 100 - 140 MiB debuginfo +? MiB documentation)
> > 
> > 3. Maybe some more (main) developers should be also available and follow discussions on #dri-devel.
> > _______________________________________________
> > mesa-dev mailing list
> > mesa-dev at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/mesa-dev
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list