On Thu, Feb 22, 2024 at 02:42:01PM +0800, kernel test robot wrote: > tree: https://git.kernel.org/pub/scm/linux/kernel/git/s390/linux.git features > head: 4a5993287467d2d0401503256dc9d2690c7f2020 > commit: 778666df60f0d96f215e33e27448de47a2207fb3 [97/98] s390: compile relocatable kernel without -fPIE > config: s390-randconfig-002-20231016 (https://download.01.org/0day-ci/archive/20240222/202402221404.T2TGs8El-lkp@xxxxxxxxx/config) > compiler: s390-linux-gcc (GCC) 13.2.0 > reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240222/202402221404.T2TGs8El-lkp@xxxxxxxxx/reproduce) > > If you fix the issue in a separate patch/commit (i.e. not just a new version of > the same patch/commit), kindly add following tags > | Reported-by: kernel test robot <lkp@xxxxxxxxx> > | Closes: https://lore.kernel.org/oe-kbuild-all/202402221404.T2TGs8El-lkp@xxxxxxxxx/ > > All errors (new ones prefixed by >>): > > >> Unsupported relocation type: 21 > > -- > 0-DAY CI Kernel Test Service > https://github.com/intel/lkp-tests/wiki > In the random config generated by lkp test robot CONFIG_TI_CPSW=m CONFIG_TI_DAVINCI_EMAC=y In drivers/net/ethernet/ti/Makefile: 11 obj-$(CONFIG_TI_DAVINCI_EMAC) += ti_davinci_emac.o 12 ti_davinci_emac-y := davinci_emac.o davinci_cpdma.o ... 16 obj-$(CONFIG_TI_CPSW) += ti_cpsw.o 17 ti_cpsw-y := cpsw.o davinci_cpdma.o cpsw_ale.o cpsw_priv.o cpsw_sl.o cpsw_ethtool.o Here davinci_cpdma.o is used in both obj-$(CONFIG_TI_DAVINCI_EMAC) and obj-$(CONFIG_TI_CPSW), one built as inbuilt and one built as module correspondingly (randconfig) This leads to conflict in Kbuild and results in linking davinci_cpdma.o in vmlinux. * However, davinci_cpdma.o is built with -DMODULE -fPIC. * vmlinux is built with -fno-PIE. This leads to R_390_GOTENT and R_390_GOTDBL entries in vmlinux, which is not expected when building kernel with -fno-PIE. Debug data: ========== 1. CALL ../scripts/checksyscalls.sh AR drivers/phy/ti/built-in.a CC [M] drivers/phy/ti/phy-gmii-sel.o ../scripts/Makefile.build:243: ../drivers/net/ethernet/ti/Makefile: davinci_cpdma.o is added to multiple modules: ti_cpsw ti_davinci_emac <<<<<<<< CC [M] drivers/net/ethernet/ti/davinci_cpdma.o ... CC [M] drivers/net/ethernet/ti/cpsw.o CC [M] drivers/net/ethernet/ti/cpsw_ale.o CC [M] drivers/net/ethernet/ti/cpsw_priv.o CC [M] drivers/net/ethernet/ti/cpsw_sl.o CC [M] drivers/net/ethernet/ti/cpsw_ethtool.o AR drivers/phy/built-in.a AR drivers/net/ethernet/ti/built-in.a LD [M] drivers/net/ethernet/ti/ti_cpsw.o AR drivers/net/ethernet/built-in.a AR drivers/net/built-in.a AR drivers/built-in.a AR built-in.a 2. ti/.davinci_cpdma.o.cmd:savedcmd_drivers/net/ethernet/ti/davinci_cpdma.o := This uses -DMODULE -fPIC <<<<<< built-in.a:ti/davinci_cpdma.o/ <<<<< Hence, the error by lkp robot. No fix should be necessary in s390/tools/relocs.c I think it should be either fixed in ti driver or in the kbuild. Thank you, Sumanth