Re: ld.lld: error: drivers/staging/rtl8192e/rtllib_wx.o:(.rodata.str1.1): offset is outside the section

From: Nathan Chancellor
Date: Mon Mar 30 2020 - 17:34:11 EST


On Mon, Mar 30, 2020 at 02:21:20PM -0700, 'Nick Desaulniers' via Clang Built Linux wrote:
> Apologies, we're in the process of getting LLD turned on. These
> warnings look new to me, so I'll file an issue to follow up on. It's
> unrelated to the yyloc change.
> https://github.com/ClangBuiltLinux/linux/issues/959

$ gzip -d .config.gz

$ rg ENDIAN .config
781:CONFIG_CPU_BIG_ENDIAN=y
782:CONFIG_CPU_ENDIAN_BE8=y
810:CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y
1112:CONFIG_VHOST_CROSS_ENDIAN_LEGACY=y
7875:CONFIG_FB_FOREIGN_ENDIAN=y
7876:CONFIG_FB_BOTH_ENDIAN=y
7877:# CONFIG_FB_BIG_ENDIAN is not set
7878:# CONFIG_FB_LITTLE_ENDIAN is not set
9047:CONFIG_USB_OHCI_LITTLE_ENDIAN=y

ld.lld does not support AArch64 or ARM big endian:

https://reviews.llvm.org/D58655#1410281

https://github.com/ClangBuiltLinux/linux/issues/380

Does 0day do an allyesconfig little endian? I know that arm64 defaults
to little endian after commit d8e85e144bbe ("arm64: Kconfig: add a
choice for endianness") but arm does not have something like that (maybe
it should?). I've always forced CONFIG_CPU_LITTLE_ENDIAN with the
KCONFIG_ALLCONFIG variable, as I note in issue #380 above.

Kind of surprised that it got to drivers/staging though, I error out in
arch/arm/vdso/Makefile:

$ mkdir -p out/arm32 && curl -LSs 'https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx/message/V6YPX24H2YFOKOE7FWFJ66DQI63R3WKZ/attachment/2/config.gz' | gzip -d > out/arm32/.config

$ make -j$(nproc) -s ARCH=arm CC=clang CROSS_COMPILE=arm-linux-gnueabi- LD=ld.lld O=out/arm32 olddefconfig all
ld.lld: error: unknown argument: --be8
make[3]: *** [/home/nathan/src/linux/arch/arm/vdso/Makefile:50: arch/arm/vdso/vdso.so.raw] Error 1

> On Mon, Mar 30, 2020 at 2:17 PM kbuild test robot <lkp@xxxxxxxxx> wrote:
> >
> > Hi Dirk,
> >
> > First bad commit (maybe != root cause):
> >
> > tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> > head: 7111951b8d4973bda27ff663f2cf18b663d15b48
> > commit: e33a814e772cdc36436c8c188d8c42d019fda639 scripts/dtc: Remove redundant YYLOC global declaration
> > date: 3 days ago
> > config: arm-allyesconfig (attached as .config)
> > compiler: clang version 11.0.0 (https://github.com/llvm/llvm-project b4695351cb4ce1c4450a029a0c226dc8bb5f5d55)
> > reproduce:
> > wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> > chmod +x ~/bin/make.cross
> > git checkout e33a814e772cdc36436c8c188d8c42d019fda639
> > # save the attached .config to linux build tree
> > COMPILER=clang make.cross ARCH=arm
> >
> > If you fix the issue, kindly add following tag
> > Reported-by: kbuild test robot <lkp@xxxxxxxxx>
> >
> > All errors (new ones prefixed by >>):
> >
> > >> ld.lld: error: drivers/staging/rtl8192e/rtllib_wx.o:(.rodata.str1.1): offset is outside the section
> > >> ld.lld: error: drivers/staging/rtl8192e/rtllib_softmac.o:(.rodata.str1.1): offset is outside the section
> > >> ld.lld: error: drivers/staging/rtl8192e/rtllib_tx.o:(.rodata.str1.1): offset is outside the section
> > --
> > >> ld.lld: error: drivers/staging/rtl8192u/ieee80211/dot11d.o:(.rodata.str1.1): offset is outside the section
> > --
> > >> ld.lld: error: drivers/staging/rtl8723bs/core/rtw_debug.o:(.rodata.str1.1): offset is outside the section
> > >> ld.lld: error: drivers/staging/rtl8723bs/core/rtw_sta_mgt.o:(.rodata.str1.1): offset is outside the section
> > >> ld.lld: error: drivers/staging/rtl8723bs/core/rtw_security.o:(.rodata.str1.1): offset is outside the section
> > >> ld.lld: error: drivers/staging/rtl8723bs/core/rtw_wlan_util.o:(.rodata.str1.1): offset is outside the section
> > >> ld.lld: error: drivers/staging/rtl8723bs/core/rtw_ieee80211.o:(.rodata.cst4): offset is outside the section
> > >> ld.lld: error: drivers/staging/rtl8723bs/core/rtw_odm.o:(.rodata.str1.1): offset is outside the section
> > >> ld.lld: error: drivers/staging/rtl8723bs/core/rtw_recv.o:(.rodata.str1.1): offset is outside the section
> > >> ld.lld: error: drivers/staging/rtl8723bs/hal/hal_com.o:(.rodata.str1.1): offset is outside the section
> > >> ld.lld: error: drivers/staging/rtl8723bs/core/rtw_ioctl_set.o:(.rodata.str1.1): offset is outside the section
> > >> ld.lld: error: drivers/staging/rtl8723bs/core/rtw_xmit.o:(.rodata.str1.1): offset is outside the section
> > ld.lld
> > --
> > >> ld.lld: error: drivers/misc/mic/vop/vop_vringh.o:(.rodata.str1.1): offset is outside the section
> > --
> > ld.lld: error: drivers/staging/rtl8188eu/core/rtw_efuse.o:(.rodata.str1.1): offset is outside the section
> > >> ld.lld: error: drivers/staging/rtl8188eu/os_dep/xmit_linux.o:(.rodata.str1.1): offset is outside the section
> > --
> > >> ld.lld: error: drivers/staging/kpc2000/kpc_dma/fileops.o:(.rodata.str1.1): offset is outside the section
> > ld.lld: error: drivers/staging/kpc2000/kpc_dma/kpc_dma_driver.o:(.rodata.str1.1): offset is outside the section
> >
> > ---
> > 0-DAY CI Kernel Test Service, Intel Corporation
> > https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
> >
>
>
>
> --
> Thanks,
> ~Nick Desaulniers
>