After an emerge of kgcc64 4.6.3, the compiled gcc got named hppa64-unknown-linux-gnu, but the kernel Makefile wanted hppa64-linux-gnu. Reproducible: Always
kgcc64 installs both hppa64-linux-* and hppa64-unknown-linux-gnu-* but the kernel expects (Debian-style) hppa64-linux-gnu-* executables. The way to resolve this is to set CC on the make command line (bad) or to set CONFIG_CROSS_COMPILE to "hppa64-unknown-linux-gnu-" in menuconfig (good).
(In reply to comment #1) this is not the whole story the *native* builds have selected hppa64-linux- since 2007 which is why we install those compat symlinks the *cross-compile* builds have changed over time as to what it selects, but the current default is hppa64-linux-gnu- we don't care about the cross-compile scenario. that has long been the case for most arches that you need to set CROSS_COMPILE either on the command line or in the .config. that leaves the native case. and the lack of actual details in this bug report. what exactly is the problem ?
(In reply to comment #2) > the *native* builds have selected hppa64-linux- since 2007 which is why we > install those compat symlinks Those haven't worked in years. Without setting CROSS_COMPILE (vanilla 3.9.0 sources): * Running make -j1 ... HOSTLD scripts/kconfig/conf scripts/kconfig/conf --silentoldconfig Kconfig make: hppa64-linux-gnu-gcc: Command not found make: hppa64-linux-gnu-gcc: Command not found /usr/src/linux-3.9.0/scripts/gcc-version.sh: line 25: hppa64-linux-gnu-gcc: command not found /usr/src/linux-3.9.0/scripts/gcc-version.sh: line 26: hppa64-linux-gnu-gcc: command not found Sorry, GCC v3.3 or above is required to build the kernel. make: *** [checkbin] Error 1 * Stage -j1 was last. There was an attempt to "fix" this in 2012, and indeed it was fixed for Debian's case, not Gentoo's. This is why our documentation needs to document this, even if some kernel sources do get it right. Of particular note in the 3.9.0 sources is that it tries to run hppa-linux-gnu-gcc is certain circumstances, even with CROSS_COMPILE set to a valid prefix. > the *cross-compile* builds have changed over time as to what it selects, but > the current default is hppa64-linux-gnu- > > we don't care about the cross-compile scenario. that has long been the case > for most arches that you need to set CROSS_COMPILE either on the command > line or in the .config. Yes we do care, since you cannot boot a C8000 with a 32-bit kernel. > that leaves the native case. and the lack of actual details in this bug > report. what exactly is the problem ? Our documentation should describe what is needed to build a kernel. In this case, set a proper CROSS_COMPILE value in the .config. Even if the kernel sources get fixed, this is a major pitfall we should document because it keeps breaking from time to time.
See also "PATCH] parisc: dont unconditionally override CROSS_COMPILE for 64 bit." http://lkml.indiana.edu/hypermail/linux/kernel/1202.3/00725.html for the last attempt to get the compiler prefix right.
(In reply to comment #4) that's because someone broke the native compile case and didn't notice. these are the sort of things you should report rather than ignore. specifically, this commit broke it: commit 991b7d6e6ffe9373dca7269a5d0213c1545dee1f Author: Kyle McMartin <kyle@shortfin.cabal.ca> Date: Thu Oct 18 13:54:51 2007 -0700 [PARISC] Attempt to clean up parisc/Makefile
upstream has accepted my patch