<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7650.21">
<TITLE>U-boot problem with new codesourcery toolchain</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->

<P><FONT SIZE=2 FACE="Arial">Hi,</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">I noticed that u-boot does not work when compiled with new arm toolchain from codesourcery. Debugging showed that the problem is with the global variable declared with DECLARE_GLOBAL_DATA_PTR (include/asm-arm/global_data.h). In lib_arm/board.c:start_armboot() the gd variable is never put to r8, but is optimized away. I guess this is correct behaviour from the compiler, as the variable is declared as a local variable, and is never used (from the compilers point of view).</FONT></P>

<P><FONT SIZE=2 FACE="Arial">What I don't understand is why the variable is declared as a local var. Declaring it as a global in global_data.h fixes the bug and is simpler.</FONT></P>
<BR>

<P><FONT SIZE=2 FACE="Arial">An other problem is when linking u-boot with the toolchain:</FONT>

<BR><FONT SIZE=2 FACE="Arial">/opt/codesourcery/arm-2006q1-3-arm-none-linux-gnueabi-i686-pc-linux-gnu/bin/../lib/gcc/arm-none-linux-gnueabi/4.1.0/libgcc.a(_dvmd_lnx.o): In function `__div0':/scratch/paul/2006q1/src/gcc-2006q1/gcc/config/arm/lib1funcs.asm:(.text+0x8): undefined reference to `raise'</FONT></P>

<P><FONT SIZE=2 FACE="Arial">It seems that the libgcc in the toolchain uses raise() inside __div0, and raise is defined (I think) in libc. It sounds a bit weird to use raise from libc in libgcc though. But in any case this led me thinking if it would be feasible not to use libgcc at all. The needed functions could be copied from linux source, and I don't think there are too many of those funcs. I may be totally wrong here of course =). But then u-boot would not depend on anything, which would be a good thing.</FONT></P>

<P><FONT SIZE=2 FACE="Arial">Best regards,</FONT>

<BR><FONT SIZE=2 FACE="Arial">&nbsp;Tomi Valkeinen</FONT>
</P>

</BODY>
</HTML>