On Thu 24 Oct 2013 05:27:56 NZDT +1300, Matwey V. Kornilov wrote:
On Oct 23, 13 10:55:20 +0200, Richard Biener wrote: I did that move when an old compiler was the better choice. Should we go back into the main GCC package if we find that now a current GCC is a good choice? (Chances are high that 4.8 is an excellent avr compiler, I am told...)
4.8 may be the best choice at this point in time, however then things move and the version best for host may not be the same that is best for AVR. So you must allow for them to be different, although they may of course be identical sometimes.
As for me, regarding gcc version, if something works poorly it should be reported to upstream maintainers instead of sitting on old out-dated version.
This is ideal and wishful thinking. There is only one avr-gcc developer, and he is doing a superb job at fixing bugs. Of course do report it upstream, but because of a lack of developer power a fix may be 3 years away no matter the bug priority. Meanwhile you can't not have a working compiler for everyone, so you must patch if possible. Or there is no patch - in which case you can't upgrade gcc to/with mainstream and you must stay with the older version.
In embedded systems it is frequently more important to have a compiler with known rather than best characteristics. Suddenly your car brakes fail because someone changed to a newer compiler that has one bug fixed that didn't affect the break code but does something else that makes the brake code fail. Well Arduino doesn't make car brakes (thank goodness, the code is low quality) but it's used many times by users who don't want or need to know about compilers and you have to be careful not to change their end result.
Code size is also critical in embedded systems. In my experiments size almost always went up substantially from 4.3 to 4.5, and sometimes from 4.3 to 4.6. It's only easy to find out if you have all versions installed.