mesa: ce8eadb6e8adc24f675b364e0620dbf1c9e079a8 (master) $ scons [...] Linking build/linux-x86_64-debug/gallium/drivers/llvmpipe/lp_test_arit ... build/linux-x86_64-debug/gallium/auxiliary/libgallium.a(lp_bld_debug.os):(.data.rel.ro._ZTIN4llvm14format_object1ImEE[_ZTIN4llvm14format_object1ImEE]+0x10): undefined reference to `typeinfo for llvm::format_object_base' build/linux-x86_64-debug/gallium/auxiliary/libgallium.a(lp_bld_debug.os):(.data.rel.ro._ZTI18BufferMemoryObject[_ZTI18BufferMemoryObject]+0x10): undefined reference to `typeinfo for llvm::MemoryObject' build/linux-x86_64-debug/gallium/auxiliary/libgallium.a(lp_bld_debug.os):(.data.rel.ro._ZTI17raw_debug_ostream[_ZTI17raw_debug_ostream]+0x10): undefined reference to `typeinfo for llvm::raw_ostream' ce8eadb6e8adc24f675b364e0620dbf1c9e079a8 is the first bad commit commit ce8eadb6e8adc24f675b364e0620dbf1c9e079a8 Author: Alexander von Gluck IV <kallisti5@unixzen.com> Date: Sat Oct 12 17:12:31 2013 +0000 build: remove forced -fno-rtti * As discussed on the mailing list, forced no-rtti breaks C++ public API's such as the Haiku C++ libGL.so * -fno-rtti *can* be still set however instead of blindly forcing -fno-rtti, we can rely on the llvm-config --cppflags output. If the system llvm is built without rtti (default), the no-rtti flag will be present in llvm-config --cppflags (which we pick up on) If llvm is built with rtti (REQUIRES_RTTI=1), then -fno-rtti is removed from llvm-config --cppflags. * We could selectively add / remove rtti from various components, however mixing rtti and non-rtti code is tricky and could introduce missing symbols. * This needs impact tested. Reviewed-by: Francisco Jerez <currojerez@riseup.net> :100644 100644 c68e14b44c0bc24a74e4f5870562454ac4389846 309b49385ba2dfe16d3a55f98b181ce7ba9d0348 M configure.ac :040000 040000 d72fe30b21c27539e9f03703b0f53967321e4e47 b65a235d75fa650f6545b2416f35ee92468a66db M scons :040000 040000 02c9dba57101dfb777d34fb8393623c6dd2c923b f9810052c6cd076b6644f99aa86805939ec0e563 M src bisect run success
Odd. This looks like non-rtti code is getting linked against rtti code. Was this a clean build of mesa? (aka, running scons -c before running scons) I don't think the build system will pick up on changes in cflags / cppflags If this was a clean build, could you grab the output of llvm-config --cppflags
Just did a clean mesa build on my ArchLinux machine + LLVM 3.3. No issues seen.
The build failure occurs with a clean build. $ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=13.04 DISTRIB_CODENAME=raring DISTRIB_DESCRIPTION="Ubuntu 13.04" $ llvm-config --cppflags -I/usr/lib/llvm-3.2/include -DNDEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS $ llvm-config --cflags -I/usr/lib/llvm-3.2/include -DNDEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -g -O2 -fomit-frame-pointer -fPIC $ llvm-config --cxxflags -I/usr/lib/llvm-3.2/include -DNDEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -g -O2 -fomit-frame-pointer -fvisibility-inlines-hidden -fno-exceptions -fno-rtti -fPIC -Woverloaded-virtual -Wcast-qual $ llvm-config --ldflags -L/usr/lib/llvm-3.2/lib -lpthread -lffi -ldl -lm
hm.. do you get the same results using the ./configure and a make?
(In reply to comment #4) > hm.. do you get the same results using the ./configure and a make? configure and make passes for me.
Created attachment 87648 [details] fix revision 1 It's now the wee hours of the morning. Please try the fix attached. If it works i'll send it to mesa-dev in the morning after I get some sleep. The LLVM_CPPFLAGS and LLVM_CXXFLAGS are used in the autotools scrips, while only LLVM_CPPFLAGS is used in scons. Removing the rtti made this bug float to the top. We can't simply apply CXX flags to everything as they are C++ only. The patch attached should apply the CXX flags only where needed (kind of like how the autotools one works.. src/gallium/auxiliary and gallium/drivers/llvmpipe) If this doesn't solve the issue, let me know and i'll try other solutions and maybe setup a Debian / Ubuntu machine. (all of the machines I have locally have RTTI enabled in llvm)
attachment 87648 [details] fixes the build. Tested-by: Vinson Lee <vlee@freedesktop.org>
Fix applied in 94d05bf. Thanks for finding this Vinson!
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.