[cfe-dev] clang builds on Sparc/Linux!

Chris Lattner clattner at apple.com
Tue Jul 24 08:58:22 PDT 2007

On Jul 24, 2007, at 2:10 AM, Kelly Wilson wrote:
> I am not sure if this is the correct list for this, but I think so,
> because llvm-gcc didn't build error-free on Sparc/Linux last time I
> tried....but clang does!

Cool! :)

> I am running an Enterprise 250 with Dual UltraSparc II's and 2 Gb ram
> running Aurora Sparc Linux 2.0 (2.6.13 kernel for Aurora is based on
> Fedora Core 3). GCC version 3.4.2.
> I built llvm-2.0 (not the svn version but the download version) by  
> just
> typing "./configure;make". I then downloaded clang from the svn
> repository (revision 40382) and changed to it's directory
> under .../llvm/tools/clang. I did a "make" without incident for clang,
> as well. Woohoo.

Nice.  You probably got a bit lucky :).  Usually clang SVN head will  
only work with LLVM SVN head.

> I tried a few examples and everything seemed to work fine, as far as
> llvm, some simple clang functionality and the JIT examples go. Then I
> ran this contrived example through clang and llvm:
> int x;
> int func1 (int g) {
>    return g;
> }
> int main()
> {
>    printf("Hello World %d times\n", func1(5));
> }
> with this command:
> clang ./ex1.c -emit-llvm | llvm-as | opt -std-compile-opts | llc
> -march=sparc > ex1.S
> This worked fine and the code gen looked fine, except for two things:


> The two problems with this output. "save -96, %o6, %o6" should read
> "save %o6, -96, %o6" at both function entry points, and the ".bss"
> section identifier needs to be removed. THEN GCC CAN ASSEMBLE/LINK  
> AND IT RUNS!!!!! Cool, now you have a new OS/arch pair to run LLVM on,
> though I may be the only one running this pair ;)

Very nice!  I'm not sure how the arguments to save got transposed, it  
must be a regression somewhere along the way.  We don't have too many  
people testing sparc :)

> P.S. Maybe I should cross-post this to llvm-dev so that the Sparc
> backend writers can see it? I also have a couple very small diff's to
> fix these two problems in the Sparc backend...should I post them to
> llvm-dev?

Yes please.  I'm actually the author/maintainer of the sparc backend,  
but llvm-dev is the right place to take care of these bugs.  Thanks!


More information about the cfe-dev mailing list