[LLVMdev] DragonEgg 3.0 with GCC 4.7

Jack Howarth howarth at bromo.med.uc.edu
Sun Mar 25 09:42:30 PDT 2012


On Fri, Mar 23, 2012 at 04:57:55PM -0700, Eric Smith wrote:
> I've been trying to package DragonEgg for Fedora Linux.  Fedora 16 has 
> LLVM 2.9 and GCC 4.6, but not the necessary GCC patches.  If I build 
> LLVM 3.0 on Fedora 16, then I can build DragonEgg 3.0, and it works 
> fine.  However, I can't submit that to the repository.
> 
> On the other hand, Fedora 17, which just entered Beta, has LLVM 3.0 and 
> GCC 4.7.  I wasn't able to build DragonEgg 3.0 with GCC 4.7 due to an 
> error compiling Backend.cpp, but yesterday I saw that commit #152558 
> fixes this.  However, now when I try to build DragonEgg, I get a lot of 
> other errors.
> 
> On the one hand, I don't expect there to be any official support for 
> DragonEgg 3.0 with GCC 4.7.  On the other hand, it would be nice to get 
> DragonEgg into Fedora 17 rather than having to wait another six months 
> for LLVM 3.1 to land in Fedora 18.  Would anyone care to look at the 
> build problems I'm seeing?  Perhaps these problems were already fixed in 
> other commits in the repository.

   At r153413, the dragonegg compilation errors against gcc-4.7.0 using
clang is...

Compiling Constants.cpp
/sw/src/fink.build/dragonegg-gcc47-3.1-0/dragonegg-3.1/src/Backend.cpp:1594:24: error: no member named 'same_body' in 'cgraph_node'
    for (alias = node->same_body; alias && alias->next; alias = alias->next) ;
                 ~~~~  ^
1 error generated.

and using gcc-4.7.0 itself...

Compiling Constants.cpp
/sw/src/fink.build/dragonegg-gcc47-3.1-0/dragonegg-3.1/src/Backend.cpp: In function 'void emit_aliases(cgraph_node_set, varpool_node_set)':
/sw/src/fink.build/dragonegg-gcc47-3.1-0/dragonegg-3.1/src/Backend.cpp:1594:24: error: 'struct cgraph_node' has no member named 'same_body'
make: *** [Backend.o] Error 1

Hopefully this is the last compilation error blocking dragonegg on gcc 4.7.0.
           Jack
ps This was from testing on x86_64-apple-darwin11.

> 
> Some of the errors I'm getting are:
> 
> /builddir/build/BUILD/dragonegg-3.0.src/src/Trees.cpp: In function 'uint64_t getFieldOffsetInBits(tree)':
> /builddir/build/BUILD/dragonegg-3.0.src/src/Trees.cpp:191:56: error: 'BITS_PER_UNIT' was not declared in this scope
> 
> /builddir/build/BUILD/dragonegg-3.0.src/src/DefaultABI.cpp: In member function 'void DefaultABI::HandleArgument(tree, std::vector<llvm::Type*, std::allocator<llvm::Type*>  >&, llvm::Attributes*)':
> /builddir/build/BUILD/dragonegg-3.0.src/src/DefaultABI.cpp:223:14: error: 'TARGET_64BIT' was not declared in this scope
> In file included from /usr/lib/gcc/x86_64-redhat-linux/4.7.0/plugin/include/tm_p.h:5:0,
>                   from /builddir/build/BUILD/dragonegg-3.0.src/src/Constants.cpp:52:
> /usr/lib/gcc/x86_64-redhat-linux/4.7.0/plugin/include/tm-preds.h:191:13: error: use of enum 'reg_class' without previous declaration
> /usr/lib/gcc/x86_64-redhat-linux/4.7.0/plugin/include/tm-preds.h:191:68: error: invalid type in declaration before ';' token
> /builddir/build/BUILD/dragonegg-3.0.src/src/Constants.cpp: In member function '{anonymous}::BitSlice {anonymous}::BitSlice::ExtendRange(SignedRange, llvm::TargetFolder&) const':
> /builddir/build/BUILD/dragonegg-3.0.src/src/Constants.cpp:188:7: error: 'BYTES_BIG_ENDIAN' was not declared in this scope
> /builddir/build/BUILD/dragonegg-3.0.src/src/Constants.cpp: In member function '{anonymous}::BitSlice {anonymous}::BitSlice::ReduceRange(SignedRange, llvm::TargetFolder&) const':
> 
> 
> The full build log is at:
>      
> http://koji.fedoraproject.org/koji/getfile?taskID=3925063&name=build.log
> 
> Once i can get DragonEgg into Fedora, I'm hoping to convince the package 
> maintainers for GCC in Red Hat Enterprise Linux 6 to include the patch 
> to GCC 4.4 necessary to build DragonEgg 2.8, since I expect it will be a 
> long time (years!) before LLVM 3.x shows up in RHEL7.
> 
> Thanks!
> Eric
> 
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev



More information about the llvm-dev mailing list