GCC Toolchain Change Logs

Go To Last Post
12 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I need to see what changed between GCC Toolchain 3.6.0 and 3.6.2 

 

So far Google and forum searches have not yielded anything helpful.

 

Where can I find the appropriate changelogs for GCC AVR 8-bit?

 

Regards,

Chuck Hackett

This topic has a solution.
Last Edited: Mon. Apr 6, 2020 - 01:13 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

A first step would be finding out the versions of the compiler(s). It's definitely not v3.x what you are using.

avrfreaks does not support Opera. Profile inactive.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

If you are talking about Atmel/Micochip "toolchain" version numbers they have no relation to the avr-gcc and binutils (and AVR-LibC) version numbers so try running the tools with -v to get their version numbers then check the bugzilla for changes between one tagged release and the other of each component.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

SprinterSB wrote:
A first step would be finding out the versions of the compiler(s). It's definitely not v3.x what you are using.

 

See my post #3 in this thread:  https://www.avrfreaks.net/comment/2885271#comment-2885271

 

The two versions I am dealing with are ( as identified by the release notes PDF in the respective avr8\avr8-gnu-toolchain folder) :

 

3.5.4.1709 (I had the 3.6.0 above wrong) - compiles my STL template references correctly

 

3.6.2.1778 (came with Atmel Studio 7.0.2397) - does not compile my STL template references correctly, error:

default argument for template parameter for class enclosing 'class std::basic_istream<charT, traits>::sentry'

which is why I am trying to see the changes between versions.

 

clawson wrote:
If you are talking about Atmel/Micochip "toolchain" version numbers they have no relation to the avr-gcc and binutils (and AVR-LibC) version numbers so try running the tools with -v to get their version numbers then check the bugzilla for changes between one tagged release and the other of each component.

 

running avr-cpp -v yields (among other things):

 

gcc version 5.4.0 (AVR_8_bit_GNU_Toolchain_3.6.2_1778)

 

Which matches the avr-gcc version number above.

 

I am looking for changelogs for avr-gcc, not gcc because I assume that the avr-gcc logs might include items in addition to the gcc changes (which I assume they would include by reference)

 

Never used/seen bugzilla but checked with google and just found open "bugs" but, at the moment, I am assuming that this is due to some feature change, more stringent checks, etc., not a "bug" ...

 

I found this page that seems to reference change logs but I can't make sense of it:

https://launchpad.net/ubuntu/+source/gcc-avr/+changelog

 

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

STL? avr-g++ does not have STL??

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

clawson wrote:

STL? avr-g++ does not have STL??

 

3-rd party STL library that works under toolset  3.5.4.1709  but not toolset  3.6.2.1778 and I am trying to find out what changed in the toolset to cause this.

 

See:  https://www.avrfreaks.net/comment/2885271#comment-2885271

Last Edited: Sat. Apr 4, 2020 - 10:08 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Shouldn't you be asking the tool vendor?

You can put lipstick on a pig, but it is still a pig.

I've never met a pig I didn't like, as long as you have some salt and pepper.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I guess this STL is related to OpenWrt and BusyBox.

 

https://uclibc.org/

 

Would that be expected to work with the AVR toolchain?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Just download the version that works, I assume 3.5.4 will be the one you had before (which seems to be gcc 4.9.2 instead of the 'current' 5.4.0)-

https://www.microchip.com/mplab/avr-support/avr-and-sam-downloads-archive

 

 

or, you can probably fix the problem-

https://godbolt.org/z/cnWdPS

(probably would only be the tip of an iceberg)

 

I don't know the c++ differences between gcc 4.9.2 vs 5.4.0, but it looks like template parameters were previously tolerant of providing default parameters at a point after a declaration was already made. I'm not a c++ expert either, and have not been in any hotel, much less a HI express, in a long time.

 

edit-

Probably a good start-

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53856#c4

but you can also come up with more that relate to c++ default parameters, so I can see how that could have changed somewhere from 4.9.2 to 5.4.0, where they previously allowed something that was not according to 'rules'. You could also check if the c++ library has a newer version available that conforms to later versions of the compiler, or simply just use the old compiler version.

Last Edited: Sun. Apr 5, 2020 - 10:30 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

gcc version 5.4.0 (AVR_8_bit_GNU_Toolchain_3.6.2_1778)

Which matches the avr-gcc version number above.

 

default argument for template parameter for class enclosing 'class std::basic_istream<charT, traits>::sentry'

 You probably need to compare the gcc-version rather than the "toolchain version."   Toolchain 3.6.2_1778 has avr-gcc 5.4, and Toolchain 3.5.4.1709 has avr-gcc 4.9.2

Behavior of C++ templates is VERY unlikely to be caused by Atmel-specific changes for AVRs, so you'd need to check out the changes between the core gcc 4.9.2 and 5.4.

 

I assume that the avr-gcc logs might include items in addition to the gcc changes

Probably not anything beyond "started with gcc 5.4..."  Vendor versions are usually "standard release XXX plus these patches."  I don't think they expose the whole RCS tree, even if it uses an advanced enough RCS to track "parent branch" changes.

 

 

(although first, I'd check with some C++ experts to see if the code you're using is correct as-is, or whether the new version is making a valid complaint and should be fixed.  Alas, writing portable/compatible template libraries is pretty rarified territory.)

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

If you aren't explicitly setting the language standard used (e.g. -std=c++11), it is possible that the default language standard changed resulting in the behavior you are seeing. I wasn't able to quickly find what the default language standards are for various versions, but you should be able to check as documented here: https://stackoverflow.com/a/27980787. That same stackoverflow answer also mentions an issue with template aliases when gcc is used instead of g++.

build-avr-gcc: avr-gcc build script

toolchain-avr-gcc: CMake toolchain for cross compiling for the AVR family of microcontrollers

avr-libcpp: C++ standard library partial implementation (C++17 only) for use with avr-gcc/avr-libc

picolibrary: C++ microcontroller driver/utility library targeted for use with resource constrained microcontrollers

picolibrary-microchip-megaavr: picolibrary HIL for megaAVR microcontrollers

picolibrary-microchip-megaavr0: picolibrary HIL for megaAVR 0-series microcontrollers

This reply has been marked as the solution. 
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0