Go Down

Topic: Downlevel AVR-Libc (Read 1 time) previous topic - next topic

Jack Christensen

Just discovered that Arduino uses AVR-Libc 1.6.4, 2008. (Went looking for the eeprom_update_* functions and found they were missing.)

There must be a reason? Just curious.
MCP79411/12 RTC ... "One Million Ohms" ATtiny kit ... available at http://www.tindie.com/stores/JChristensen/

Coding Badly


Conservatism.  The compiler and library that the Arduino folks include has been, for the most part, reliable.  They are reluctant to change for fear of crossing paths with a serious bug.

Time.  Determining which versions are worth using and which versions should be skipped is a tedious and time consuming effort.  In the short term, their time is better spent on other things (like a reliable Mega bootloader).

Fresh meat.  It is paramount to the Arduino success that the hardware and software work out-of-the-box for the first-time user who is not expected to be technically savvy.  More advanced users (like you) can find solutions on their own, here, or at AVR Freaks.

Jack Christensen

Fair enough, all good reasons. I was a little surprised as it's evidently been the same since at least 0022. OTOH, my copy of WinAVR has 1.6.7, dated 2010. I suppose that Arduino 1.0 had enough other things going on that they didn't need a change to a major part of the toolchain as well.

A fellow I used to work with was the king of analogy. He'd argue against being an early adopter by saying, "Software is like fine wine, it needs to age a little", i.e. let other people take the brunt of the early problems. Other times he'd say, "Software is like the oil in your car, it needs to be changed once in a while." Ha! But no doubt it is a balancing act!

Happened to notice your post was number 6502! If I can't get AVR-Libc upgraded, then I will propose a change to the member grouping that uses more imaginative numbers, e.g. 328 posts to be a Full Member, 1024 for Senior, etc. XD  And thanks for the compliment, or was "advanced" referring to my age? :P
MCP79411/12 RTC ... "One Million Ohms" ATtiny kit ... available at http://www.tindie.com/stores/JChristensen/

SurferTim

Quote
I just discovered that Arduino uses AVR-Libc 1.6.4, 2008.


That is untrue. Only Windows users are behind the power curve.

I use avr-libc-1.7.1, as does all Ubuntu people. I just finished getting one of the last bugs out of avr-libc-1.8.0, and some users have already upgraded to that version.

But that is ok with me. It was the other way around back in July 2011 when I got here. The Linux users were behind. Not now.  :D

Muzer

Considering the new versions don't seem to work properly (of binutils at least), I'm envious of you Windows users who have it packaged up with nice, well-tested versions ;)

SurferTim


Considering the new versions don't seem to work properly (of binutils at least), I'm envious of you Windows users who have it packaged up with nice, well-tested versions ;)


I am too. The same way I am envious of a person riding a horse when my car won't start.  ;)

You must not be a Ubuntu person.


Muzer



Considering the new versions don't seem to work properly (of binutils at least), I'm envious of you Windows users who have it packaged up with nice, well-tested versions ;)


I am too. The same way I am envious of a person riding a horse when my car won't start.  ;)

You must not be a Ubuntu person.




I use Gentoo - I'm usually perfectly happy with compiling a load of versions and keeping the one that works, but in this case, the device is a netbook which takes about 4-5 hours to compile GCC because the SSD is so slow (it's one of those early ones with the horrible Samsung (IIRC?) controllers). Of course, Windows wouldn't run on it at all decently, so I'm still better-off than I would be being a real Windows user ;)

Jack Christensen


Quote
I just discovered that Arduino uses AVR-Libc 1.6.4, 2008.


That is untrue. Only Windows users are behind the power curve.

I use avr-libc-1.7.1, as does all Ubuntu people. I just finished getting one of the last bugs out of avr-libc-1.8.0, and some users have already upgraded to that version.

But that is ok with me. It was the other way around back in July 2011 when I got here. The Linux users were behind. Not now.  :D


Really? So there are different toolchain versions in the Arduino 1.0 distribution for Windows, vs. Arduino 1.0 for Linux? That could be worse than being downlevel, unless some version of a particular tool is seriously broken on a given OS.
MCP79411/12 RTC ... "One Million Ohms" ATtiny kit ... available at http://www.tindie.com/stores/JChristensen/

SurferTim

#8
Mar 13, 2012, 02:35 pm Last Edit: Mar 13, 2012, 02:51 pm by SurferTim Reason: 1
Quote
Really? So there are different toolchain versions in the Arduino 1.0 distribution for Windows, vs. Arduino 1.0 for Linux? That could be worse than being downlevel, unless some version of a particular tool is seriously broken on a given OS.


Answer to the first couple of questions: Oh, yes!

Response to the last statement: Only if you enjoy riding a horse.  :D

edit: For non-Linux users, the toolchain (avr-gcc, avr-libc, binutils) is not included in the Linux download from the Arduino site. That is normally provided by your Linux distribution repository.

Jack Christensen


For non-Linux users, the toolchain (avr-gcc, avr-libc, binutils) is not included in the Linux download from the Arduino site. That is normally provided by your Linux distribution repository.


Oooooh. Bad assumption on my part there! Thanks, very good to know. Have had this thing about getting into Linux kicking around in the back of my head lately...

Quote

Response to the last statement: Only if you enjoy riding a horse.  :D


Actually have avoided them thus far, intend to keep it that way! ;)
MCP79411/12 RTC ... "One Million Ohms" ATtiny kit ... available at http://www.tindie.com/stores/JChristensen/

Coding Badly

Really? So there are different toolchain versions in the Arduino 1.0 distribution for Windows, vs. Arduino 1.0 for Linux?


The Linux version does not include GCC or Libc.  It's assumed the user will use what comes with the Linux distribution.

Quote
That could be worse than being downlevel, unless some version of a particular tool is seriously broken on a given OS.


It is.   (With the exception of proactive folks like SurferTim).  The plan is to standardize on a more recent version and include it in all distributions.

Coding Badly

Happened to notice your post was number 6502!


I hate that processor!  More time is spent shuffling values around so the A register is available than doing actual work.

Jack Christensen


Happened to notice your post was number 6502!


I hate that processor!  More time is spent shuffling values around so the A register is available than doing actual work.



Haha, sorry! Never actually programmed one. Was more of a 6800 guy. Liked that one.
MCP79411/12 RTC ... "One Million Ohms" ATtiny kit ... available at http://www.tindie.com/stores/JChristensen/

SurferTim

Quote

Quote
That could be worse than being downlevel, unless some version of a particular tool is seriously broken on a given OS.

It is.   (With the exception of proactive folks like SurferTim).  The plan is to standardize on a more recent version and include it in all distributions.


That is a great idea, but someone has to be the pathfinder for the new versions. I don't mind being the lead dog.

BTW, I like the phrase "proactive folks". Much better than what most call me. :)

Go Up