This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: Compiled for big endian target is little endian ld error
> The implication is that the toolchain you are using has not been built
> with a set of hard-float multilibs, or that there is a bug in the linker
> and it is choosing the wrong set of flags to set in the private header
> of the dm256_ctrl output file. The latter seems more likely since you
> have other error messages which imply that there are hard-float binaries
> in the toolchain:
>
> /usr/local/lib/gcc-lib/arm-linux/3.3.2/../../../../arm-linux/bin/ld:
> ERROR: /usr/local/lib/gcc-lib/arm-linux/ 3.3.2/be/crtn.o uses hardware
> FP, whereas dm256_ctrl uses software FP
We saw this quite a bit before we switched to EABI based toolchains. It's
relatively easy to build a toolchain where gcc and gas have different
defaults. In particular the gas default FPU depends on the selected cpu. This
means that under normal circumstances things work, but objects are marked
incorrectly. If the user then explicitly specifies the default options (eg.
-mhard-float) this overrides the gas defaults, and makes it "incompatible"
with the existing objects.
The EABI toolchains don't suffer from this because the object attributes are
explicitly encoded in the assembly file.
Paul