
In message fc.004c4e48002071d73b9aca009ccdb13f.207378@rea.de you wrote:
your compiler wasn't built for a stand-alone target, otherwise
can you please explain what you mean with this statement? It's rather cryptic for me. I never built GCC "for a stand-alone target", and yet I always was able to use it without problems including for U-Boot.
The reason for the difference is the link order:
This is most definitely NOT the reason.
One solution could be to change the link order (link libarm.a last);
This makes no sense to me.
If you look carefully at the link statement you might notice that all the libraries are enclosed by a "--start-group ... --end-group" sequence.
Reading TFM:
The specified archives are searched repeatedly until no new undefined references are created. Normally, an archive is searched only once in the order that it is specified on the command line. If a symbol in that archive is needed to resolve an undefined symbol referred to by an object in an archive that appears later on the command line, the linker would not be able to resolve that reference. By grouping the archives, they all be searched repeatedly until all possible references are resolved.
Best regards,
Wolfgang Denk