
Dear Simon Glass,
In message CAPnjgZ2wCqF2tPWwFUdKG7y_xDeYhbFrEnqXxRJG6eU7yj9Xug@mail.gmail.com you wrote:
The libraries included in the toolchain are built for the ARMv7 CPUs, and hence fail to operate correctly when used by the portion of U-Boot which runs on the ARMv4 CPU, presumably due to ISA differences. IIRC, there are overrides in the U-Boot build process such that some/all of U-Boot is built so it'll run on ARMv4 OK, which is why using libgcc built by U-Boot solves this.
Yes that's right, but actually I have never delved into exactly why. Perhaps it is an integer divide or internal memcpy() call early in the code. We might be able to find the offending C library code, given enough time, and perhaps arrange not to call it. A little fragile though.
That would be the totally wrong approach. Problems should be solved where they originate. Here this appears to be the tool chain, which does not provide a version of libgcc suitable for amv4t configurations.
Best regards,
Wolfgang Denk