[Reminder] The AVR GCC backend needs the support of the community

154 views
Skip to first unread message

John Paul Adrian Glaubitz

unread,
May 22, 2020, 6:02:43 AM5/22/20
to devel...@arduino.cc
Hi!

With GCC 10 being released, GCC upstream has officially started with the GCC 11
development cycle which will eventually lead to the removal of all backends which
are still using the cc0 register representation [1].

In order to save the backend, I have started a Bountysource campaign [2] similar
to the one I created for m68k [3].

While the Bountysource campaign for m68k was successful and lead to the conversion
of the backend to MODE_CC, the AVR campaign has not gained enough supporters to
collect enough money to motivate a developer to work on the task - although some
developers have shown interest in it [4,5].

So, if anyone in the Arduino community is interested in keeping AVR support in GCC
in the future, please consider making a small donation to the Bountysource
campaign.

Adrian

> [1] https://gcc.gnu.org/legacy-ml/gcc-patches/2019-09/msg01256.html
> [2] https://www.bountysource.com/issues/84630749-avr-convert-the-backend-to-mode_cc-so-it-can-be-kept-in-future-releases
> [3] https://www.bountysource.com/issues/80706251-m68k-convert-the-backend-to-mode_cc-so-it-can-be-kept-in-future-releases
> [4] https://gcc.gnu.org/pipermail/gcc/2020-April/thread.html#402
> [5] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92729#c2

kpe...@blinksoft.com

unread,
May 22, 2020, 6:20:39 AM5/22/20
to devel...@arduino.cc
Do you know what is needed minimum to get it done? Second why would someone who doesn't know all the facts want to keep it.

Ken
--
You received this message because you are subscribed to the Google Groups "Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to developers+...@arduino.cc.
To view this discussion on the web visit https://groups.google.com/a/arduino.cc/d/msgid/developers/cb160135-d194-96b6-3b67-5cc0105bfd9e%40googlemail.com.

John Paul Adrian Glaubitz

unread,
May 22, 2020, 6:25:30 AM5/22/20
to kpe...@blinksoft.com, devel...@arduino.cc
On 5/22/20 12:20 PM, kpe...@blinksoft.com wrote:
> Do you know what is needed minimum to get it done?

There is no minimum. I don't know what sum will convince anyone to work on it,
for the m68k backend, we collected $6000 and the backend was converted within
a few weeks.

> Second why would someone who doesn't know all the facts want to keep it.

If you care about GCC 11 and newer being able to generate code for AVR controllers,
you want to keep it - keeping in mind that older GCC versions will eventually become
unsupported and might stop working on modern operating systems in the distant
future. Also, if you want to use modern C++ language features on AVR, you want to keep
the backend as well.

If you don't care about AVR controllers, you don't need to bother at all, of course.

Adrian

kpe...@blinksoft.com

unread,
May 22, 2020, 6:44:26 AM5/22/20
to John Paul Adrian Glaubitz, devel...@arduino.cc
I guess what I was thinking is putting up a crowd source page and doing a little more clear explaining of why this should be supported. If it received about 10k you know you could get it done right?

Ken

John Paul Adrian Glaubitz

unread,
May 22, 2020, 6:50:14 AM5/22/20
to kpe...@blinksoft.com, devel...@arduino.cc
On 5/22/20 12:44 PM, kpe...@blinksoft.com wrote:
> I guess what I was thinking is putting up a crowd source page and doing a little more
> clear explaining of why this should be supported.

Well, I'm a single person who is involved in many open source projects and my time
is limited. I'm not using AVR controllers that much myself besides a single Arduino
but I assume there are still thousands of people out there using AVR boards.

The same campaign was very successful for the m68k backend without having to write
a long explanation. The technical background is linked both in the bug tracker and
several of the links I posted, I'm not sure what else to do.

I fear this will end up falling off the table and in a few months users will be
angry when Ubuntu 22.04 will no longer be able to compile AVR code out of the
box.

The m68k community well understood that the conversion of the GCC backend was
necessary in order to be able to continue with projects like Linux/m68k,
NetBSD/m68k, AROS and many other retro projects revolving around the m68k
architecture, not sure why I have not been able so far to convince the
AVR community. I have also cross-posted this message on many forums.

> If it received about 10k you know you could get it done right?

I think that $5000 would be more than enough.

Adrian

Mark

unread,
May 22, 2020, 7:05:37 AM5/22/20
to 'John Paul Adrian Glaubitz' via Developers
Has anybody talked to ATMEL about contributing to this.  It would be in
their best interests and it would be nothing for them to contribute 5K.

John Paul Adrian Glaubitz

unread,
May 22, 2020, 7:14:44 AM5/22/20
to Mark, devel...@arduino.cc
On 5/22/20 1:05 PM, Mark wrote:
> Has anybody talked to ATMEL about contributing to this.  It would be in their
> best interests and it would be nothing for them to contribute 5K.

Yes, I sent mails to ATMEL/Microchip and the Arduino company. I only received a
"maybe mail" from the Arduino company, no answer from ATMEL/Microchip.

Adrian

Adrian Godwin

unread,
May 22, 2020, 8:16:15 AM5/22/20
to devel...@arduino.cc
On Fri, May 22, 2020 at 12:14 PM 'John Paul Adrian Glaubitz' via Developers <devel...@arduino.cc> wrote:

Yes, I sent mails to ATMEL/Microchip and the Arduino company. I only received a
"maybe mail" from the Arduino company, no answer from ATMEL/Microchip.


I suspect that Arduino see themselves transitioning to ARM and feel the legacy Gcc is sufficient to support AVR for as long as it remains in Arduino products.  

I wouldn't like to speculate on how Microchip see AVR's future. What does AVR Studio use internally ? If gcc, it suggests Microchip don't have a long-term future in mind for AVR. If they have their own compiler, I don't suppose they see a need for supporting another.

I'm not saying this is right. Just how I see the commercial position.

John Paul Adrian Glaubitz

unread,
May 22, 2020, 8:20:38 AM5/22/20
to Adrian Godwin, devel...@arduino.cc
On 5/22/20 2:15 PM, Adrian Godwin wrote:
> I suspect that Arduino see themselves transitioning to ARM and feel the
> legacy Gcc is sufficient to support AVR for as long as it remains in
> Arduino products.
>
> I wouldn't like to speculate on how Microchip see AVR's future. What does
> AVR Studio use internally ? If gcc, it suggests Microchip don't have a
> long-term future in mind for AVR. If they have their own compiler, I don't
> suppose they see a need for supporting another.

Oh, I fully agree on this. Of course, it's a commercial decision in the end.

But for one, Microchip is still selling AVR controllers [1] and, secondly,
a one-time donation of $5k isn't really that much for a big cooperation
when you consider that a paid programmer would take way more to work on this
task.

Adrian

> [1] https://www.microchip.com/design-centers/8-bit

Jim Leonard

unread,
May 22, 2020, 9:32:19 AM5/22/20
to 'John Paul Adrian Glaubitz' via Developers
I work in the Carnegie Mellon Robotics Lab and failed to get the school to put any money towards it. I would think that many colleges/universities might be interested in supporting this since lots of them use arduinos for teaching (I know mine does). So maybe people associated with other colleges and universities might have better luck? Alternately is there someone within the open source arduino tool chain who could reasonably put their name on a letter to go out to engineering and robotics schools asking for donations to this?

Are there other fundraisers we could possibly manage (classes at maker spaces for instance)?

--jim
> --
> You received this message because you are subscribed to the Google Groups "Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to developers+...@arduino.cc.
> To view this discussion on the web visit https://groups.google.com/a/arduino.cc/d/msgid/developers/75f1eeee-3556-bb76-4235-370e589e0a81%40googlemail.com.

Ashutosh Pandey

unread,
May 22, 2020, 10:04:56 AM5/22/20
to Developers
I think a fundraiser hosted at maker communities like Element14, HacksterIO, Hackaday, Circuitdigest etc could work. These spaces are populated with people who use Arduinos for interesting applications, and they may be interested in supporting their development.

Alessandro Ranellucci

unread,
May 22, 2020, 10:17:37 AM5/22/20
to devel...@arduino.cc
Hi Adrian,

thank you for raising awareness on this and also thanks to everyone who is contributing to the crowdfunding initiative. We’re aware of the issue and we're talking to Microchip about it. I’ll share updates here as soon as I have them.
Meanwhile, let’s spread the Bountysource link!

Cheers,

  - Alessandro



--
You received this message because you are subscribed to the Google Groups "Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to developers+...@arduino.cc.

Michael Shiloh

unread,
May 22, 2020, 11:07:06 AM5/22/20
to devel...@arduino.cc
>> maker communities like Element14, HacksterIO, Hackaday, Circuitdigest etc

It might be fruitful to approach SparkFun and Adafruit as well

>> many colleges/universities might be interested

I have seen a number of articles about colleges and universities being worried about reduced enrollment due to COVID-19, and financial uncertainty in general.

On Fri, May 22, 2020 at 6:04 PM Ashutosh Pandey <ashutoshpa...@gmail.com> wrote:
I think a fundraiser hosted at maker communities like Element14, HacksterIO, Hackaday, Circuitdigest etc could work. These spaces are populated with people who use Arduinos for interesting applications, and they may be interested in supporting their development.

--
You received this message because you are subscribed to the Google Groups "Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to developers+...@arduino.cc.

Nathan Seidle

unread,
May 22, 2020, 11:28:32 AM5/22/20
to devel...@arduino.cc
I'm very interested to see this happen. $500 posted.
--
Nathan Seidle, Founder



John Paul Adrian Glaubitz

unread,
May 22, 2020, 11:45:36 AM5/22/20
to devel...@arduino.cc
On 5/22/20 5:28 PM, 'Nathan Seidle' via Developers wrote:
> I'm very interested to see this happen. $500 posted.

Wow, that's generous. Thanks a lot.

Btw, one guy that has said to work on the backend apparently works for
Microchip [1]. Not sure though whether he will work on it as a hobby or
paid by the company.

Either way, I think it's safe to say that the backend is going to be safed!

Adrian

> [1] https://gcc.gnu.org/pipermail/gcc/2020-April/000412.html

Michael Shiloh

unread,
May 22, 2020, 12:40:58 PM5/22/20
to devel...@arduino.cc
Thanks Nathan. I hope you don't feel that I pressured you into this!

Does anyone remember the name of the guy from Atmel who spearheaded the AVR gcc effort? Eric something if memory serves. Super nice guy, and I think his enthusiasm and support is what made gcc work on AVR (I could be wrong). I wonder what he's doing, and what he thinks of this. I doubt that he's still with Atmel/Microchip. I think he also ran the avrfreaks community.

Speaking of avrfreaks, I wonder if they know about this...

Nathan Seidle

unread,
May 22, 2020, 12:52:06 PM5/22/20
to devel...@arduino.cc
I will always think you pressured me Michael ;) No, this is a Good thing.

--
Nathan Seidle, Founder


Mail Lists

unread,
May 22, 2020, 5:36:31 PM5/22/20
to devel...@arduino.cc
Does anyone remember the name of the guy from Atmel who spearheaded the AVR gcc effort? Eric something if memory serves.

Eric Weddington?

HTH

Alex Shepherd

Michael Shiloh

unread,
May 23, 2020, 12:19:17 AM5/23/20
to devel...@arduino.cc
That's him!

--
You received this message because you are subscribed to the Google Groups "Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to developers+...@arduino.cc.

William Westfield

unread,
May 25, 2020, 10:58:07 PM5/25/20
to devel...@arduino.cc
[gcc person]

GCC upstream has officially started with the GCC 11 development cycle which will eventually lead to the removal of all backends which are still using the cc0 register representation [1].

(someone else)
Has anybody talked to ATMEL about contributing to this.

There are a couple of things to notice:

1) The bounty-source things started 5 months ago, and was advertised then on the avr-freaks forums.  (Which is nominally the official AVR forum.)
2) The supported Atmel avr-gcc from Microchip is based on gcc 5.4.   The Arduino avr-gcc is based on 7.3.  So they have a ways to go before a lack of gcc 11 will be a “problem.”  (and the Arduino gcc seems to have bugs.)
3) reports are that newer versions of avr-gcc produce “worse” code.  :-(  I don’t know what the new flags technique will do.  Historically, mainline gcc developers rather neglect AVR (most other 8bit CPUs dropped out long ago, and there never were very many.)
4) Microchip has a for-profit version of avr-gcc that they sell.  They may be perfectly happen to add their mods to older versions of gcc.
5) I looked at the 68k changes.  It’s pretty complex stuff, probably requiring someone who is quite familiar with both gcc internals and AVR.  That might narrow it down to only a couple of people :-(

BillW/WestfW

Britton Kerin

unread,
May 26, 2020, 5:09:41 PM5/26/20
to devel...@arduino.cc, p...@microchip.com
On Mon, May 25, 2020 at 6:58 PM 'William Westfield' via Developers
<devel...@arduino.cc> wrote:
>
> [gcc person]
>
> GCC upstream has officially started with the GCC 11 development cycle which will eventually lead to the removal of all backends which are still using the cc0 register representation [1].
>
>
> (someone else)
>
> Has anybody talked to ATMEL about contributing to this.
>
>
> There are a couple of things to notice:
>
> 1) The bounty-source things started 5 months ago, and was advertised then on the avr-freaks forums. (Which is nominally the official AVR forum.)
> 2) The supported Atmel avr-gcc from Microchip is based on gcc 5.4. The Arduino avr-gcc is based on 7.3. So they have a ways to go before a lack of gcc 11 will be a “problem.” (and the Arduino gcc seems to have bugs.)
> 3) reports are that newer versions of avr-gcc produce “worse” code. :-( I don’t know what the new flags technique will do. Historically, mainline gcc developers rather neglect AVR (most other 8bit CPUs dropped out long ago, and there never were very many.)
> 4) Microchip has a for-profit version of avr-gcc that they sell. They may be perfectly happen to add their mods to older versions of gcc.

When Microchip bought Atmel they said that "nothing bad" would happen
to atmega etc. Free avr-gcc support going downhill counts as very bad
as far as I'm concerned, and would dramatically change my (currently
favorable) impression of Microchip.

Britton

William Westfield

unread,
May 26, 2020, 9:49:42 PM5/26/20
to 'Owen Lyke' via Developers

I fear this will end up falling off the table and in a few months users will be angry when Ubuntu 22.04 will no longer be able to compile AVR code out of the box.

Why would that be?  The version of Ubuntu that I’m currently using (18.x) has completely separate installs for avr-gcc (5.4) vs the system gcc (7.5)…  And I didn’t think that it compiled AVR at all “out of the box”, I had to add “gcc-avr”)

BillW/WestfW

Brandon Curtis

unread,
May 27, 2020, 1:59:58 AM5/27/20
to Developers, p...@microchip.com
AVR GCC powered my grad school work.  $100 added to the pot.

Maybe Microchip comes in with money or a fix and maybe support in legacy gcc is sufficient, but waiting to find out isn't a winning strategy.


--
You received this message because you are subscribed to the Google Groups "Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to developers+...@arduino.cc.

John Paul Adrian Glaubitz

unread,
May 27, 2020, 4:20:01 AM5/27/20
to devel...@arduino.cc
On 5/27/20 3:49 AM, 'William Westfield' via Developers wrote:
>
>> I fear this will end up falling off the table and in a few months users will be angry
>> when Ubuntu 22.04 will no longer be able to compile AVR code out of the box.
>
> Why would that be? The version of Ubuntu that I’m currently using (18.x) has
> separate installs for avr-gcc (5.4) vs the system gcc (7.5)… And I didn’t think
> that it compiled AVR at all “out of the box”, I had to add “gcc-avr”)

gcc-5.x is no longer supported by GCC upstream. So if it breaks in the future, you get
to keep the pieces.

Using unmaintained software is always problematic in the long-term.

Adrian

Britton Kerin

unread,
May 28, 2020, 4:18:58 PM5/28/20
to devel...@arduino.cc, p...@microchip.com
On Tue, May 26, 2020 at 9:59 PM Brandon Curtis
<edu...@brandoncurtis.net> wrote:
>
> AVR GCC powered my grad school work. $100 added to the pot.
>
> Maybe Microchip comes in with money or a fix and maybe support in legacy gcc is sufficient, but waiting to find out isn't a winning strategy.

I've already bountied $100+ but honestly mainly as credible signal to
Microchip. They need to pick this up if they don't want to end up
being regarded as a big downgrade from Atmel.

Britton

Jacob Christ

unread,
May 29, 2020, 1:01:24 AM5/29/20
to Arduino Developers, p...@microchip.com
Huh, Microchip is Atmel or is that the other way around?

Jacob


--
You received this message because you are subscribed to the Google Groups "Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to developers+...@arduino.cc.

Britton Kerin

unread,
May 29, 2020, 1:33:32 AM5/29/20
to devel...@arduino.cc
On Thu, May 28, 2020 at 9:01 PM Jacob Christ <ja...@pontech.com> wrote:
>
> Huh, Microchip is Atmel or is that the other way around?

Microchip bought Atmel, and at the time explicitly promised that
"nothing bad" would happen to the Atmel product lines (atmega etc.).

Britton

Jacob Christ

unread,
May 29, 2020, 10:44:11 AM5/29/20
to Arduino Developers
Britton,

It sounds like you feel that Microchip's purchase of Atmel has been a detriment to the Atmel product line?

Jacob

--
You received this message because you are subscribed to the Google Groups "Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to developers+...@arduino.cc.

Britton Kerin

unread,
May 29, 2020, 1:58:25 PM5/29/20
to devel...@arduino.cc
On Fri, May 29, 2020 at 6:44 AM Jacob Christ <ja...@pontech.com> wrote:
>
> Britton,
>
> It sounds like you feel that Microchip's purchase of Atmel has been a detriment to the Atmel product line?

No, not yet, but if Atmel contributed expertise and work to avr-gcc
(which it sounds like they did) and Microchip doesn't keep it up, that
would effectively be a huge downgrade.

Britton

William Westfield

unread,
May 29, 2020, 7:17:54 PM5/29/20
to 'Owen Lyke' via Developers

if Atmel contributed expertise and work to avr-gcc and Microchip doesn't keep it up, that would effectively be a huge downgrade.

What if Microchip has had their compiler team carefully study the newer versions of gcc, and decided that the gcc folk are headed in a direction that is NOT worthwhile for the AVR or their other products?  Is rushing to keep up with the latest version of gcc more important than having a well-supported and proven older version?

For instance, Microchip has two other product families that use gcc as their C compiler:

XC16: Based on gcc  4.5.1 (for PIC24, PIC33 - the 16bit PICs.)
XC32: Based on gcc 4.8.3 (for PIC32.  Essentially MIPS.)

I would say that this is pretty clear indication that “the latest gcc” is not a priority at Microchip (and it wasn’t at Atmel, either - the release of 5.4 was relatively recent, (after a string of post 4.3 versions that were buggy as released by gcc.  And now the Arduino compiler based on v7.3 seems to have at least one serious bug as well.)   Being on what we used to call “the bleeding edge” is not necessarily a good thing.

If I were managing Microchip’s compiler team, I think I’d consider it a priority to get all three platforms working on the same version of gcc…  (but XC16 and XC32 have been out-of-sync for a long time, AFAIK.)

BillW/WestfW

indigoredster

unread,
May 29, 2020, 8:19:04 PM5/29/20
to devel...@arduino.cc
Guys, I would say to start hitting the Microchip forum below. These forums are actively read and items passed to managers to consider.

Linux, Open Source Projects and Other Topics

https://www.microchip.com/forums/f182.aspx



--
You received this message because you are subscribed to the Google Groups "Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to developers+...@arduino.cc.

indigoredster

unread,
May 29, 2020, 8:24:17 PM5/29/20
to devel...@arduino.cc
Right now this particular forum is sparse, but you guys can be a braintrust to fill it with your thoughts on furthering AVR GCC. 
It would also be beneficial and make your cause more attractive if you could also brainstorm on was some way for microchip 
to support some sort of revenue in these efforts. All companies have to pay for their engineers and talent to stay competitive.
Especially in these weird covid times. BR.

William Westfield

unread,
Jun 13, 2020, 6:43:02 PM6/13/20
to 'Owen Lyke' via Developers

3) reports are that newer versions of avr-gcc produce “worse” code.

I thought I’d attach more details to this…


Trivial code compiled with v9 and v10 bloats nearly 3x bigger than code in v8, and even the v8 code is less than optimal.


Georg-Johann Lay says:
The problem is in the middle-end, and problems there that affect targets like avr will not be fixed

 :-(
BillW

Britton Kerin

unread,
Jun 14, 2020, 12:42:09 AM6/14/20
to devel...@arduino.cc
I he saying it's unfixable given the overall design, or just no one is doing it?

Britton

Roger Irwin

unread,
Jun 14, 2020, 5:22:32 AM6/14/20
to devel...@arduino.cc
How desirable and realistic is it to maintain AVR compatibility in the latest releases of GCC?

I do use AVR quite a lot, but I would suggest that toolchain requirements needed for the type of projects that are run on an AVR do not really require or make use of anything like the capabilities that the GCC chain is able to offer.

On the other hand it's 8bit Harvard architecture makes it quite a different target than contemporaries such as x86 and ARM.

Maybe instead of trying to keep up with the latest developments in the gcc chain it would make more sense to take  a favourite stable release and concentrate on maintaining that in place, adding in bug fixtures, performance tweaks and even easy retrofits, but not requiring it to add in new features and keep up with contemporary processor technology.

This would also help make the Arduino toolchain more stable and more likely to work out of the box, which surely has to be a primary characteristic of the platform.

Cheers,

Roger.


On Fri, May 22, 2020 at 12:02 PM 'John Paul Adrian Glaubitz' via Developers <devel...@arduino.cc> wrote:
Hi!

With GCC 10 being released, GCC upstream has officially started with the GCC 11

development cycle which will eventually lead to the removal of all backends which
are still using the cc0 register representation [1].

In order to save the backend, I have started a Bountysource campaign [2] similar
to the one I created for m68k [3].

While the Bountysource campaign for m68k was successful and lead to the conversion
of the backend to MODE_CC, the AVR campaign has not gained enough supporters to
collect enough money to motivate a developer to work on the task - although some
developers have shown interest in it [4,5].

So, if anyone in the Arduino community is interested in keeping AVR support in GCC
in the future, please consider making a small donation to the Bountysource
campaign.

Adrian

> [1] https://gcc.gnu.org/legacy-ml/gcc-patches/2019-09/msg01256.html
> [2] https://www.bountysource.com/issues/84630749-avr-convert-the-backend-to-mode_cc-so-it-can-be-kept-in-future-releases
> [3] https://www.bountysource.com/issues/80706251-m68k-convert-the-backend-to-mode_cc-so-it-can-be-kept-in-future-releases
> [4] https://gcc.gnu.org/pipermail/gcc/2020-April/thread.html#402
> [5] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92729#c2

--
You received this message because you are subscribed to the Google Groups "Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to developers+...@arduino.cc.

John Paul Adrian Glaubitz

unread,
Jun 14, 2020, 5:25:37 AM6/14/20
to devel...@arduino.cc


> On Jun 14, 2020, at 6:42 AM, Britton Kerin <britto...@gmail.com> wrote:
>>
>> Georg-Johann Lay says:
>>
>> The problem is in the middle-end, and problems there that affect targets like avr will not be fixed
>
> I he saying it's unfixable given the overall design, or just no one is doing it?

I talked to my colleague at SUSE who are responsible for GCC maintenance at our company and they told me that the backend has hardly seen any maintenance work the past years which is why the code quality may have decreased has observed.

They said that if someone seriously revamps the backend, it will also be able to produce better code again.

It’s not fundamentally impossible as the above discussion seems to imply.

Adrian

John Paul Adrian Glaubitz

unread,
Jun 14, 2020, 5:57:57 AM6/14/20