Hello,
I need to compile the Linux Kernel 2.4.34 so that I can generate a bzImage that I can boot on a Pentium R (II) box.
My work platform is supporting an x86_64 architecture with gcc 3.2.3. Below is the initial excerpt from the configuration that I am attempting to use:
#
# Automatically generated by make menuconfig: don't edit
#
CONFIG_X86=y
# CONFIG_SBUS is not set
CONFIG_UID16=y
#
# Code maturity level options
#
CONFIG_EXPERIMENTAL=y
#
# Loadable module support
#
CONFIG_MODULES=y
CONFIG_MODVERSIONS=y
CONFIG_KMOD=y
#
# Processor type and features
#
#CONFIG_M386 is not set
# CONFIG_M486 is not set
# CONFIG_M586 is not set
# CONFIG_M586TSC is not set
CONFIG_M586MMX=y
# CONFIG_M686 is not set
# CONFIG_MPENTIUMIII is not set
# CONFIG_MPENTIUM4 is not set
# CONFIG_MK6 is not set
# CONFIG_MK7 is not set
# CONFIG_MK8 is not set
# CONFIG_MELAN is not set
# CONFIG_MCRUSOE is not set
# CONFIG_MWINCHIPC6 is not set
# CONFIG_MWINCHIP2 is not set
# CONFIG_MWINCHIP3D is not set
# CONFIG_MCYRIXIII is not set
# CONFIG_MVIAC3_2 is not set
CONFIG_X86_WP_WORKS_OK=y
CONFIG_X86_INVLPG=y
CONFIG_X86_CMPXCHG=y
CONFIG_X86_XADD=y
CONFIG_X86_BSWAP=y
...
I have attempted to compile the kernel using the following steps:
$ make mrproper ARCH=i386
$ make oldconfig ARCH=i386
$ make dep ARCH=i386
$ make ARCH=i386
This yields the following error:
gcc -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -o scripts/split-include scripts/split-include.c
scripts/split-include include/linux/autoconf.h include/config
scripts/split-include: include/linux/autoconf.h: Invalid argument
make: *** [include/config/MARKER] Error 1
What if anything am I doing wrong? Btw, if I do not specify ARCH=i386, then the Makefile sets ARCH to x86_64. Why is it doing this? Why doesn't the Makefile run a script to deduce that correct architecture based upon the setting within the configuration file?