[U-Boot-Users] Advice about a problem compiling with alternative toolchain

Andrew Reusch
2004-12-14T16:22:28Z

Hi,

I've been experimenting with the u-boot bootloader and have found it
to be an eminently useful utility for development on a powerpc based
embedded device. Much thanks to the developers who have put so much
effort into this project.

The question of posing while related to the compilation of u-boot
doesn't really involve a problem or issue with u-boot but I thought that
I might be able to get some good input on this list. Apologies in
advance if this is not the proper place for this topic.

Anyway, I've been using a uclibc toolchain to build the userland
applications, busybox, openssl, etc.. I thought it would be possible and
convenient to use the same cross compiler for u-boot. I figured it would
be possible without much difficulty because u-boot doesn't use the
standard C library. And so it was fairly painless to compile a working
version of u-boot. I was using a 2.95 version of gcc and 2.14.90.0.7
version of binutils. ld crashed because of silly bug in ldlang.c that
was easy to fix.

So, I now wanted to try and compile the bootloader using a version
of gcc greater or equal to 3.3. Maybe this is a bad idea but I was
curious. Anyway the compilation seemed to go fine but producing the
srec, "objcopy --gap-fill=0xff -O srec u-boot u-boot.srec", resulted in
the objcopy application being stuck in a long loop and eating up a
significant amount of system memory. Apparently it had caculated that
one of the gaps had a size close to max int which shouldn't be possible.
I don't think the problem isn't with objcopy itself but instead that the
output of the compiler is different than what should be expected. I know
an easy solution would be to use the ELDK in place of the current
toolchain but I'm more interested in understanding what is going wrong.

Hence, the reason for my email. If I wanted to discover the root of
my problem are there any good resources for information? Potentially a
specification for the format expected by object copy. Or maybe some
advice on problems to expect when using a new version of gcc and/or
binutils to cross compile for a different architecture. Also any general
comments or information anyone would be willing to impart would be
useful. Essentially I'm just trying to learn. Thank you for your time.

regards,
Andrew