
Dear Scott Wood,
In message 20090715221820.GA16203@b07421-ec1.am.freescale.net you wrote:
On Mon, Jul 13, 2009 at 05:25:35AM -0400, Mike Frysinger wrote:
...
basically, that is correct. arm's libgcc is just that whacky because of all the different ABIs that exist. although citing the Linux kernel here may not be appropriate because they specifically avoid libgcc -- because it's so screwed up.
I'm continually amazed to see again and again many otherwise clever software developers investing efforts to solve the same problems again and again locally in separate projects, instead of fixing them once at the central point where the problem actually lies.
So instead of fixing the "screwed up" libgcc code for ARM such thatit can be used for applications _and_ Linux kernel _and_ U-Boot and other projects, we re-invent and copy and improve the code locally in each project (and I cannot tell what would surprise me more - to hear that the libgcc maintainers are not involved, or that they are).
Instead of adding a new feature to "make" once, Linux and several other projects add complicated Makefile rules to produce "hort" output like
CC fs/inode.o CALL arch/powerpc/kernel/prom_init_check.sh AS arch/powerpc/kernel/head_32.o LDS arch/powerpc/kernel/vmlinux.lds
I always though softwre engineering was about _not_ re-inventing the wheel again and again and again... :-(
Isn't that what multilib is for?
hm... wrong forum to ask, I guess...
On a related note, I wish GCC had a "no-float" option that could be used in place of soft-float. It would be ABI-compatible with either soft or hard float, because it doesn't use float at all (GCC would raise an error if you try).
You should ask this on a GCC related list, or submit a proposal to the GCC stearing committee.
It seems pretty reasonable for U-Boot to provide functions like raise()/abort() that take the place of a hardware exception, and display an error message.
This does not sound reasonable to me.
Best regards,
Wolfgang Denk