(Possible) fix for "Unhandled rela relocation: R_X86_64_PLT32" error

Baoquan He bhe at redhat.com
Mon Aug 20 01:37:18 PDT 2018


On 07/25/18 at 09:46am, Chris Clayton wrote:
> Hi.
> 
> I haven't rebooted my laptop with kexec for quite some time, but when I tried to this morning I got the error you will
> see in $SUBJECT.  The error occurs with both kexec-tools-2.0.17 or -2.0.16 run on either 4.18.0-rc6+ (built from a git
> pull this morning) or 4.14.57 kernels.
> 
> I searched for "R_X86_64_PLT32" and found that there was a change to the kernel that may be related -
> b21ebf2fb4cde1618915a97cc773e287ff49173e x86: Treat R_X86_64_PLT32 as R_X86_64_PC32. So I replicated the change that
> patch made to arch/x86/kernel/machine_kexec_64.c in kexec/arch/x86_64/kexec-elf-rel-x86_64.c and kexec now reboots into
> the new kernel.
> 
> I don't know enough about relocations and the like to know whether my 'fix' is correct and the best way to go about it,
> but I've included it below for your consideration.
> 
> Signed-off-by: Chris Clayton <chris2553 at googlemail.com>
> 
> --- kexec-tools-2.0.17/kexec/arch/x86_64/kexec-elf-rel-x86_64.c.orig	2018-07-25 08:48:24.152054030 +0100
> +++ kexec-tools-2.0.17/kexec/arch/x86_64/kexec-elf-rel-x86_64.c	2018-07-25 08:49:16.860055330 +0100
> @@ -79,6 +79,7 @@ void machine_apply_elf_rel(struct mem_eh
>  			goto overflow;
>  		break;
>  	case R_X86_64_PC32:
> +	case R_X86_64_PLT32:

Looks like a good fix, could you make a formal patch, e.g rearrange the
patch log, I woule like to ack it.

>  		*(uint32_t *)location = value - address;
>  		break;
>  	default:
> 
> _______________________________________________
> kexec mailing list
> kexec at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/kexec



More information about the kexec mailing list