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