Re: [U-Boot] Bug in TOP860 code with gcc 4.8.1

2014-01-15 Thread Reinhard Meyer

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

2014-01-14 Thread Jeroen Hofstee

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

2014-01-14 Thread Reinhard Meyer

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