[Llvm-bgq-discuss] Errors when compiling LLVM with Clang for BG/P

Hal Finkel hfinkel at anl.gov
Thu Mar 14 15:22:58 CDT 2013


----- Original Message -----
> From: "Prentice Bisbal" <prentice.bisbal at rutgers.edu>
> To: llvm-bgq-discuss at lists.alcf.anl.gov
> Sent: Thursday, March 14, 2013 3:08:59 PM
> Subject: [Llvm-bgq-discuss] Errors when compiling LLVM with Clang for BG/P
> 
> dear LLVM_BGQ list,
> 
> I'm trying to build LLVM with Clang for BG/P. I downloaded the
> patches
> for the r157929-20120603 revision from
> http://trac.alcf.anl.gov/projects/llvm-bgq, downloaded the
> corresponding
> revisions of LLVM and Clang and applied the patches. I downloaded the
> latest version of compiler-rt, since non of the patches modified
> compiler-rt, I figured that I could use the latest version. I
> recognize
> this may be a wrong assumption. My make eventually fails. Can someone
> offer any assistance? My download/patch/make steps are shown below,
> along with the warning/errors I get during the build.
> 
> Questions/comments:
> 
> 1. Do I need to download a specific version of compiler-rt to match
> the
> versions of LLVM and Clang?

You don't need compiler-rt, and even if you did want to try to use it you'd probably need to compile it manually b/c it would need to be cross-compiled.

> 
> 2. Are there any flags I should set in my environment, or as part of
> the
> configure command? I've seen a couple web pages that say to set
> CXXFLAGS=-UPPC or CPPFLAGS=-UPPC. Since one page said CPPFLAGS, and
> the
> other said CXXFLAGS, I'm dubious.

One problem that you'll have is that the base system compiler is too old to compile LLVM. When I last built on the BG/P, I used the following command line:

make CXX=/soft/apps/fen/gcc-4.4.3/bin/g++ ENABLE_OPTIMIZED=1 \
EXTRA_OPTIONS='-m64 -UPPC -fno-strict-aliasing -mminimal-toc' \
EXTRA_LD_OPTIONS=-Wl,-rpath=/soft/apps/fen/gcc-4.4.3/lib64

What version of gcc were you trying to use?

> 
> 3. I know Hal Finkel provided new patches on the mailing list on
> December 13th
> http://lists.alcf.anl.gov/pipermail/llvm-bgq-discuss/2012-December/000010.html)
> (but I can't get these patches to work. One of the patche files ends
> prematurely, so the patch process fails.
> 
> 4 Since I'm compiling for a BG/P and the development is focused on
> the
> BG/Q, I figure these newer patches in (3) probably don't really
> affect
> me. Right or wrong?

For the most part that is correct. There have not been many PPC32 improvements upstream since then. You will want future updates for frontend improvements, and I'll have rebased patches out soon.

 -Hal

> 
> Thanks for your help. Build process/make errors below.
> 
> cd /scratch/prentice/build/
> 
> mkdir llvm
> 
> cd !
> 
> # down load patches
> 
> wget
> http://trac.alcf.anl.gov/projects/llvm-bgq/raw-attachment/wiki/WikiStart/llvm_bgq_r157929-20120602.patch
> 
> wget
> http://trac.alcf.anl.gov/projects/llvm-bgq/raw-attachment/wiki/WikiStart/clang_bgq_r157921-20120603.patch
> 
> # checkout specific versions of llvm, clang, and compiler-rt from
> SVN:
> 
> svn -r 157929 co http://llvm.org/svn/llvm-project/llvm/trunk llvm
> 
> cd llvm/tools/
> 
> svn -r 157921 co http://llvm.org/svn/llvm-project/cfe/trunk clang
> 
> cd ../../llvm/projects
> 
> svn co http://llvm.org/svn/llvm-project/compiler-rt/trunk compiler-rt
> 
> cd ../
> 
> # apply patches
> 
> patch -p1 < ../llvm_bgq_r157929-20120602.patch
> 
> cd tools/clang/
> 
> patch -p1 < ../../../clang_bgq_r157921-20120603.patch
> 
> # Configure and build
> 
> cd ../../
> 
> ./configure \
> --prefix=/usr/local/llvm_bgq-r157929 \
> 2>&1 | tee configure.log
> 
> make ENABLE_OPTIMIZED=1 OPTIMIZE_OPTION=-O2
> EXTRA_OPTIONS=-mminimal-toc
> 2>&1 | tee make.log
> 
> # This produces this warning:
> 
> llvm[2]: Compiling InlineSpiller.cpp for Release+Asserts build
> /scratch/prentice/build/llvm/llvm/include/llvm/ADT/PointerIntPair.h:
> In
> member function ‘PointerTy* llvm::PointerI
> ntPair<PointerTy, IntBits, IntType, PtrTraits>::getAddrOfPointer()
> [with
> PointerTy = void*, unsigned int IntBits =
> 1u, IntType = bool, PtrTraits =
> llvm::PointerUnionUIntTraits<llvm::VNInfo*,
> llvm::SmallVector<llvm::VNInfo*, 4u>*
>  >]’:
> /scratch/prentice/build/llvm/llvm/include/llvm/ADT/PointerUnion.h:157:
> instantiated from ‘PT1* llvm::PointerUnio
> n<PT1, PT2>::getAddrOfPtr1() [with PT1 = llvm::VNInfo*, PT2 =
> llvm::SmallVector<llvm::VNInfo*, 4u>*]’
> /scratch/prentice/build/llvm/llvm/include/llvm/ADT/TinyPtrVector.h:81:
> instantiated from ‘EltTy* llvm::TinyPtrVe
> ctor<EltTy>::begin() [with EltTy = llvm::VNInfo*]’
> InlineSpiller.cpp:382: instantiated from here
> /scratch/prentice/build/llvm/llvm/include/llvm/ADT/PointerIntPair.h:102:
> warning: dereferencing type-punned pointe
> r will break strict-aliasing rules
> 
> In file included from MCTargetDesc/X86BaseInfo.h:20,
> from X86.h:18,
> from X86AsmPrinter.h:17,
> from X86AsmPrinter.cpp:15:
> MCTargetDesc/X86MCTargetDesc.h:105:34: error: X86GenRegisterInfo.inc:
> No
> such file or directory
> MCTargetDesc/X86MCTargetDesc.h:110:31: error: X86GenInstrInfo.inc: No
> such file or directory
> MCTargetDesc/X86MCTargetDesc.h:113:35: error:
> X86GenSubtargetInfo.inc:
> No such file or directory
> In file included from X86InstrInfo.h:18,
> from X86TargetMachine.h:19,
> from X86AsmPrinter.h:19,
> from X86AsmPrinter.cpp:15:
> X86RegisterInfo.h:20:34: error: X86GenRegisterInfo.inc: No such file
> or
> directory
> In file included from X86TargetMachine.h:19,
> from X86AsmPrinter.h:19,
> from X86AsmPrinter.cpp:15:
> X86InstrInfo.h:23:31: error: X86GenInstrInfo.inc: No such file or
> directory
> In file included from X86ISelLowering.h:18,
> from X86TargetMachine.h:20,
> from X86AsmPrinter.h:19,
> from X86AsmPrinter.cpp:15:
> X86Subtarget.h:23:35: error: X86GenSubtargetInfo.inc: No such file or
> directory
> MCTargetDesc/X86BaseInfo.h: In function ‘bool
> llvm::X86II::isX86_64ExtendedReg(unsigned int)’:
> MCTargetDesc/X86BaseInfo.h:597: error: ‘R8’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:597: error: ‘R9’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:597: error: ‘R10’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:597: error: ‘R11’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:598: error: ‘R12’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:598: error: ‘R13’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:598: error: ‘R14’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:598: error: ‘R15’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:599: error: ‘R8D’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:599: error: ‘R9D’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:599: error: ‘R10D’ is not a member of
> ‘llvm::X8
> MCTargetDesc/X86BaseInfo.h:599: error: ‘R11D’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:600: error: ‘R12D’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:600: error: ‘R13D’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:600: error: ‘R14D’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:600: error: ‘R15D’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:601: error: ‘R8W’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:601: error: ‘R9W’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:601: error: ‘R10W’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:601: error: ‘R11W’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:602: error: ‘R12W’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:602: error: ‘R13W’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:602: error: ‘R14W’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:602: error: ‘R15W’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:603: error: ‘R8B’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:603: error: ‘R9B’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:603: error: ‘R10B’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:603: error: ‘R11B’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:604: error: ‘R12B’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:604: error: ‘R13B’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:604: error: ‘R14B’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:604: error: ‘R15B’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:605: error: ‘XMM8’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:605: error: ‘XMM9’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:605: error: ‘XMM10’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:605: error: ‘XMM11’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:606: error: ‘XMM12’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:606: error: ‘XMM13’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:606: error: ‘XMM14’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:606: error: ‘XMM15’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:607: error: ‘YMM8’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:607: error: ‘YMM9’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:607: error: ‘YMM10’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:607: error: ‘YMM11’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:608: error: ‘YMM12’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:608: error: ‘YMM13’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:608: error: ‘YMM14’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:608: error: ‘YMM15’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:609: error: ‘CR8’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:609: error: ‘CR9’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:609: error: ‘CR10’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:610: error: ‘CR12’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:610: error: ‘CR13’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:610: error: ‘CR14’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:610: error: ‘CR15’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h: In function ‘bool
> llvm::X86II::isX86_64NonExtLowByteReg(unsigned int)’:
> MCTargetDesc/X86BaseInfo.h:617: error: ‘SPL’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:617: error: ‘BPL’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:618: error: ‘SIL’ is not a member of
> ‘llvm::X86’
> MCTargetDesc/X86BaseInfo.h:618: error: ‘DIL’ is not a member of
> ‘llvm::X86’
> X86RegisterInfo.h: At global scope:
> X86RegisterInfo.h:27: error: expected class-name before ‘{’ token
> X86RegisterInfo.h:27: warning: ‘class llvm::X86RegisterInfo’ has
> virtual
> functions but non-virtual destructor
> X86InstrInfo.h:127: error: expected class-name before ‘{’ token
> X86InstrInfo.h:127: warning: ‘class llvm::X86InstrInfo’ has virtual
> functions but non-virtual destructor
> X86Subtarget.h:42: error: expected class-name before ‘{’ token
> X86Subtarget.h:308: error: ‘RegClassVector’ has not been declared
> X86TargetMachine.h:46: error: invalid covariant return type for
> ‘virtual
> const llvm::X86InstrInfo* llvm::X86Target
> Machine::getInstrInfo() const’
> /scratch/prentice/build/llvm/llvm/include/llvm/Target/TargetMachine.h:104:
> error: overriding ‘virtual const llvm
> ::TargetInstrInfo* llvm::TargetMachine::getInstrInfo() const’
> X86TargetMachine.h:55: error: invalid covariant return type for
> ‘virtual
> const llvm::X86Subtarget* llvm::X86Target
> Machine::getSubtargetImpl() const’
> /scratch/prentice/build/llvm/llvm/include/llvm/Target/TargetMachine.h:62:
> error:
> overriding ‘virtual const llvm:
> :TargetSubtargetInfo* llvm::TargetMachine::getSubtargetImpl() const’
> X86TargetMachine.h:62: error: invalid covariant return type for
> ‘virtual
> const llvm::X86RegisterInfo* llvm::X86Tar
> getMachine::getRegisterInfo() const’
> /scratch/prentice/build/llvm/llvm/include/llvm/Target/TargetMachine.h:125:
> error: overriding ‘virtual const llvm
> ::TargetRegisterInfo* llvm::TargetMachine::getRegisterInfo() const’
> X86AsmPrinter.cpp: In member function ‘void
> llvm::X86AsmPrinter::printLeaMemReference(const llvm::MachineInstr*,
> u
> nsigned int, llvm::raw_ostream&, const char*)’:
> X86AsmPrinter.cpp:317: error: ‘RIP’ is not a member of ‘llvm::X86’
> X86AsmPrinter.cpp:337: error: ‘ESP’ is not a member of ‘llvm::X86’
> /scratch/prentice/build/llvm/llvm/include/llvm/Target/TargetMachine.h:
> In member function ‘const STC& llvm::Target
> Machine::getSubtarget() const [with STC = llvm::X86Subtarget]’:
> X86AsmPrinter.h:34: instantiated from here
> /scratch/prentice/build/llvm/llvm/include/llvm/Target/TargetMachine.h:118:
> error: invalid static_cast from type ‘c
> onst llvm::TargetSubtargetInfo*’ to type ‘const llvm::X86Subtarget*’
> make[3]: ***
> [/scratch/prentice/build/llvm/llvm/lib/Target/X86/Release+Asserts/X86AsmPrinter.o]
> Error 1
> make[3]: Leaving directory
> `/scratch/prentice/build/llvm/llvm/lib/Target/X86'
> make[2]: *** [X86/.makeall] Error 2
> make[2]: Leaving directory
> `/scratch/prentice/build/llvm/llvm/lib/Target'
> make[1]: *** [Target/.makeall] Error 2
> make[1]: Leaving directory `/scratch/prentice/build/llvm/llvm/lib'
> make: *** [all] Error 1
> 
> --
> Prentice
> 
> _______________________________________________
> llvm-bgq-discuss mailing list
> llvm-bgq-discuss at lists.alcf.anl.gov
> https://lists.alcf.anl.gov/mailman/listinfo/llvm-bgq-discuss
> 


More information about the llvm-bgq-discuss mailing list