Summary: | meson targets which link libgallium.a have unresolved symbol llvm::RTDyldMemoryManager | ||
---|---|---|---|
Product: | Mesa | Reporter: | tjbugs |
Component: | Other | Assignee: | mesa-dev |
Status: | RESOLVED MOVED | QA Contact: | mesa-dev |
Severity: | normal | ||
Priority: | medium | CC: | vedran |
Version: | git | ||
Hardware: | x86-64 (AMD64) | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: |
full compile log
log of autotools build build errors |
I'm having trouble reproducing your problem. I have gcc 7.2.0 and LLVM 5.0.0 and with the same options: CFLAGS="-march=native -mtune=native -m64 -pipe -O3" CXXFLAGS="-march=native -mtune=native -m64 -pipe -O3" meson build -Ddri-drivers=r200 -Dgallium-drivers=swrast -Dvulkan-drivers=amd -Dplatforms=x11,wayland,drm -Dglx=dri -Dgles1=false -Dgles2=false -Dvalgrind=false -Dlibunwind=false -Dselinux=false -Dosmesa=gallium It compiles and links fine for me. As an aside, since you're passing -O3, you should also pass --buildtype=plain, so that meson doesn't add -g and -O options. Two questions for you: Are you compiling LLVM yourself? Does the build work with autotools? Also, I noticed you're using meson from git, are you building with upstream master, or do you have additional patches? 1. I reverted to meson-0.43.0 built from the release tarball. 2. I am now using llvm-5.0.0 built from the release tarball, with the following options: -DLLVM_ENABLE_ZLIB=1 -DLLVM_ENABLE_FFI=1 -DLLVM_TARGETS_TO_BUILD=AMDGPU;X86 -DBUILD_SHARED_LIBS=1 -DCMAKE_BUILD_TYPE=RELEASE INSTALL_PREFIX=/usr 3. I now specify buildtype=plain the mesa build still fails in the same way using git commit 57372c5a42969afe6c7afd6a0389a92e3e1a5178 4. I will now try to build the same code using autotools. I know that the 17.3 branch builds correctly using autotools. (In reply to tjbugs from comment #3) > [...] -DBUILD_SHARED_LIBS=1 [...] Don't enable BUILD_SHARED_LIBS, it's only for LLVM developers. Enable LLVM_LINK_LLVM_DYLIB instead. Created attachment 135221 [details]
log of autotools build
autotools builds master branch, however some of the options are different
I rebuilt llvm with LLVM_LINK_LLVM_DYLIB. That now installs lots of .sa libraries and an enormous /usr/lib/libLLVM-5.0.so I then auccessfully rebuilt mesa using autotools, but the mesaon build still fails, although with a much shorter list of link libraries. [1341/1342] Linking target src/gallium/targets/osmesa/libOSMesa.so.8.0.0. FAILED: src/gallium/targets/osmesa/libOSMesa.so.8.0.0 ccache c++ -o src/gallium/targets/osmesa/libOSMesa.so.8.0.0 'src/gallium/targets/osmesa/OSMesa@sha/target.c.o' -Wl,--no-undefined -Wl,--as-needed -shared -fPIC -Wl,--start-group -Wl,-soname,libOSMesa.so.8 -Wl,--whole-archive src/gallium/state_trackers/osmesa/libosmesa_st.a -Wl,--no-whole-archive -march=native -mtune=native -m64 -pipe -O3 src/mesa/libmesa_gallium.a src/compiler/glsl/libglsl.a src/compiler/nir/libnir.a src/compiler/libcompiler.a src/compiler/glsl/glcpp/libglcpp.a src/util/libmesa_util.a src/gallium/auxiliary/libgallium.a src/mapi/glapi/libglapi_static.a src/gallium/winsys/sw/null/libws_null.a src/gallium/drivers/trace/libtrace.a src/gallium/drivers/softpipe/libsoftpipe.a src/mapi/shared-glapi/libglapi.so src/gallium/drivers/llvmpipe/libllvmpipe.a -pthread -Wl,--gc-sections -Wl,--version-script /var/git/mesalib/src/gallium/targets/osmesa/osmesa.sym -L/usr/lib -lLLVM-5.0 -Wl,--end-group -lz -ldrm -L/usr/lib -lLLVM-5.0 -ldl -lm -L/usr/lib -lLLVM-5.0 '-Wl,-rpath,$ORIGIN/:$ORIGIN/../../../mapi/shared-glapi' -Wl,-rpath-link,/var/git/x86_64/mesa/src/gallium/targets/osmesa:/var/git/x86_64/mesa/src/mapi/shared-glapi src/gallium/auxiliary/libgallium.a(gallivm_lp_bld_misc.cpp.o):(.data.rel.ro._ZTI26DelegatingJITMemoryManager[_ZTI26DelegatingJITMemoryManager]+0x10): undefined reference to `typeinfo for llvm::RTDyldMemoryManager' collect2: error: ld returned 1 exit status I can reproduce on Fedora 27 and Fedora 28 (rawhide) with various LLVM versions from 3.9 onwards. What info could be helpful? Created attachment 136898 [details]
build errors
Can you try building with git tip again? A patch just landed that fixes the way the meson build calculates the LLVM version string for the pre-processor. I'm not sure if that will fix it, but it's worth trying. If it doesn't I'll install fedora and see if I can reproduce and fix it. -- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/mesa/mesa/issues/919. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.
Created attachment 135208 [details] full compile log src/gallium/auxiliary/libgallium.a(gallivm_lp_bld_misc.cpp.o):(.data.rel.ro._ZTI26DelegatingJITMemoryManager[_ZTI26DelegatingJITMemoryManager]+0x10): undefined reference to `typeinfo for llvm::RTDyldMemoryManager' I tried various options, but anything involving llvm fails for me [1290/1291] Linking target src/gallium/targets/osmesa/libOSMesa.so.8.0.0. FAILED: src/gallium/targets/osmesa/libOSMesa.so.8.0.0 [1291/1291] Linking target src/gallium/targets/dri/libgallium_dri.so. FAILED: src/gallium/targets/dri/libgallium_dri.so I need radeon support. full compile log attached. I used these options: dri-drivers=r200 gallium-drivers=swrast vulkan-drivers=amd osmesa=gallium platforms=x11,wayland,drm glx=dri gles1=false gles2=false valgrind=false libunwind=false selinux=false using llvm-5.0.0; I also tried 5.0.1 and 6 gcc-7.2.0 I got something similar trying mesa-17.3, however the autotools build works in that case.