Re: [U-Boot] Bug in TOP860 code with gcc 4.8.1
Hello Jeroen, Hello Reinhard, On 01/14/2014 12:33 PM, Reinhard Meyer wrote: Dear Wolfgang, Dear Reinhard, attempting to build the TOP860 code with a GCC 4.8.1 based tool chain (say ELDK v5.5 or Yocto 1.5) gives the following errors: -> ./MAKEALL TOP860 Configuring for TOP860 board... textdata bss dec hex filename 165471 21020 17316 203807 31c1f ./u-boot ../common/flash.c: In function 'flash_init': ../common/flash.c:336:20: warning: iteration 128u invokes undefined behavior [-Waggressive-loop-optimizations] info->start[i] = (ulong)addr + 0x1 * i; ^ ../common/flash.c:334:4: note: containing loop for (i = 0; i < info->sector_count; i++) ^ ... Can you please provide a fix - or is this old hardware and the code should be removed from the U-Boot tree? 1. on first and second glance I cannot see where this (simple!!) loop might "invoke undefined behaviour". Seems like a compiler/optimizer bug to me... 2. should not the same issue arise with TOP5200 (using the same flash.c) ?? 3. nevertheless TOP860 can be removed. It is out of bounds: include/configs/TOP860.h:#define CONFIG_SYS_MAX_FLASH_SECT128 /* max number of sectors on one chip*/ include/configs/TOP5200.h:#define CONFIG_SYS_MAX_FLASH_SECT 256 /* max num of sects on one chip */ Removing will work as well of course ;) Regards, Jeroen I see. Because of the common code with TOP5200, there is potentially a larger flash chip available in the switch, which would cause undefined behaviour later. However TOP860 has never seen more than 2MB of flash :) so there is no actual danger. For the next few weeks I do not have the capacity to provide a patch, and since the TOP860 U-Boot is frozen to a very old state by the customers anyway, it is save to be removed from the current tree. Best Regards Reinhard ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] Bug in TOP860 code with gcc 4.8.1
Hello Reinhard, On 01/14/2014 12:33 PM, Reinhard Meyer wrote: Dear Wolfgang, Dear Reinhard, attempting to build the TOP860 code with a GCC 4.8.1 based tool chain (say ELDK v5.5 or Yocto 1.5) gives the following errors: -> ./MAKEALL TOP860 Configuring for TOP860 board... textdata bss dec hex filename 165471 21020 17316 203807 31c1f ./u-boot ../common/flash.c: In function 'flash_init': ../common/flash.c:336:20: warning: iteration 128u invokes undefined behavior [-Waggressive-loop-optimizations] info->start[i] = (ulong)addr + 0x1 * i; ^ ../common/flash.c:334:4: note: containing loop for (i = 0; i < info->sector_count; i++) ^ ... Can you please provide a fix - or is this old hardware and the code should be removed from the U-Boot tree? 1. on first and second glance I cannot see where this (simple!!) loop might "invoke undefined behaviour". Seems like a compiler/optimizer bug to me... 2. should not the same issue arise with TOP5200 (using the same flash.c) ?? 3. nevertheless TOP860 can be removed. It is out of bounds: include/configs/TOP860.h:#define CONFIG_SYS_MAX_FLASH_SECT128 /* max number of sectors on one chip*/ include/configs/TOP5200.h:#define CONFIG_SYS_MAX_FLASH_SECT 256/* max num of sects on one chip */ Removing will work as well of course ;) Regards, Jeroen ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] Bug in TOP860 code with gcc 4.8.1
Dear Wolfgang, Dear Reinhard, attempting to build the TOP860 code with a GCC 4.8.1 based tool chain (say ELDK v5.5 or Yocto 1.5) gives the following errors: -> ./MAKEALL TOP860 Configuring for TOP860 board... textdata bss dec hex filename 165471 21020 17316 203807 31c1f ./u-boot ../common/flash.c: In function 'flash_init': ../common/flash.c:336:20: warning: iteration 128u invokes undefined behavior [-Waggressive-loop-optimizations] info->start[i] = (ulong)addr + 0x1 * i; ^ ../common/flash.c:334:4: note: containing loop for (i = 0; i < info->sector_count; i++) ^ ... Can you please provide a fix - or is this old hardware and the code should be removed from the U-Boot tree? 1. on first and second glance I cannot see where this (simple!!) loop might "invoke undefined behaviour". Seems like a compiler/optimizer bug to me... 2. should not the same issue arise with TOP5200 (using the same flash.c) ?? 3. nevertheless TOP860 can be removed. Best Regards, Reinhard ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot