#1113854 gcc-14-x86-64-linux-gnu: x86_64-linux-gnu-gcc-14 calls /usr/bin/as without dependency on binutils

Package:
gcc-14-x86-64-linux-gnu
Source:
gcc-14-x86-64-linux-gnu
Description:
GNU C compiler for the x86_64-linux-gnu architecture
Submitter:
Andreas Beckmann
Date:
2025-09-03 16:35:02 UTC
Severity:
normal
Tags:
#1113854#5
Date:
2025-09-03 12:14:50 UTC
From:
To:
echo '' | x86_64-linux-gnu-gcc-14 -x c -c -
x86_64-linux-gnu-gcc-14: fatal error: cannot execute 'as': posix_spawnp: No such file or directory
compilation terminated.

This is a recent regression, about a week ago this was still working
because there was still an indirect dependency on binutils (2.45-4)
(but I don't want to blame any package for removing that.)

gcc-14-x86-64-linux-gnu depends on binutils-x86-64-linux-gnu, so I'd
expect it to call /usr/bin/x86_64-linux-gnu-as etc. instead of
/usr/bin/as etc.

This bug was exposed by the dkms upstream testsuite which in
Debian/testing/amd64 simply installs linux-headers-amd64 and uses the
compiler from the kernel configuration to build test modules.


Andreas

#1113854#10
Date:
2025-09-03 13:23:40 UTC
From:
To:
Control: tags -1 + moreinfo

works fine here, I'm unable to reproduce this.

gcc-14 now has a tightened dependency on binutils (>= 2.45).

is that some implicit dependency?

#1113854#17
Date:
2025-09-03 14:23:46 UTC
From:
To:
minimal chroot, use --no-install-recommends
especially w/o build-essential, w/o gcc-14, w/o binutils

apt-get install --no-install-recommends linux-headers-amd64

Now there should be
- gcc-14-x86-64-linux-gnu (but no gcc-14)
- binutils-x86-64-linux-gnu (but no binutils)

sid# aptitude why binutils-x86-64-linux-gnu
i   linux-headers-amd64              Depends linux-headers-6.16.3+deb14-amd64 (= 6.16.3-1)
i A linux-headers-6.16.3+deb14-amd64 Depends gcc-14-for-host
i A gcc-14-for-host                  Depends gcc-14-x86-64-linux-gnu (>= 14)
i A gcc-14-x86-64-linux-gnu          Depends binutils-x86-64-linux-gnu (>= 2.39)
# binutils is not installed

In trixie it looks a bit different:

trixie# aptitude why binutils-x86-64-linux-gnu
i   linux-headers-amd64               Depends linux-headers-6.12.41+deb13-amd64 (= 6.12.41-1)
i A linux-headers-6.12.41+deb13-amd64 Depends gcc-14
i A gcc-14                            Depends gcc-14-x86-64-linux-gnu (= 14.2.0-19)
i A gcc-14-x86-64-linux-gnu           Depends binutils-x86-64-linux-gnu (>= 2.39)
trixie# aptitude why binutils
i   linux-headers-amd64               Depends linux-headers-6.12.41+deb13-amd64 (= 6.12.41-1)
i A linux-headers-6.12.41+deb13-amd64 Depends gcc-14
i A gcc-14                            Depends binutils (>= 2.39)

So the kernel's switch from gcc-14 to gcc-14-for-host caused a loss of
the indirect binutils dependency.

Kernel .config contains

sid# grep CONFIG_CC_VERSION_TEXT /usr/src/linux-headers-*-amd64/.config
CONFIG_CC_VERSION_TEXT="x86_64-linux-gnu-gcc-14 (Debian 14.3.0-5) 14.3.0"

trixie# grep CONFIG_CC_VERSION_TEXT /usr/src/linux-headers-*-amd64/.config
CONFIG_CC_VERSION_TEXT="x86_64-linux-gnu-gcc-14 (Debian 14.2.0-19) 14.2.0"

Andreas

#1113854#22
Date:
2025-09-03 16:34:02 UTC
From:
To:
Control: forcemerge 1083135 -1

Yes, this is known and reported as #1083135 already.

Helmut