[LLVMdev] llvm-gcc-4.2 RELEASE_26 bootstrap failure on Solaris/SPARC - unhandled REAL_TYPE during compilation of '__powitf2'
Juergen Zimmermann - Sun Microsystems - Walldorf Germany
Juergen.Zimmermann at Sun.COM
Fri Oct 30 05:52:25 PDT 2009
Hi all,
I'm currently trying to bootstrap llvm-gcc-4.2 from the latest stable LLVM release 2.6
on Solaris SPARC.
The compilation with a self-build gcc-4.2.4 goes pretty well, however, I hit
a seemingly widely know error during llvm-gcc's bootstrap in getting
an assertion during the compile of /data/LLVM/src/GCC/RELEASE_26/gcc/libgcc2.c:
/data/LLVM/src/GCC/RELEASE_26/gcc/libgcc2.c: In function '__powitf2':
/data/LLVM/src/GCC/RELEASE_26/gcc/libgcc2.c:1765: internal compiler error: in HandleArgument, at
llvm-abi.h:535
Looking into the code of llvm-abi.h, I added the following patch to it:
--- /data/LLVM/src/GCC/RELEASE_26/gcc/llvm-abi.h.jnz Thu Oct 29 00:32:52 2009
+++ /data/LLVM/src/GCC/RELEASE_26/gcc/llvm-abi.h Fri Oct 30 13:09:09 2009
@@ -529,7 +529,12 @@
HandleArgument(TREE_TYPE(type), ScalarElts);
C.ExitField();
}
+ } else if (TREE_CODE(type) == REAL_TYPE) {
+ fprintf(stderr,"unhandled REAL_TYPE!\n");
+ assert(0 && "unhandled REAL_TYPE!");
+ abort();
} else {
+ fprintf(stderr,"unknown aggreate type %d\n",TREE_CODE(type));
assert(0 && "unknown aggregate type!");
abort();
}
Note that at first, I only inserted the last fprintf to get a better
understanding what's going wrong and found out that TREE_CODE(type) has
value 9 which matches REAL_TYPE from my understanding.
With the full patch, I get the assertion of the 'unhandled REAL_TYPE!',
so I wonder what needs to be done in order to get LLVM to produce
code for 'TREE_CODE(type) == REAL_TYPE' in the 'HandleArgument' function.
Does anyone have an idea? And why does this only happen on SPARC?
Regards,
Juergen
--
Sun Microsystems GmbH Juergen Zimmermann
Altrottstrasse 31 ISV Engineering EMEA, Technical Lead for SAP
69190 Walldorf Phone: +49 (0)6227 356 256
Germany Fax: +49 (0)6227 356 222
mailto:Juergen.Zimmermann at Sun.COM
Sun Microsystems GmbH
Altrottstrasse 31, 69190 Walldorf
Sitz der Gesellschaft: Sonnenallee 1, D-85551 Kirchheim-Heimstetten
Amtsgericht Muenchen: HRB 161028
Geschaeftsfuehrer: Thomas Schroeder, Wolfgang Engels, Wolf Frenkel
Vorsitzender des Aufsichtsrates: Martin Haering
More information about the llvm-dev
mailing list