[Milkymist-devel] new R_LM32_16_GOT relocation
Jon Beniston
jon at beniston.com
Fri Jan 22 04:37:24 PST 2010
Hi,
IIRC, the LM32_16_GOT relocation is an offset in to the global offset table
(GOT). The GOT actually contains the pointer. The idea behind using the GOT
is that the loader only modifies the GOT, not the text section, allowing the
text section to be shared between multiple executables.
Regards,
Jon
-----Original Message-----
From: Sébastien Bourdeauducq [mailto:sebastien.bourdeauducq at gmail.com] On
Behalf Of Sébastien Bourdeauducq
Sent: 22 January 2010 12:27
To: Jon Beniston
Cc: devel at lists.milkymist.org
Subject: new R_LM32_16_GOT relocation
Hi Jon,
The new binutils for LM32 emits undocumented R_LM32_16_GOT relocations that
are not implemented in Linux. From what I understood according to the
lm32_elf_howto_table array, I needed to patch the 16 least significant bits
of
the instruction to be relocated:
http://github.com/lekernel/milkymist-
linux/commit/73de207d007baeb981c2ae70e20c5557834f2a9f
But when running the binary under the new kernel, the machine just freezed.
I
can't tell you much more now, but we should have QEMU support soon which
will
be a lot of help to debug such problems.
Can you tell us what R_LM32_16_GOT is supposed to do? How to handle it if
not
by patching the 16 LSBs?
Thank you,
Sébastien
More information about the Devel
mailing list