[yocto] Differnt build result of same u-boot source with differnet binutils

Luo Zhenhua-B19537 B19537 at freescale.com
Fri May 31 01:19:26 PDT 2013


When the u-boot(HEAD of master in git://git.freescale.com/ppc/sdk/u-boot.git) of p1022ds is built with different binutils in Yocto, the result is different. 

With binutils-2.23.1(last version in Yocto), u-boot can be built correctly. 
With binutils-2.23.2(current version in Yocto), the build failed as following:
| release.S: Assembler messages:
| release.S:236: Error: value of 4294963524 too large for field of 2 bytes at 170
| release.S:237: Error: operand out of range (0xfffffffffffff144 is not between 0x0000000000000000 and 0x000000000000ffff)
| release.S:237: Error: value of 4294963524 too large for field of 2 bytes at 174
| release.S:365: Error: value of 4294963524 too large for field of 2 bytes at 206
| release.S:366: Error: operand out of range (0xfffffffffffff144 is not between 0x0000000000000000 and 0x000000000000ffff)
| release.S:366: Error: value of 4294963524 too large for field of 2 bytes at 210
| release.S:390: Error: value of 4294963520 too large for field of 2 bytes at 278
| release.S:391: Error: operand out of range (0xfffffffffffff140 is not between 0x0000000000000000 and 0x000000000000ffff)
| release.S:391: Error: value of 4294963520 too large for field of 2 bytes at 282

Below is the failed code section:
[..snip..]
233 #define toreset(x) (x - __secondary_start_page + 0xfffff000)
234 
235         /* get our PIR to figure out our table entry */
236         lis     r3,toreset(__spin_table_addr)@h
237         ori     r3,r3,toreset(__spin_table_addr)@l
238         lwz     r3,0(r3)
[..snip..]

Seems like the build error is related to binutils, can somebody shed some light on the issue? Thanks in advance. 


Best Regards,

Zhenhua




More information about the yocto mailing list