Re: [PATCH v8 00/16] Add support for Clang LTO

From: Arnd Bergmann
Date: Wed Dec 09 2020 - 07:37:01 EST


On Tue, Dec 8, 2020 at 1:15 PM Arnd Bergmann <arnd@xxxxxxxxxx> wrote:
>
> - one build seems to have dropped all symbols the string operations
> from vmlinux,
> so while the link goes through, modules cannot be loaded:
> ERROR: modpost: "memmove" [drivers/media/rc/rc-core.ko] undefined!
> ERROR: modpost: "memcpy" [net/wireless/cfg80211.ko] undefined!
> ERROR: modpost: "memcpy" [net/8021q/8021q.ko] undefined!
> ERROR: modpost: "memset" [net/8021q/8021q.ko] undefined!
> ERROR: modpost: "memcpy" [net/unix/unix.ko] undefined!
> ERROR: modpost: "memset" [net/sched/cls_u32.ko] undefined!
> ERROR: modpost: "memcpy" [net/sched/cls_u32.ko] undefined!
> ERROR: modpost: "memset" [net/sched/sch_skbprio.ko] undefined!
> ERROR: modpost: "memcpy" [net/802/garp.ko] undefined!
> I first thought this was related to a clang-12 bug I saw the other day, but
> this also happens with clang-11

It seems to happen because of CONFIG_TRIM_UNUSED_KSYMS,
which is a shame, since I think that is an option we'd always want to
have enabled with LTO, to allow more dead code to be eliminated.

Arnd