Re: Relocation problem with MIPS kernel modules

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



David VomLehn wrote:
On Mon, Aug 03, 2009 at 10:20:30AM +0100, Ralf Baechle wrote:
On Thu, Jul 30, 2009 at 11:49:23AM -0700, David VomLehn wrote:

To: GCC Help Mailing List <gcc-help@xxxxxxxxxxx>,
	Linux MIPS Mailing List <linux-mips@xxxxxxxxxxxxxx>
Subject: Relocation problem with MIPS kernel modules
Content-Type: text/plain; charset=us-ascii

I have a MIPS loadable kernel module that, when I try to insmod it, causes the
kernel to emit the message:

	module xyz: dangerous relocation
...
According to the MIPS ABI, for what it's worth, "Each relocation type of
R_MIPS_HI16 must have an associated R_MIPS_LO16 entry immediately following
it in the list of relocations." So, what's actually getting generated by
gcc and linker differs from the closest thing we have to an ABI of record for
MIPS processors.
The GNU tools as an extension over the MIPS ABI allows an arbitrary number of
R_MIPS_HI16 relocations to be followed by a R_MIPS_LO16 symbol.  All
relocations of this sequence must use the same symbol, of course.  This is
a very old extension; I think it predates the Linux/MIPS port.

Perhaps a foolish question, but is this documented anywhere?

What more documentation do you need? It's obvious if you read bfd/elf{32,64,xx}-mips.c :-).

David Daney



[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux