Building Linux kernel 3.2.70 for Slackware 13.37 (32-bit)

While updating my Slackware virtual machines, I ran into issues compiling Linux 3.2.70 on Slackware 13.37 (32-bit). Running make oldconfig in the kernel directory failed with the following error:

Makefile:484: /usr/src/linux-3.2.71/arch/i686/Makefile: No such file or directory
make: *** No rule to make target `/usr/src/linux-3.2.71/arch/i686/Makefile'. Stop.

I checked in the arch directory of the kernel source, and there is no i686 entry:

Kconfig blackfin hexagon m68k openrisc score um
alpha cris i386 microblaze parisc sh unicore32
arm frv ia64 mips powerpc sparc x86
avr32 h8300 m32r mn10300 s390 tile xtensa

I tried setting the ARCH variable to x86, and the kernel compiled with no issues.

So, it seems that the ARCH entry of i686 that makes .SlackBuilds happy makes kernel 3.2.70 (and 3.2.71) unable to compile.  A bit more work revealed that the simplest way to get around this is to remove the ARCH variable from the environment before compiling the kernel with:

unset ARCH

As a side note, the same applies to compiling the VirtualBox Guest Additions on 32-bit machines with these kernel versions.

Happy Slacking!

Leave a Comment