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

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


On Mon, 22 Feb 2021 at 21:44, Sedat Dilek <sedat.dilek@xxxxxxxxx> wrote:
>
> On Mon, Feb 22, 2021 at 5:08 PM Naresh Kamboju
> <naresh.kamboju@xxxxxxxxxx> wrote:
> >
> > 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.
> >
>
> Hi Naresh,
>
> Please see commit bb73d07148c405c293e576b40af37737faf23a6a
> ("x86/build: Treat R_386_PLT32 relocation as R_386_PC32").
> Recently accepted into Linus Git tree.

Can this be backported / cherry-picked into stable-rc 5.10 and stable-rc 5.11 ?

>
> [1] says:
>
> Further info for the more interested:
>
> https://github.com/ClangBuiltLinux/linux/issues/1210
> https://sourceware.org/bugzilla/show_bug.cgi?id=27169
> https://github.com/llvm/llvm-project/commit/a084c0388e2a59b9556f2de0083333232da3f1d6
>
> Hope that helps.
>
> - Sedat -
>
> [1] https://git.kernel.org/linus/bb73d07148c405c293e576b40af37737faf23a6a
>
> > 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

- Naresh