[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: ld is unable to link the Linux kernel for ARM
From: |
Nicolas Pitre |
Subject: |
Re: ld is unable to link the Linux kernel for ARM |
Date: |
Thu, 29 May 2003 16:37:31 -0400 (EDT) |
On Thu, 29 May 2003, Nick Clifton wrote:
> Hi Nicolas,
>
> > With binutils version 030528 20030523 (snapshot):
> >
> > arm-linux-ld -r -o drivers/media/built-in.o
> > drivers/media/video/built-in.o drivers/media/radio/built-in.o
> > drivers/media/dvb/built-in.o drivers/media/common/built-in.o
> > arm-linux-ld: internal error earmelf_linux.c 163
> >
> > The offending line looks like:
> >
> > ASSERT (bfd_for_interwork != NULL);
> >
> > In fact, the earliest binutils version that does work is 2.12.1
> > where no equivalent line exists.
> >
> > Is the fix obvious to someone here?
>
>
> The ASSERT is there because the code has been unable to find an input
> file onto which in can hang a constructed section containing stubs for
> interworking between ARM and THUMB code. The function
> arm_elf_set_bfd_for_interworking() in ld/emultempl/armelf.em is
> responsible for making this choice.
>
> The most like reason is that all of your input files (*/built-in.o)
> are empty, or that they are all marked as non-loadable.
>
> If you can provide a small, reproducible test case then I can
> investigate further.
Here you go. The input files are attached.
Just try:
arm-linux-ld -r -o out.o foo.o bar.o
Result:
arm-linux-ld: internal error earmelf_linux.c 163
Nicolas
foo.o
Description: Text document
bar.o
Description: Binary data