Help for Kernel Build : Invocation of assembler fails

I am a newbie and decided to work with an older kernel (release

2.2.19) because examples to build an enbedded plattform in my book are based on this kernel and I dont like to bother about changings in the kernel in my start phase.

However the gcc and the binaries of my Suse 9.1 Installation are newer and do not work with this old kernel release. In the web I found that kernel-2.2.19, the gcc-2.95.2, the binutils-2.10.1 and the glibc-2.3.3 should work stable together.

I built and installed the GNU toolchain based on this versions with the guidance of the standard literature "Building Embedded Linux Systems" written by Karim Yaghmour. I used the recommended directory layout and set the PATH variable to the tools binaries accordingly so that the Makefile of the kernel invokes my toolchain instead of the standard installation.

I'am pretty sure that I installed almost everything correct. Cause if I a make the kernel without the modified PATH the gcc fails. However if the Makefile invokes the i386-linux-gcc vers. 2.95.2 it works with some warnings. However the subsequent invocation of the assembler fails (make bzImage for a boot floppy), because the Makefile invokes an i386-linux-as86 which doesn't exist in my toolchain directories (there is only an i386-linux-as).

With my little newbie knowledge I knew of hierarchic Makefiles and by browsing through the kernel directories I found out, that the Makefile in the kernel-2.2.19/arch/i386/boot directory contains the line

AS86= $(CROSS_COMPILE)as86 -0 -a

I set the CC and the CROSS_COMPILE variables to i386-linux in the top level Makefile because for my labs the development as well as the target platform are PC's. I tried then to change the line with the assembler invocation to

AS86= i386-linux-as -0 -a

Then assembler of my toolchain was used but this one failed because of the unknown option -0. I omitted this option and then the assembler failed for other reason i would have to log once again.

Could you guide me to find a solution or answer the following questions:

- Did I misunderstand basics in building the toolchain: I set CC and CROSS_COMPILE both to i386-linux cause both the development and the target platform are 386 type PCs?

- The Makefile of the kernel 2.2.19 release, shouldn't it be an element of the release itself? That means, if the community tells kernel-2.2.19 together with gcc-2.95.2 and glibc-2.2.3 works fine, then I shouldn't have to modify any Makefile or did I misunderstand other basics?

PS: If I missed the correct discussion group or you think RTFM, tell me honestly (but kind and which FM :-).

TIA HJ

Reply to
Hans-Joerg Wagner
Loading thread data ...

hi Hans-Joerg, your taget kernel is very old and its likely that there a error in the makefile that are fixed in later releases. Marc-Christian Petersen is maintainer of 2.2 (so far i know) when you have real problems crosscompiling you should contact him via LKML or directly. the latest version of 2.2 is 2.2.28.

re, walter

Reply to
Walter Harms

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.