FW: [PATCH 0/8] arm64 kexec kernel patches V6
Anurup M
anurup.m at huawei.com
Thu Nov 20 04:05:53 PST 2014
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.
########################## 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);
^
./purgatory/include/purgatory.h:5:6: warning: conflicting types for built-in function ‘sprintf’
void sprintf(char *buffer, const char *fmt, ...)
^
./purgatory/include/purgatory.h:7:6: warning: conflicting types for built-in function ‘printf’
void printf(const char *fmt, ...) __attribute__ ((format (printf, 1, 2)));
^ [54/1855]
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/printf.o purgatory/printf.c
In file included from purgatory/printf.c:4:0:
./purgatory/include/purgatory.h:4:6: warning: conflicting types for built-in function ‘putchar’
void putchar(int ch);
^
./purgatory/include/purgatory.h:5:6: warning: conflicting types for built-in function ‘sprintf’
void sprintf(char *buffer, const char *fmt, ...)
^
./purgatory/include/purgatory.h:7:6: warning: conflicting types for built-in function ‘printf’
void printf(const char *fmt, ...) __attribute__ ((format (printf, 1, 2)));
^
purgatory/printf.c:36:6: warning: conflicting types for built-in function ‘vsprintf’
void vsprintf(char *buffer, const char *fmt, va_list args)
^
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/string.o purgatory/string.c
aarch64-linux-gnu-gcc -mcmodel=large -Wl,-Map=purgatory/purgatory.map -fno-stack-protector -Wundef -Werror-implicit-function-declaration -Wdeclaration-after
-statement -Werror=implicit-int -Werror=strict-prototypes -I./purgatory/include -I./purgatory/arch/arm64/include -I./util_lib/include -I./include -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/
arch/arm64/entry.o purgatory/arch/arm64/entry.S
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/arch/arm64/purgatory-arm64.o purgatory/arch/arm64/purgatory-arm64.c
########################## 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)
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
>> I use foundation model and the kernel image from
>> https://git.linaro.org/people/geoff.levand/linux-kexec.git branch:
>> origin/kexec-v6 and rootfs from Linaro
>> (http://releases.linaro.org/14.09/openembedded/aarch64)
>>
>> The above error is not seen when I use kexec-tools branch: origin/kdump.
>>
>> Also wish to know how to verify the kdump feature.
>
> As I mentioned before, these patches only add kexec re-boot support. kdump has not been ported to arm64 yet.
>
> -Geoff
>
>
>
More information about the kexec
mailing list