Summary: | undefined reference to `typeinfo for llvm::format_object_base' | ||
---|---|---|---|
Product: | Mesa | Reporter: | Vinson Lee <vlee> |
Component: | Other | Assignee: | mesa-dev |
Status: | RESOLVED FIXED | QA Contact: | |
Severity: | blocker | ||
Priority: | medium | CC: | currojerez, kallisti5 |
Version: | git | Keywords: | regression |
Hardware: | x86-64 (AMD64) | ||
OS: | All | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: | fix revision 1 |
Description
Vinson Lee
2013-10-15 04:32:34 UTC
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.