[Mesa-dev] [PATCH] configure: link against -lLLVM to determine build type

Tom Stellard tom at stellard.net
Wed Aug 14 09:46:44 PDT 2013


On Wed, Aug 14, 2013 at 09:08:55AM +0200, Maarten Lankhorst wrote:
> Op 14-08-13 04:37, Tom Stellard schreef:
> > On Tue, Aug 13, 2013 at 05:53:52PM +0200, Maarten Lankhorst wrote:
> >> Fixes a build failure of 9.2 on ubuntu, because libLLVM-3.3.so is not present in /usr/lib/llvm-3.2/lib.
> >>
> > I'm trying to understand the problem here, could you give a little more
> > information about how Ubuntu packages LLVM?  Where are the LLVM
> > libraries installed and what does llvm-config --libdir --ldflags report?
> libLLVM-3.3.so gets installed in /usr/lib/x86_64-linux-gnu/libLLVM-3.3.so,
> there is no /usr/lib/llvm-3.2/lib/libLLVM-3.3.so
> All the other libs still get installed to /usr/lib/llvm-3.3/lib.
> 
> ~$ llvm-config-3.3 --libdir --ldflags
> /usr/lib/llvm-3.3/lib
> -L/usr/lib/llvm-3.3/lib  -lpthread -lffi -ldl -lm

So, if /usr/lib/x86_64-linux-gnu/ is not in the ldflags, then how will
the linker find it?

Also, I think your patch will select the wrong library if someone's
system has /usr/lib/libLLVM-3.3.so and they are trying to use a
local installation with the multiple shared objects produced by CMake.

Both your solution and the existing solution really just work around what I
consider to be a bug in the LLVM project, and I think the best way to
fix this would be to submit a patch to LLVM that either:
1.  Adds a flag like --has-one-so to llvm-config

or

2. Fixes the build systems so that configure and CMake both produce the
same shared objects.

-Tom


More information about the mesa-dev mailing list