Segher Boessenkool <seg...@kernel.crashing.org> writes: > On Wed, Jul 29, 2020 at 03:44:56PM -0400, Vladis Dronov wrote: >> > > Certain warnings are emitted for powerpc code when building with a gcc-10 >> > > toolset: >> > > >> > > WARNING: modpost: vmlinux.o(.text.unlikely+0x377c): Section mismatch >> > > in >> > > reference from the function remove_pmd_table() to the function >> > > .meminit.text:split_kernel_mapping() >> > > The function remove_pmd_table() references >> > > the function __meminit split_kernel_mapping(). >> > > This is often because remove_pmd_table lacks a __meminit >> > > annotation or the annotation of split_kernel_mapping is wrong. >> > > >> > > Add the appropriate __init and __meminit annotations to make modpost not >> > > complain. In all the cases there are just a single callsite from another >> > > __init or __meminit function: >> > > >> > > __meminit remove_pagetable() -> remove_pud_table() -> remove_pmd_table() >> > > __init prom_init() -> setup_secure_guest() >> > > __init xive_spapr_init() -> xive_spapr_disabled() >> > >> > So what changed? These functions were inlined with older compilers, but >> > not anymore? >> >> Yes, exactly. Gcc-10 does not inline them anymore. If this is because of my >> build system, this can happen to others also. >> >> The same thing was fixed by Linus in e99332e7b4cd ("gcc-10: mark more >> functions >> __init to avoid section mismatch warnings"). > > It sounds like this is part of "-finline-functions was retuned" on > <https://gcc.gnu.org/gcc-10/changes.html>? So everyone should see it > (no matter what config or build system), and it is a good thing too :-)
I haven't seen it in my GCC 10 builds, so there must be some other subtlety. Probably it depends on details of the .config. cheers