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