[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