Package: libgcc1
Version: 1:10-20200202-1
Severity: serious

Upgrading libgcc1 to version >= 10 on a system breaks gcc-7, gcc-8 and
gcc-9 when using the gold linker, as gcc passes the wrong path to the
libgcc_s.so.1 library. All architectures are affected, example on amd64,
starting from a bullseye chroot:

| $ gcc -fuse-ld=gold -o hello hello.c
| $ sudo apt-get install libgcc1
| Reading package lists... Done
| Building dependency tree
| Reading state information... Done
| The following additional packages will be installed:
|   gcc-10-base libgcc-s1
| The following NEW packages will be installed:
|   gcc-10-base libgcc-s1
| The following packages will be upgraded:
|   libgcc1
| 1 upgraded, 2 newly installed, 0 to remove and 87 not upgraded.
| Need to get 278 kB of archives.
| After this operation, 381 kB of additional disk space will be used.
| Do you want to continue? [Y/n]
| Get:1 http://localhost:3142/debian sid/main amd64 gcc-10-base amd64 
10-20200202-1 [195 kB]
| Get:2 http://localhost:3142/debian sid/main amd64 libgcc-s1 amd64 
10-20200202-1 [41.6 kB]
| Get:3 http://localhost:3142/debian sid/main amd64 libgcc1 amd64 
1:10-20200202-1 [41.6 kB]
| Fetched 278 kB in 0s (25.7 MB/s)
| debconf: delaying package configuration, since apt-utils is not installed
| Selecting previously unselected package gcc-10-base:amd64.
| (Reading database ... 35349 files and directories currently installed.)
| Preparing to unpack .../gcc-10-base_10-20200202-1_amd64.deb ...
| Unpacking gcc-10-base:amd64 (10-20200202-1) ...
| Setting up gcc-10-base:amd64 (10-20200202-1) ...
| Selecting previously unselected package libgcc-s1:amd64.
| (Reading database ... 35355 files and directories currently installed.)
| Preparing to unpack .../libgcc-s1_10-20200202-1_amd64.deb ...
| Unpacking libgcc-s1:amd64 (10-20200202-1) ...
| Setting up libgcc-s1:amd64 (10-20200202-1) ...
| (Reading database ... 35358 files and directories currently installed.)
| Preparing to unpack .../libgcc1_1%3a10-20200202-1_amd64.deb ...
| Unpacking libgcc1 (1:10-20200202-1) over (1:9.2.1-25) ...
| Setting up libgcc1 (1:10-20200202-1) ...
| Processing triggers for ccache (3.7.7-1) ...
| Updating symlinks in /usr/lib/ccache ...
| Processing triggers for libc-bin (2.29-9) ...
| $ gcc -fuse-ld=gold -o hello hello.c
| /usr/bin/ld.gold: error: cannot open 
/usr/lib/gcc/x86_64-linux-gnu/9/libgcc_s.so.1: No such file or directory
| /usr/bin/ld.gold: error: cannot open 
/usr/lib/gcc/x86_64-linux-gnu/9/libgcc_s.so.1: No such file or directory
| collect2: error: ld returned 1 exit status
| $

In turns this causes many autopktest failures:
https://ci.debian.net/data/autopkgtest/testing/amd64/d/deal.ii/4202144/log.gz
https://ci.debian.net/data/autopkgtest/testing/amd64/g/ghc/4202362/log.gz
https://ci.debian.net/data/autopkgtest/testing/amd64/h/haskell-hgettext/4202485/log.gz
https://ci.debian.net/data/autopkgtest/testing/amd64/h/haskell-hopenpgp/4202487/log.gz

libgcc-s1 probably misses a Break: against the older gcc-X versions.

Reply via email to