Go Down

Topic: Tool chain is ancient, and needs to be updated. (Read 22173 times) previous topic - next topic

ajk_

Why is the Arduino using a tool chain from 2008 -- 5 years old, and full of some very nasty bugs?

I keep stumbling upon these horrible bugs left and right.

Atmel uses avr-gcc-4.7.2


JChristensen

I've been doing this:
http://forum.arduino.cc/index.php/topic,37965.msg281176.html#msg281176

drjiohnsmith

we all know about the old tools,

its been a running problem since 2009,,,

but the team seem reluctant to change ,

maybe the Due will force things !

ajk_


I've been doing this:
http://forum.arduino.cc/index.php/topic,37965.msg281176.html#msg281176

I can easily do the same with Linux-- I personally don't use the Arduino IDE, just the c++ stuff, and libs, which are handy.

The problem is that not everyone else can or will do it, and you have to fight nasty bugs with workarounds to support them in your libraries. It is really a pain in the neck, and there are many who whine about official this, and official that, which in reality is bologna, because all the tools are open source and free for you to not just use, but to modify...

What if I made an advanced fork using proper current tools on github? You can find my other stuff there too.
https://github.com/xxxajk



drjiohnsmith

"you can change open source"

well personally, no I can't

I speak arduino, but the tool chain are way beyond what I could modify,

    I could learn it,
          but then I'd not want / need to use Arduino,


Were reliant upon the team ,


ajk_

Yes, but would you use an alternative tool set (avr-gcc/g++ etc) if it was offered in a simplistic way?
i.e. it would replace the outdated tools. that is what I am asking.
8)

drjiohnsmith

for myself,
   I teach the Arduino with children,
      so want to stay as near to off the shelf as possible,

Its just a shame that, all the work that many people have put into improving the chain , bring up to date, apparently ignored by the Arduino team.


 

ajk_


for myself,
   I teach the Arduino with children,
      so want to stay as near to off the shelf as possible,

Its just a shame that, all the work that many people have put into improving the chain , bring up to date, apparently ignored by the Arduino team.

Tell everybody you know, and start complaining on github then!  :smiley-mr-green:
Squeaky wheel gets the grease!


westfw

Github is where the Arduino issue list lives.  And the source code.

However, it's not so simple.  There are two problems:

1) The Arduino doesn't use gcc directly.  It uses packaged SETS of tools that include matched versions of avr-gcc, avr-libc, and avr-binutils, plus a bunch of other stuff (make, unix-like utilities commonly used by makefiles, avrdude, etc.)  On Windows, Arduino uses WINAVR, and on Mac it uses CrossPack.  For a while, Crosspack tracked WinAVR, and everything was great.  But the last version of WINAVR was in 2010 and used avr-gcc 4.3.3 (Arduino seems to use a slightly earlier version.)  The WinAVR maintainers have essentially said that they're not going to do it any more.  The modern equivalent comesdirect from Atmel in the form of their "Atmel AVR Toolchain", which is available for Windows and Linux (as of relatively recently: this has avr-gcc 4.7.2, I think.  In between 2010 and now there was ... not much, short of building your own package.)  Note  that there's no Mac package from Atmel, and it's not clear with the Atmel tools contain additional patches beyond stock gcc 4.7.2 or not.

2) Nearly every version of avr-gcc in between 4.3.x and 4.7.2 has been broken WRT Arduino, for various reasons.  (causing all sorts of trouble for the linux Arduino users that used to be instructed to install whatever version of avr-gcc/etc was packaged for their distribution.)  Some of the bugs are documented in https://github.com/arduino/Arduino/issues/1208
(avr-gcc 4.7.2 is sounding pretty good.  The Atmel package is looking like a pretty adequate replacement for WinAVR.  But it's only a couple of months old, and it has some incompatibilities with the current Arduino core code.)


Could you be more explicit about "I keep stumbling upon these horrible bugs left and right"?  Every known bug in the current compiler is a motivator for upgrading, but ... I wasn't aware that there WERE any significant bugs.  Descriptions would be good.  Pointers to the gcc or avr-xxx issue trackers and actual patches would be better.

drjiohnsmith

Its alittle off topic,
   but if you want to know the list of bugs,
      look on the extensive bug list on the arduino

As for "significant" , that is subjective,
 
what to you and me is a "known issue and you get around it be this"

the Arduino is aimed at new users, moving art et all,
     and to thise users, a bug is a bug, they know not how serious it is,
        every warning that comes up is a cause for concern, worry
then when you say "oh that one is not significant"
    !!!!!!
   

yuros

Hi guys,

I've been wondering the same question. Why Arduino didn't update to the last avr-gcc version so as to solve all the compiler bug issues?

Has anyone achieved to update the toolchain to the last versions? (I guess they are avr-gcc 4.7.2 and avr-libc 1.8.0-3)

Cheers!

westfw

Quote
but if you want to know the list of bugs,
      look on the extensive bug list on the arduino

I have looked at it.
The vast majority of those are NOT things that will be fixed by upgrading the compiler.  There isn't even a "compiler" label (there hasn't needed to be.)
Searching through the bug list for keywords like "compiler" or "avr-gcc", I found ONE that might fit ("avr-gcc doesn't support Hebrew").
(There are several bugs related to having problems with getting (via linux) more recent compilers than 4.3.x)

I want a list of Arduino problems cause by bugs in the version of avr-gcc/etc being used, that are KNOWN FIXED in, say, "Atmel AVR Toolchain 3.4.2" (which is the current version that has avr-gcc 4.7.2)

drjiohnsmith

tool chain is the title,

   what fix's would happen by changing to the latest tool chain ?

your saying there is none ?

ajk_

There's actually one very known bug, where you can't pre-init an array, gcc doesn't puth keep around the emitted code, and you get an unallocated symbol... which... points to memory that isn't allocated and gets over written by another variable.

https://bugs.eclipse.org/bugs/show_bug.cgi?id=411544

This does not only affect arm, it affects many platforms.

Github is where the Arduino issue list lives.  And the source code.

However, it's not so simple.  There are two problems:



Both easily solved with the correct effort.

Personally, I can't stand it when people tolerate a lower quality tool when something better is available. To me it is not only senseless, it is plain stupid. Demand quality. You paid for it when you bought the Arduino.

Go Up