Re: [PATCH v2] srcu: avoid escaped section names

From: Joe Perches
Date: Wed Sep 30 2020 - 14:57:10 EST


On Wed, 2020-09-30 at 18:41 +0200, Sedat Dilek wrote:
> On Tue, Sep 29, 2020 at 9:25 PM 'Nick Desaulniers' via Clang Built
> Linux <clang-built-linux@xxxxxxxxxxxxxxxx> wrote:
> > The stringification operator, `#`, in the preprocessor escapes strings.
> > For example, `# "foo"` becomes `"\"foo\""`. GCC and Clang differ in how
> > they treat section names that contain \".
> >
> > The portable solution is to not use a string literal with the
> > preprocessor stringification operator.
> >
> > Link: https://bugs.llvm.org/show_bug.cgi?id=42950
> > Fixes: commit fe15b50cdeee ("srcu: Allocate per-CPU data for DEFINE_SRCU() in modules")
> > Signed-off-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx>
>
> Puh, remember one year ago an overnight bisecting to catch the root
> cause for "escaped section names".
>
> The two patches I see - this here and "export.h: fix section name for
> CONFIG_TRIM_UNUSED_KSYMS for Clang" were new cases?
>
> Do we have a check-script to catch/avoid such cases (Joe Perches?)?

Try the script that removes #S from #define __section(S)

https://lore.kernel.org/lkml/0e582a7f5144a33f465978d97701f9b3dcc377f3.camel@xxxxxxxxxxx/