Commit 93ca6963 authored by Rong Chen's avatar Rong Chen Committed by Linus Torvalds

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

Link: https://lkml.kernel.org/r/20210210150435.2171567-1-rong.a.chen@intel.com
Link: https://lore.kernel.org/linux-mm/202101261118.GbbYSlHu-lkp@intel.comSigned-off-by: default avatarRong Chen <rong.a.chen@intel.com>
Reported-by: default avatarkernel test robot <lkp@intel.com>
Cc: Yoshinori Sato <ysato@users.osdn.me>
Cc: Rich Felker <dalias@libc.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 3c62cfdd
...@@ -265,7 +265,11 @@ if ($arch eq "x86_64") { ...@@ -265,7 +265,11 @@ if ($arch eq "x86_64") {
# force flags for this arch # force flags for this arch
$ld .= " -m shlelf_linux"; $ld .= " -m shlelf_linux";
$objcopy .= " -O elf32-sh-linux"; if ($endian eq "big") {
$objcopy .= " -O elf32-shbig-linux";
} else {
$objcopy .= " -O elf32-sh-linux";
}
} elsif ($arch eq "powerpc") { } elsif ($arch eq "powerpc") {
my $ldemulation; my $ldemulation;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment