Re: [PATCH v2] modpost: Skip .llvm.call-graph-profile section check

From: Masahiro Yamada
Date: Wed Aug 23 2023 - 19:03:10 EST


On Wed, Aug 23, 2023 at 3:00 AM Fangrui Song <maskray@xxxxxxxxxx> wrote:
>
> On Tue, Aug 22, 2023 at 10:49 AM Denis Nikitin <denik@xxxxxxxxxxxx> wrote:
> >
> > .llvm.call-graph-profile section is added by clang when the kernel is
> > built with profiles (e.g. -fprofile-sample-use= or -fprofile-use=).
> >
> > The section contains edge information derived from text sections,
> > so .llvm.call-graph-profile itself doesn't need more analysis as
> > the text sections have been analyzed.
> >
> > This change fixes the kernel build with clang and a sample profile
> > which currently fails with:
> >
> > "FATAL: modpost: Please add code to calculate addend for this architecture"


Curious.

This message is only displayed for REL.

(Please not it is located in section_rel() function)


I think modern architectures use RELA instead of REL.
Which architecture are we talking about?


What does the output of this command look like?

$ llvm-readelf -S vmlinux.o | grep .llvm.call-graph-profile


Is it REL?









> >
> > Signed-off-by: Denis Nikitin <denik@xxxxxxxxxxxx>
> > Reviewed-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx>
>
> Thanks. The new commit message looks good to me.
>
> Reviewed-by: Fangrui Song <maskray@xxxxxxxxxx>
>
> > ---
> > scripts/mod/modpost.c | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
> > index b29b29707f10..64bd13f7199c 100644
> > --- a/scripts/mod/modpost.c
> > +++ b/scripts/mod/modpost.c
> > @@ -761,6 +761,7 @@ static const char *const section_white_list[] =
> > ".fmt_slot*", /* EZchip */
> > ".gnu.lto*",
> > ".discard.*",
> > + ".llvm.call-graph-profile", /* call graph */
> > NULL
> > };
> >
> > --
> > 2.42.0.rc1.204.g551eb34607-goog
> >
>
>
> --
> 宋方睿



--
Best Regards
Masahiro Yamada