Help for Kernel Build : Invocation of assembler fails

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From English to

Threaded View
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
- 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 :-).


Re: Help for Kernel Build : Invocation of assembler fails (Hans-Joerg Wagner) writes:

Quoted text here. Click to load it

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.



Site Timeline