Someone will have to find the bug in gcc-3.2.1->gcc-3.2.3 causingtickerto crash for pc386

Valette Eric eric.valette at free.fr
Thu Apr 3 19:28:47 UTC 2003


Joel Sherrill wrote:

> Comment please. :)  This particular line of code hasn't changed since
> the newlib 1.5 or newlib 1.6 timeframe (ages ago).  What broke this 
> time?

The cvs log file for newlib sys/reent.h is so big for the last months 
that even if the line of code has not changed, what it does has indeed 
changed. And bizarely it as changed much between 1.10 and 1.11 and even 
post that.  Besides the macro itself has changed and the code now looks 
like :

*ptr = {0, & (*ptr).__sf[0], ...};

which I do not even understand it compiles or its exact meaning. Now 
that there is a macro for using pointers (added in april 2002), I think 
it is more reasonnable to use it and indeed it cures the problem. I do 
not want to disassemble the code to see exactly what is wrong but I 
guess it  at least corrupt the stack by allocating a temporary struct 
reent on it and copying a block of stack in an undefined state 
especially if irq are on...

Feel free to compare the two generated code :-)

-- 
    __
   /  `                   	Eric Valette
  /--   __  o _.          	6 rue Paul Le Flem
(___, / (_(_(__         	35740 Pace

Tel: +33 (0)2 99 85 26 76	Fax: +33 (0)2 99 85 26 76
E-mail: eric.valette at free.fr









More information about the users mailing list