mbox series

[0/6] use binutils 2.36.1 and gcc 10 by default

Message ID 20210815105119.3035569-1-stijn@linux-ipv6.be
Headers show
Series use binutils 2.36.1 and gcc 10 by default | expand

Message

Stijn Tintel Aug. 15, 2021, 10:51 a.m. UTC
Since 21.02 has been branched, it's a good time to switch master to a
more recent toolchain by default. I have been test-driving binutils
2.36.1 and gcc 10.3 for months on many different targets without issues.

Additionally I've compile-tested x86/64 with CONFIG_ALL_PACKAGES=y, and
all packages in OpenWrt core build fine.

The packages feed contains a few packages that will need to be fixed.
One of them is the perl package. Unfortunately, the perl package seems
to contain a bunch of undocumented patches that have either not been
accepted by upstream, or haven't been submitted upstream at all, so
I'll leave it up to the maintainer(s) and/or community to handle the
perl bump, as I do not use perl at all.

Another package that doesn't build is gnupg (v1). Users are encouraged
to use gnupg2 instead. I suggest to drop gnupg v1 entirely.

After many hours of fixing random breakage in the packages feed, many of
which not even caused by the GCC bump, I gave up and decided to just
send out this patch series.

Stijn Tintel (6):
  busybox: fix compilation with GCC 10
  umbim: fix compilation with GCC 10
  toolchain/binutils: switch to version 2.36.1 by default
  toolchain/gcc: switch to version 10 by default
  toolchain: drop GCC 9
  toolchain: drop binutils 2.35.1

 package/network/utils/umbim/patches/999-gcc10.patch | 13 +++++++++++++
 package/utils/busybox/Makefile                      |  3 ---
 toolchain/binutils/Config.in                        |  6 +-----
 toolchain/binutils/Config.version                   |  6 +-----
 toolchain/gcc/Config.in                             |  5 +----
 toolchain/gcc/Config.version                        | 13 ++++---------
 6 files changed, 20 insertions(+), 26 deletions(-)
 create mode 100644 package/network/utils/umbim/patches/999-gcc10.patch

Comments

Hauke Mehrtens Aug. 15, 2021, 11:53 a.m. UTC | #1
Thank you Stijn for taking care of this toolchain upgrade and Rosen for 
preparing it.

On 8/15/21 12:51 PM, Stijn Tintel wrote:
> Since 21.02 has been branched, it's a good time to switch master to a
> more recent toolchain by default. I have been test-driving binutils
> 2.36.1 and gcc 10.3 for months on many different targets without issues.
> 
> Additionally I've compile-tested x86/64 with CONFIG_ALL_PACKAGES=y, and
> all packages in OpenWrt core build fine.

Did you compile umbim on MIPS 32 bit? I think I only saw the warning on 
such systems.

> The packages feed contains a few packages that will need to be fixed.
> One of them is the perl package. Unfortunately, the perl package seems
> to contain a bunch of undocumented patches that have either not been
> accepted by upstream, or haven't been submitted upstream at all, so
> I'll leave it up to the maintainer(s) and/or community to handle the
> perl bump, as I do not use perl at all.
> 
> Another package that doesn't build is gnupg (v1). Users are encouraged
> to use gnupg2 instead. I suggest to drop gnupg v1 entirely.
> 
> After many hours of fixing random breakage in the packages feed, many of
> which not even caused by the GCC bump, I gave up and decided to just
> send out this patch series.

Did you create pull request for the packages which you fix?

Someone can later fix the rest of them. ;-)

Did you check if the size of some of our images changed?

> 
> Stijn Tintel (6):
>    busybox: fix compilation with GCC 10
>    umbim: fix compilation with GCC 10
>    toolchain/binutils: switch to version 2.36.1 by default
>    toolchain/gcc: switch to version 10 by default
>    toolchain: drop GCC 9
>    toolchain: drop binutils 2.35.1

I would prefer if we wait 1 months till we drop gcc 9 and binutils 
2.35.1, if we see some problems with gcc 10 and the new binutils we can 
easily try the intermediate versions if they are still included.

We can then remove gcc 7 and 9 and binutils 2.32 and 2.35.1.

> 
>   package/network/utils/umbim/patches/999-gcc10.patch | 13 +++++++++++++
>   package/utils/busybox/Makefile                      |  3 ---
>   toolchain/binutils/Config.in                        |  6 +-----
>   toolchain/binutils/Config.version                   |  6 +-----
>   toolchain/gcc/Config.in                             |  5 +----
>   toolchain/gcc/Config.version                        | 13 ++++---------
>   6 files changed, 20 insertions(+), 26 deletions(-)
>   create mode 100644 package/network/utils/umbim/patches/999-gcc10.patch
> 

Hauke
Stijn Tintel Aug. 15, 2021, noon UTC | #2
On 15/08/2021 14:53, Hauke Mehrtens wrote:
> Thank you Stijn for taking care of this toolchain upgrade and Rosen
> for preparing it.
Thanks for reviewing!
>
> On 8/15/21 12:51 PM, Stijn Tintel wrote:
>> Since 21.02 has been branched, it's a good time to switch master to a
>> more recent toolchain by default. I have been test-driving binutils
>> 2.36.1 and gcc 10.3 for months on many different targets without issues.
>>
>> Additionally I've compile-tested x86/64 with CONFIG_ALL_PACKAGES=y, and
>> all packages in OpenWrt core build fine.
>
> Did you compile umbim on MIPS 32 bit? I think I only saw the warning
> on such systems.
Compile-tested on ramips, my proposed change fixes the warning.
>
>> The packages feed contains a few packages that will need to be fixed.
>> One of them is the perl package. Unfortunately, the perl package seems
>> to contain a bunch of undocumented patches that have either not been
>> accepted by upstream, or haven't been submitted upstream at all, so
>> I'll leave it up to the maintainer(s) and/or community to handle the
>> perl bump, as I do not use perl at all.
>>
>> Another package that doesn't build is gnupg (v1). Users are encouraged
>> to use gnupg2 instead. I suggest to drop gnupg v1 entirely.
>>
>> After many hours of fixing random breakage in the packages feed, many of
>> which not even caused by the GCC bump, I gave up and decided to just
>> send out this patch series.
>
> Did you create pull request for the packages which you fix?
Yes, see https://github.com/openwrt/packages/pulls :-)
>
> Someone can later fix the rest of them. ;-)
>
> Did you check if the size of some of our images changed?
I did not. I can do that, but it'll take some time. I started regularly
wiping build_dir/ staging_dir/ and tmp/ due to vague heisenbugs that
kept appearing.
>
>>
>> Stijn Tintel (6):
>>    busybox: fix compilation with GCC 10
>>    umbim: fix compilation with GCC 10
>>    toolchain/binutils: switch to version 2.36.1 by default
>>    toolchain/gcc: switch to version 10 by default
>>    toolchain: drop GCC 9
>>    toolchain: drop binutils 2.35.1
>
> I would prefer if we wait 1 months till we drop gcc 9 and binutils
> 2.35.1, if we see some problems with gcc 10 and the new binutils we
> can easily try the intermediate versions if they are still included.
>
> We can then remove gcc 7 and 9 and binutils 2.32 and 2.35.1.
I will drop them for now.
>
>>
>>   package/network/utils/umbim/patches/999-gcc10.patch | 13 +++++++++++++
>>   package/utils/busybox/Makefile                      |  3 ---
>>   toolchain/binutils/Config.in                        |  6 +-----
>>   toolchain/binutils/Config.version                   |  6 +-----
>>   toolchain/gcc/Config.in                             |  5 +----
>>   toolchain/gcc/Config.version                        | 13 ++++---------
>>   6 files changed, 20 insertions(+), 26 deletions(-)
>>   create mode 100644 package/network/utils/umbim/patches/999-gcc10.patch
>>
Updated series at
https://git.openwrt.org/?p=openwrt/staging/stintel.git;a=shortlog;h=refs/heads/gcc10
- shall I send a v2, or can we ack the series as is over there?

Thanks,
Stijn
Hauke Mehrtens Aug. 15, 2021, 12:10 p.m. UTC | #3
On 8/15/21 2:00 PM, Stijn Tintel wrote:
> On 15/08/2021 14:53, Hauke Mehrtens wrote:
>> Thank you Stijn for taking care of this toolchain upgrade and Rosen
>> for preparing it.
> Thanks for reviewing!
>>
>> On 8/15/21 12:51 PM, Stijn Tintel wrote:
>>> Since 21.02 has been branched, it's a good time to switch master to a
>>> more recent toolchain by default. I have been test-driving binutils
>>> 2.36.1 and gcc 10.3 for months on many different targets without issues.
>>>
>>> Additionally I've compile-tested x86/64 with CONFIG_ALL_PACKAGES=y, and
>>> all packages in OpenWrt core build fine.
>>
>> Did you compile umbim on MIPS 32 bit? I think I only saw the warning
>> on such systems.
> Compile-tested on ramips, my proposed change fixes the warning.

Thanks for testing.

>>> The packages feed contains a few packages that will need to be fixed.
>>> One of them is the perl package. Unfortunately, the perl package seems
>>> to contain a bunch of undocumented patches that have either not been
>>> accepted by upstream, or haven't been submitted upstream at all, so
>>> I'll leave it up to the maintainer(s) and/or community to handle the
>>> perl bump, as I do not use perl at all.
>>>
>>> Another package that doesn't build is gnupg (v1). Users are encouraged
>>> to use gnupg2 instead. I suggest to drop gnupg v1 entirely.
>>>
>>> After many hours of fixing random breakage in the packages feed, many of
>>> which not even caused by the GCC bump, I gave up and decided to just
>>> send out this patch series.
>>
>> Did you create pull request for the packages which you fix?
> Yes, see https://github.com/openwrt/packages/pulls :-)
>>
>> Someone can later fix the rest of them. ;-)
>>
>> Did you check if the size of some of our images changed?
> I did not. I can do that, but it'll take some time. I started regularly
> wiping build_dir/ staging_dir/ and tmp/ due to vague heisenbugs that
> kept appearing. >>
>>>
>>> Stijn Tintel (6):
>>>     busybox: fix compilation with GCC 10
>>>     umbim: fix compilation with GCC 10
>>>     toolchain/binutils: switch to version 2.36.1 by default
>>>     toolchain/gcc: switch to version 10 by default
>>>     toolchain: drop GCC 9
>>>     toolchain: drop binutils 2.35.1
>>
>> I would prefer if we wait 1 months till we drop gcc 9 and binutils
>> 2.35.1, if we see some problems with gcc 10 and the new binutils we
>> can easily try the intermediate versions if they are still included.
>>
>> We can then remove gcc 7 and 9 and binutils 2.32 and 2.35.1.
> I will drop them for now.
>>
>>>
>>>    package/network/utils/umbim/patches/999-gcc10.patch | 13 +++++++++++++
>>>    package/utils/busybox/Makefile                      |  3 ---
>>>    toolchain/binutils/Config.in                        |  6 +-----
>>>    toolchain/binutils/Config.version                   |  6 +-----
>>>    toolchain/gcc/Config.in                             |  5 +----
>>>    toolchain/gcc/Config.version                        | 13 ++++---------
>>>    6 files changed, 20 insertions(+), 26 deletions(-)
>>>    create mode 100644 package/network/utils/umbim/patches/999-gcc10.patch
>>>
> Updated series at
> https://git.openwrt.org/?p=openwrt/staging/stintel.git;a=shortlog;h=refs/heads/gcc10
> - shall I send a v2, or can we ack the series as is over there?

No need to send a v2 for me.

I am not aware of any other problems or reports form people about 
problems with this gcc and binutils combination.

You can add my
Acked-by: Hauke Mehrtens <hauke@hauke-m.de>

Hauke
Rui Salvaterra Aug. 15, 2021, 4:42 p.m. UTC | #4
HI, guys,

On Sun, 15 Aug 2021 at 13:00, Stijn Tintel <stijn@linux-ipv6.be> wrote:
>
> On 15/08/2021 14:53, Hauke Mehrtens wrote:
> >
> > Did you check if the size of some of our images changed?
> I did not. I can do that, but it'll take some time. I started regularly
> wiping build_dir/ staging_dir/ and tmp/ due to vague heisenbugs that
> kept appearing.

I did, at least superficially. The GCC 10 series does increase the
image sizes a bit (say, around 200 kiB on a 6.4 MiB ath79/74Kc image),
due to the new inliner heuristics. However, the GCC 11 series seems to
further tune the inliner, and the images are again smaller (still a
little bigger than with GCC 9).

Cheers,
Rui