Re: [jpoimboe:s390 2/2] Unsupported relocation type: 26

From: Josh Poimboeuf
Date: Fri Sep 02 2022 - 11:52:49 EST


On Fri, Sep 02, 2022 at 08:12:30AM -0700, Nathan Chancellor wrote:
> On Fri, Sep 02, 2022 at 01:51:11PM +0800, kernel test robot wrote:
> > tree: https://git.kernel.org/pub/scm/linux/kernel/git/jpoimboe/linux.git s390
> > head: fa09ffb73e4d64424faef5988a1e993317db77c5
> > commit: fa09ffb73e4d64424faef5988a1e993317db77c5 [2/2] s390: Compile relocatable kernel without -fPIE
> > config: s390-randconfig-r044-20220901
> > compiler: clang version 16.0.0 (https://github.com/llvm/llvm-project c55b41d5199d2394dd6cdb8f52180d8b81d809d4)
> > reproduce (this is a W=1 build):
> > wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> > chmod +x ~/bin/make.cross
> > # install s390 cross compiling tool for clang build
> > # apt-get install binutils-s390x-linux-gnu
> > # https://git.kernel.org/pub/scm/linux/kernel/git/jpoimboe/linux.git/commit/?id=fa09ffb73e4d64424faef5988a1e993317db77c5
> > git remote add jpoimboe https://git.kernel.org/pub/scm/linux/kernel/git/jpoimboe/linux.git
> > git fetch --no-tags jpoimboe s390
> > git checkout fa09ffb73e4d64424faef5988a1e993317db77c5
> > # save the config file
> > mkdir build_dir && cp config build_dir/.config
> > COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=s390 SHELL=/bin/bash
> >
> > If you fix the issue, kindly add following tag where applicable
> > Reported-by: kernel test robot <lkp@xxxxxxxxx>
> >
> > All errors (new ones prefixed by >>):
> >
> > >> Unsupported relocation type: 26
>
> Looks like 26 is R_390_GOTENT according to
> https://github.com/llvm/llvm-project/blob/ee761374f797a47919ec8f9f49f9b8b1b20573e8/llvm/include/llvm/BinaryFormat/ELFRelocs/SystemZ.def.

Indeed. BTW, that define can also be found in /usr/include/elf.h.

I guess I need to test this feature with clang ;-) Without -fPIE, I'm
not sure why it would be using a GOT relocation for vmlinux.

--
Josh