FW: [PATCH 0/8] arm64 kexec kernel patches V6

Geoff Levand geoff at infradead.org
Thu Nov 20 14:52:30 PST 2014


On Thu, 2014-11-20 at 17:35 +0530, Anurup M wrote:
> Hi Geoff,
> 
> 	Please find my reply inline..
> 
> Regards,
> Anurup
> > -----Original Message-----
> > From: Geoff Levand [mailto:geoff at infradead.org] 
> > Sent: Thursday, November 20, 2014 6:50 AM
> > To: Anurup m
> > Cc: kexec at lists.infradead.org; Sanil kumar
> > Subject: Re: [PATCH 0/8] arm64 kexec kernel patches V6
> > 
> > On Tue, 2014-11-18 at 11:48 +0530, Anurup M wrote:
> >> 	I get a relocation error  when I try to load using latest kexec-tools from https://git.linaro.org/people/geoff.levand/kexec-tools.git.
> >>
> >> ############## error log ###############
> >> machine_apply_elf_rel: CALL26 94000000->97ffff62
> >> sym: sha256_update info: 12 other: 00 shndx: 1 value: 5f58 size: 16c
> >> sym: sha256_update value: 81af7f58 addr: 81af81e4
> >> machine_apply_elf_rel: CALL26 94000000->97ffff5d
> >> sym:      .data info: 03 other: 00 shndx: 4 value: 0 size: 0
> >> sym: .data value: 81af8630 addr: 81af8550
> >> machine_apply_elf_rel: ABS64 0->81af8630
> >> Symbol: sha256_regions is in a bss section cannot set ##############
> >>
> >> 	What should be the problem? 
> > 
> > It seems either your purgatory code was not built correctly, or the kexec-tools relocator didn't do the correct thing.
> > 
> > Please post the output from your gcc with the --version option and the command line used to compile purgatory/purgatory.c.
> > 
> The build command is  make CFLAGS=-DEM_AARCH64=183 and build log for purgatory/purgatory.c is as below.

If you need to define EM_AARCH64, then your toolchain must be
old.  Please upgrade and see if it fixes your problem.

> ########################## build log ###########################
> ----------------------------------------
> aarch64-linux-gnu-gcc -DEM_AARCH64=183 -mcmodel=large -Wl,-Map=purgatory/purgatory.map -fno-stack-protector -Wundef -Werror-implicit-function-declaration -Wd
> eclaration-after-statement -Werror=implicit-int -Werror=strict-prototypes -I./purgatory/include -I./purgatory/arch/arm64/include -I./util_lib/include -I./inc
> lude -Iinclude -I/opt/skd/toolchain/linaro/bin_gcc_linaro/gcc-linaro-aarch64-linux-gnu-4.9-2014.09_linux/bin/../lib/gcc/aarch64-linux-gnu/4.9.2/include  -c -
> MD -o purgatory/purgatory.o purgatory/purgatory.c
> In file included from purgatory/purgatory.c:4:0:
> ./purgatory/include/purgatory.h:4:6: warning: conflicting types for built-in function ‘putchar’
>  void putchar(int ch);
>       ^

I never see these warnings when I build.

> ########################## end of build log #########################
> 
> gcc version used is
> 
> $# aarch64-linux-gnu-gcc --version
> aarch64-linux-gnu-gcc (crosstool-NG linaro-1.13.1-4.9-2014.09 - Linaro GCC 4.9-2014.09) 4.9.2 20140904 (prerelease)

This seems to be a forked Linaro version.  What if you use an
upstream version?

-Geoff




More information about the kexec mailing list