History

scripts/recordmcount.pl: support big endian for ARCH sh

The kernel test robot reported the following issue: CC [M] drivers/soc/litex/litex_soc_ctrl.o sh4-linux-objcopy: Unable to change endianness of input file(s) sh4-linux-ld: cannot find drivers/soc/litex/.tmp_gl_litex_soc_ctrl.o: No such file or directory sh4-linux-objcopy: 'drivers/soc/litex/.tmp_mx_litex_soc_ctrl.o': No such file The problem is that the format of input file is elf32-shbig-linux, but sh4-linux-objcopy wants to output a file which format is elf32-sh-linux: $ sh4-linux-objdump -d drivers/soc/litex/litex_soc_ctrl.o | grep format drivers/soc/litex/litex_soc_ctrl.o: file format elf32-shbig-linux

Rong Chen committed 5 years ago

Commit 93ca6961 parent 3c62cfd1 file · +5 −1Browse files

Showing the changes to scripts (1 of 1 file). Show all

Unified · Split

scripts/recordmcount.pl+5−1
@@ -265,7 +265,11 @@ if ($arch eq "x86_64") { · 264 unmodified lines
265265
266266 # force flags for this arch
267267 $ld .= " -m shlelf_linux";
268− $objcopy .= " -O elf32-sh-linux";
268+ if ($endian eq "big") {
269+ $objcopy .= " -O elf32-shbig-linux";
270+ } else {
271+ $objcopy .= " -O elf32-sh-linux";
272+ }
269273
270274 } elsif ($arch eq "powerpc") {
271275 my $ldemulation;