kexec x86_64 - Unhandled rela relocation: R_X86_64_PLT32

Joe Lorenz joe.lorenz at
Mon Jan 9 19:18:20 EST 2012

Help needed, please:

Sandy Bridge. kernel
x86_64 toolchain built from crosstools-ng.
Using relocatable bzImage as first kernel as well as crash kernel.

# cat /proc/cmdline
rw root=/dev/sda3 rootwait console=ttyS0,38400 crashkernel=128M at 16M

# kexec -l /boot/bzImage --reuse-cmdline
Unhandled rela relocation: R_X86_64_PLT32


I fooled around in kexec-elf-rel-x86_64.c and noticed there's no case for that 
r_type, so I added it as a fall-through to one of the existing ones. Then I got 

# kexec -l /boot/bzImage --reuse-cmdline
Unhandled rela relocation: R_X86_64_GOTPCREL

So I added that to the fallthrough, and then suddenly it seemed as if the crash 
kernel was getting loaded OK (no error messages anymore).

But then I tried:

# kexec -l /boot/bzImage --reuse-cmdline
# kexec -e
[  952.817842] md: stopping all md devices.
[  953.818808] sd 0:0:0:0: [sda] Synchronizing SCSI cache
[  953.961590] igb 0000:02:00.0: PME# enabled
[  953.962395] igb 0000:02:00.0: PME# enabled
[  953.976468] Starting new kernel

After several seconds pause, it ended up back at GRUB, which I didn't expect.

Any help would be most appreciated - thanks.

More information about the kexec mailing list