clang-12: i386: Unsupported relocation type: R_386_PLT32 (4)

From: Naresh Kamboju
Date: Mon Feb 22 2021 - 11:11:24 EST


While building i386 configs on stable-rc 5.10, stable-rc 5.11 branch
and mainline
with clang-12 these following warnings and errors were noticed.

make --silent --keep-going --jobs=8
O=/home/tuxbuild/.cache/tuxmake/builds/1/tmp ARCH=i386
CROSS_COMPILE=i686-linux-gnu- 'HOSTCC=sccache clang' 'CC=sccache
clang'

drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c:2586:9: warning: shift
count >= width of type [-Wshift-count-overflow]

return hweight64(VDBOX_MASK(&i915->gt));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/bitops/const_hweight.h:29:49: note: expanded from
macro 'hweight64'
#define hweight64(w) (__builtin_constant_p(w) ? __const_hweight64(w) :
__arch_hweight64(w))
^~~~~~~~~~~~~~~~~~~~
include/asm-generic/bitops/const_hweight.h:21:76: note: expanded from
macro '__const_hweight64'
#define __const_hweight64(w) (__const_hweight32(w) +
__const_hweight32((w) >> 32))
^ ~~
include/asm-generic/bitops/const_hweight.h:20:49: note: expanded from
macro '__const_hweight32'
#define __const_hweight32(w) (__const_hweight16(w) +
__const_hweight16((w) >> 16))
^
include/asm-generic/bitops/const_hweight.h:19:48: note: expanded from
macro '__const_hweight16'
#define __const_hweight16(w) (__const_hweight8(w) +
__const_hweight8((w) >> 8 ))
^
include/asm-generic/bitops/const_hweight.h:10:9: note: expanded from
macro '__const_hweight8'
((!!((w) & (1ULL << 0))) + \
^
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c:2586:9: warning: shift
count >= width of type [-Wshift-count-overflow]
return hweight64(VDBOX_MASK(&i915->gt));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<trim>

32 warnings generated.
Unsupported relocation type: R_386_PLT32 (4)
make[3]: *** [arch/x86/boot/compressed/Makefile:116:
arch/x86/boot/compressed/vmlinux.relocs] Error 1
make[3]: *** Deleting file 'arch/x86/boot/compressed/vmlinux.relocs'
make[3]: Target 'arch/x86/boot/compressed/vmlinux' not remade because of errors.

Reported-by: Naresh Kamboju <naresh.kamboju@xxxxxxxxxx>

Steps to reproduce:
---------------------------
# TuxMake is a command line tool and Python library that provides
# portable and repeatable Linux kernel builds across a variety of
# architectures, toolchains, kernel configurations, and make targets.
#
# TuxMake supports the concept of runtimes.
# See https://docs.tuxmake.org/runtimes/, for that to work it requires
# that you install podman or docker on your system.
#
# To install tuxmake on your system globally:
# sudo pip3 install -U tuxmake
#
# See https://docs.tuxmake.org/ for complete documentation.

tuxmake --runtime podman --target-arch i386 --toolchain clang-12
--kconfig defconfig --kconfig-add
https://builds.tuxbuild.com/1opxSKxZuRowPsiOsSJ0IoUOXOt/config

--
Linaro LKFT
https://lkft.linaro.org