Subject: Re: linux-next: build failure after merge of the modules tree

From: Stephen Rothwell <[email-masked]>
Date: Wed, 10 Feb 2021 08:50:51 +1100

Hi Jessica,

On Tue, 9 Feb 2021 16:16:20 +0100 Jessica Yu <[email-masked]> wrote:
>
> Hmm, these errors don't look like it's related to that particular commit. I was

I found this commit by bisection and then tested by reverting it.

Before this commit, CONFIG_TRIM_UNUSED_KSYMS would not be set in the
allyesconfig build because CONFIG_UNUSED_SYMBOLS was set.  After this
commit, CONFIG_TRIM_UNUSED_KSYMS will be set in the allyesconfig build.

> able to reproduce these weird autoksym errors even without any modules-next
> patches applied, and on a clean v5.11-rc7 tree. To reproduce it,
> CONFIG_TRIM_UNUSED_KSYMS needs to be enabled. I guess that's why we run into
> these errors with allyesconfig. I used a gcc-7 ppc64le cross compiler and got
> the same compiler warnings. It seems to not compile on powerpc properly because
> it looks like some symbols have an extra dot "." prefix, for example in
> kthread.o:
> 
>     168: 0000000000000318    24 NOTYPE  GLOBAL DEFAULT    6 kthread_create_worker
>     169: 0000000000001d90   104 FUNC    GLOBAL DEFAULT    1 .kthread_create_worker
>     170: 0000000000000330    24 NOTYPE  GLOBAL DEFAULT    6 kthread_create_worker_on_cpu
>     171: 0000000000001e00    88 FUNC    GLOBAL DEFAULT    1 .kthread_create_worker_on_cpu
>     172: 0000000000000348    24 NOTYPE  GLOBAL DEFAULT    6 kthread_queue_work
>     173: 0000000000001e60   228 FUNC    GLOBAL DEFAULT    1 .kthread_queue_work
> 
> So I suppose this dot prefix is specific to powerpc. From the ppc64 elf abi docs:
> 
>      Symbol names with a dot (.) prefix are reserved for holding entry point
>      addresses. The value of a symbol named ".FN", if it exists, is the entry point
>      of the function "FN".
> 
> I guess the presence of the extra dot symbols is confusing
> scripts/gen_autoksyms.sh, so we get the dot symbols in autoksyms.h, which the
> preprocessor doesn't like. I am wondering how this was never caught until now
> and also now curious if this feature was ever functional on powerpc..

Which feature?

-- 
Cheers,
Stephen Rothwell