[Mesa-dev] Help with Meson and shared LLVM libraries

Brian Paul brianp at vmware.com
Fri Mar 8 16:23:41 UTC 2019


I've spent some time on this but I'm stumped.

I've been building with -Dshared-llvm=false for a while because I can't 
get -Dshared-llvm=true to work.

I'm configuring meson with:

    meson -Dplatforms=x11 \
          -Dglx=gallium-xlib \
          -Dgallium-drivers=swrast \
          -Ddri-drivers=[] \
          -Dvulkan-drivers=[] \
          -Dbuildtype=debug \
          -Dshared-llvm=true \
          --prefix="${PWD}/${BUILD_DIR}/install" \
          "${BUILD_DIR}"

But I get tons of unresolved LLVM symbols:

ninja: Entering directory `build-meson-llvmpipe'
[1/13] Generating git_sha1.h with a custom command.
[2/2] Linking target src/gallium/targets/libgl-xlib/libGL.so.1.5.0.
FAILED: src/gallium/targets/libgl-xlib/libGL.so.1.5.0
c++  -o src/gallium/targets/libgl-xlib/libGL.so.1.5.0 
'src/gallium/targets/libgl-xlib/GL at sha/xlib.c.o' -Wl,--no-undefined 
-Wl,--as-needed -shared -fPIC -Wl,--start-group -Wl,-soname,libGL.so.1 
src/gallium/state_trackers/glx/xlib/libxlib.a 
src/gallium/winsys/sw/xlib/libws_xlib.a src/mapi/glapi/libglapi_static.a 
src/gallium/auxiliary/libgallium.a src/compiler/glsl/libglsl.a 
src/compiler/glsl/glcpp/libglcpp.a src/util/libmesa_util.a 
src/compiler/nir/libnir.a src/compiler/libcompiler.a 
src/mesa/libmesa_gallium.a src/mesa/libmesa_sse41.a 
src/mapi/shared-glapi/libglapi.so.0.0.0 
src/gallium/drivers/llvmpipe/libllvmpipe.a 
src/gallium/drivers/softpipe/libsoftpipe.a -pthread -Wl,-Bsymbolic 
-Wl,--gc-sections -Wl,--version-script 
/home/projects/Mesa-gitlab/mesa/src/gallium/targets/libgl-xlib/libgl-xlib.sym 
-lX11 -lXext -lxcb -lX11 -lXext -lxcb -ldrm -ldl -lm -Wl,--end-group -lz 
-lm -lz -lm '-Wl,-rpath,$ORIGIN/../../../mapi/shared-glapi' 
-Wl,-rpath-link,/home/projects/Mesa-gitlab/mesa/build-meson-llvmpipe/src/mapi/shared-glapi 

src/gallium/drivers/llvmpipe/libllvmpipe.a(lp_context.c.o): In function 
`llvmpipe_destroy':
/home/projects/Mesa-gitlab/mesa/build-meson-llvmpipe/../src/gallium/drivers/llvmpipe/lp_context.c:105: 
undefined reference to `LLVMContextDispose'
src/gallium/drivers/llvmpipe/libllvmpipe.a(lp_context.c.o): In function 
`llvmpipe_create_context':
/home/projects/Mesa-gitlab/mesa/build-meson-llvmpipe/../src/gallium/drivers/llvmpipe/lp_context.c:181: 
undefined reference to `LLVMContextCreate'
src/gallium/drivers/llvmpipe/libllvmpipe.a(lp_jit.c.o): In function 
`lp_jit_create_types':
/home/projects/Mesa-gitlab/mesa/build-meson-llvmpipe/../src/gallium/drivers/llvmpipe/lp_jit.c:56: 
undefined reference to `LLVMFloatTypeInContext'
/home/projects/Mesa-gitlab/mesa/build-meson-llvmpipe/../src/gallium/drivers/llvmpipe/lp_jit.c:58: 
undefined reference to `LLVMStructTypeInContext'


$ llvm-config --version
7.0.0

$ llvm-config --libdir
/home/local/lib

$ ls -aF /home/local/lib/libLLVM*
/home/local/lib/libLLVM-7.0.0.so@
/home/local/lib/libLLVM-7.so
/home/local/lib/libLLVMAArch64AsmParser.a
/home/local/lib/libLLVMAArch64AsmPrinter.a
/home/local/lib/libLLVMAArch64CodeGen.a
/home/local/lib/libLLVMAArch64Desc.a
/home/local/lib/libLLVMAArch64Disassembler.a
[...]


In the c++ link command above which builds 
src/gallium/targets/libgl-xlib/libGL.so.1.5.0 I don't see 
-L/home/local/lib -lLLVM options.

Any ideas?

-Brian



More information about the mesa-dev mailing list