On 04/21/2015 03:18 PM, Jim Wilson wrote:
On Tue, Apr 21, 2015 at 12:35 PM, Joel (Xi Zhou) Zhou joel.zhou@broadcom.com wrote:
The u-boot built with gcc-linaro-arm-none-eabi-4.9-2014.09_linux can boot on the development board. This toolchain was pre-built toolchain from Linaro, built with crosstool-NG. The version is gcc version 4.9.2 20140904 (prerelease) (crosstool-NG linaro-1.13.1-4.9-2014.09 - Linaro GCC 4.9-2014.09)
With the same u-boot source, the binary built with the Linaro gcc 4.9 2015.04 hang on the same board. The 2nd toolchain was compiled locally on RHEL6, built with ABE tool. We build it locally to avoid “GLIBC_2.14 not found” issue on the pre-built toolchain. The version is gcc version 4.9.3 20150413 (prerelease) (Linaro GCC 2015.04)
The older toolchain is built with crosstool-NG. The newer one is built with ABE. There are likely some subtle differences in behaviour between them, and this might be causing the problem. This would not be a problem normally, but low level code like bootloaders are more sensitive to these kinds of things. Or it could be a latent bug in the new release.
There are differences between crosstool-ng built toolchains and ABE built ones, but they're mostly minor tweaks. Crosstool-ng applies it's ow patches to get things to build. ABE doesn't do any patching. It's probably a compiler bug, I just found out our 2015.04 release can't compile all of Open Embedded, whereas a older release worked fine.
- rob -