[LLVMbugs] [Bug 11906] New: dragonegg-trunk/gcc-4.6.2 fails to build blender
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Thu Feb 2 05:09:36 PST 2012
http://llvm.org/bugs/show_bug.cgi?id=11906
Bug #: 11906
Summary: dragonegg-trunk/gcc-4.6.2 fails to build blender
Product: dragonegg
Version: trunk
Platform: PC
OS/Version: Linux
Status: NEW
Severity: enhancement
Priority: P
Component: New Bugs
AssignedTo: baldrick at free.fr
ReportedBy: danielpgb_vasquez at hotmail.com
CC: llvmbugs at cs.uiuc.edu
Classification: Unclassified
Hello dragonegg developpers!
I'm trying to build Blender with dragonegg optimizers. I have succeeded by
disabling some modules that didn't build (there is a slight speed up in
rendering, which is nice). However, I'd like to build the disabled modules and
have run into problems. I'm using fedora 16 32 bits, dragonegg and llvm from
trunk.
Checking out current blender trunk:
svn checkout https://svn.blender.org/svnroot/bf-blender/trunk
Configure with ccmake:
- add dragonegg.so to the CMAKE_C_FLAGS and CMAKE_CXX_FLAGS)
- release optimization is O4
- toggle WITH_LIBMV to ON
- configure and generate
Build:
$> make extern_libmv
...
[ 66%] Building CXX object
extern/libmv/CMakeFiles/extern_libmv.dir/third_party/glog/src/signalhandler.cc.o
cc1plus: /home/da/Devel/llvm/dragonegg/dragonegg/src/Convert.cpp:2629: virtual
void
{anonymous}::FunctionCallArgumentConversion::HandleScalarArgument(llvm::Type*,
tree, unsigned int): Assertion `type && "Inconsistent parameter types?"'
failed.
c++: internal compiler error: Aborted (program cc1plus)
The error is located in file
${blenderroot}/extern/libmv/third_party/glog/src/signalhandler.cc at line 340:
CHECK_ERR(sigaction(kFailureSignals[i].number, &sig_action, NULL));
As I said, I can disable this module and Blender remains usable and gains some
speed. However, adding -fplugin-arg-dragonegg-enable-gcc-optzns to the flags
makes the compiler fail on core files.
$> make bf_blenkernel
[ 50%] Building C object
source/blender/blenkernel/CMakeFiles/bf_blenkernel.dir/intern/key.c.o
cc1: /home/da/Devel/llvm/dragonegg/dragonegg/src/Convert.cpp:7892: llvm::Value*
TreeToLLVM::EmitAssignRHS(gimple): Assertion `RHS->getType() ==
getRegType(((gimple_assign_rhs1(stmt))->common.type)) && "RHS has wrong type!"'
failed.
gcc: internal compiler error: Aborted (program cc1)
I tracked down the errors to while statements whose condition made the compiler
fail: In ${blenderroot}/source/blender/blenkernel/intern/key.c, the cp_key,
do_rel_key and do_key functions each contain a "while( cp[0] )" statement that
triggers the error. Replacing cp[0] by 1 or 0 makes it compile.
Hmmm, just noticed I have -mtune enabled too. I can try to reduce the test case
if needed.
Daniel
--
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
More information about the llvm-bugs
mailing list