[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: |
Nick Clifton |
Subject: |
Re: ld is unable to link the Linux kernel for ARM |
Date: |
Thu, 29 May 2003 17:40:42 +0100 |
User-agent: |
Gnus/5.1001 (Gnus v5.10.1) Emacs/21.2 (gnu/linux) |
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.
Cheers
Nick