[LLVMdev] LLVM build error (sparc gcc 3.2.2)

Misha Brukman
Wed, 29 Sep 2004 22:51:16 -0000

On Wed, Sep 29, 2004 at 06:44:50PM -0400, Shukang Zhou
wrote:
> I met some errors when I tried to build LLVM. The tar file is
> llvm-1.3.tar.gz. I am using a sparc machine with gcc 3.2.2.
>
> -------------
> Compiling SparcV9CodeEmitter.cpp
> /uf24/zhou/research/llvm/src/lib/Target/SparcV9/SparcV9CodeEmitter.cpp: In
>    static member function `static void
>    llvm::<unnamed>::JITResolver::CompilationCallback()':
> /uf24/zhou/research/llvm/src/lib/Target/SparcV9/SparcV9CodeEmitter.cpp:340:
> warning: cast to pointer from integer of different size
> /usr/ccs/bin/as: "/var/tmp//ccFz2VBS.s", line 3147: error: cannot
use
> v8plus registers in a non-v8plus target binary
> ...
> -------------
>
> There are 42 similar errors in this file ("cannot use v8plus registers
> in a non-v8plus target binary"). Is anyone who knows about this error?
> Thanks a lot for your time and help.

The backend is designed for SparcV9 and uses inline assembly, some of
which may be V9-only.  Your error indicates that your GCC was configured
for SparcV8 instead.  One way to check what your GCC thinks it's
compiling for is as follows:

% gcc -dumpmachine
sparcv9-sun-solaris2.8

If your output is "sparcv8-...", then you may need to build a new
version of GCC.