Re: [PATCH -next] buildid: fix build when CONFIG_MODULES is not set

From: Stephen Boyd
Date: Fri May 14 2021 - 02:54:45 EST


Quoting Randy Dunlap (2021-05-13 10:15:10)
> Omit the static_assert() when CONFIG_MODULES is not set/enabled.
> Fixes these build errors:
>
> ../kernel/kallsyms.c: In function ‘__sprint_symbol’:
> ../include/linux/kernel.h:53:43: error: dereferencing pointer to incomplete type ‘struct module’
> #define typeof_member(T, m) typeof(((T*)0)->m)
> ^
> ../include/linux/build_bug.h:78:41: error: static assertion failed: "sizeof(typeof_member(struct module, build_id)) == 20"
> #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
> ^
> ../kernel/kallsyms.c:454:4: note: in expansion of macro ‘static_assert’
> static_assert(sizeof(typeof_member(struct module, build_id)) == 20);
> ^~~~~~~~~~~~~
>
> Signed-off-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
> Cc: Stephen Boyd <swboyd@xxxxxxxxxxxx>
> Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> ---

Reviewed-by: Stephen Boyd <swboyd@xxxxxxxxxxxx>

Thanks. I didn't realize that there was an ifdef around the definition
of 'struct module'.