<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>

<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head>
<body bgcolor="#ffffff" text="#000000">
<div class="moz-text-flowed"
 style="font-family: -moz-fixed; font-size: 13px;" lang="x-western">Hello
all,
<br>
<br>
I've been trying to compile LLVM and LLVM-GCC on the SPARC
architecture, but I've been running into lots of issues:
<br>
<br>
LLVM 2.5 works, but 2.6 does not -- gcc can't even parse the triple.h
file needed in commandline.cpp.  For 2.5, there's a compile error for
llvm-gcc for that version.  I've been compiling with gcc 4.5.0, and
have also tried 4.4.3.
<br>
<br>
I've turned to trying to build the trunk version to see if I get better
results.  I do get further (since LLVM itself won't even compile on 2.5
-- it compiles fine on trunk).  LLVM-GCC also compiles farther than any
previous version for trunk.  However, eventually, I encounter the
following assertion failure in llvm:
<br>
<br>
Assertion failed: Offset >= 0, file
/space/home/skou/llvm-trunk/lib/Transforms/InstCombine/InstructionCombining.cpp,
line 387
<br>
../../../../libstdc++-v3/libsupc++/unwind-cxx.h: In function
'__cxxabiv1::__cxa_exception*
__cxxabiv1::__get_exception_header_from_ue(_Unwind_Exception*)':
<br>
../../../../libstdc++-v3/libsupc++/unwind-cxx.h:171: internal compiler
error: Abort
<br>
<br>
I checked, and the "Offset" variable at this point in the source file
(InstructionCombining.cpp:387), is -23.  The offending assert looks
like the following:
<br>
<br>
    // Handle hosts where % returns negative instead of values
[0..TySize).
<br>
    if (Offset < 0) {
<br>
      --FirstIdx;
<br>
      Offset += TySize;
<br>
      fprintf(stderr, "ERROR: %d", Offset); // << endl;
<br>
      assert(Offset >= 0);
<br>
    }
<br>
<br>
Is anyone able to help me, or have been able to successfully compile
LLVM + LLVM-GCC on the SPARC platform?  If so, what version of the
toolchain did you use?
<br>
<br>
Thank you for the help,
<br>
stephen
<br>
</div>
</body>
</html>