Re: [PATCH] printk: fix _entry_ptr build warning

From: Nathan Chancellor
Date: Wed Mar 06 2024 - 14:40:41 EST


On Wed, Mar 06, 2024 at 05:26:47PM +0800, Chunhui Li wrote:
> We build with Werror and suffer build error when
> enable CONFIG_PRINTK_INDEX, such as
> gfp.h:223:2: error: unused variable '_entry_ptr'
> ratelimit.h:31:3: error: unused variable '_entry_ptr'
> kallsyms.h:172:2: error: unused variable '_entry_ptr'
> [-Werror,-Wunused-variable]
>
> Fix the warning by appending __attribute__((unused)).
>
> Signed-off-by: Chunhui Li <chunhui.li@xxxxxxxxxxxx>

Are these warnings being emitted from an Android version of clang,
specifically 18.0.0 with the build ID of 11209041 (you should be able to
tell this from the "bid" field in the BUILD_INFO file in the clang
toolchain folder)? This seems remarkably similar to
https://github.com/ClangBuiltLinux/linux/issues/1977, which was a report
using that version of Android clang.

Ultimately, this warning is a bug in a clang change that was quickly
found and reverted upstream

https://github.com/llvm/llvm-project/commit/f0f395e00e2ec3f1f20ca9021d1554fde73d56c9
https://github.com/llvm/llvm-project/commit/cfa578cde0314935c6eb5d7fa19ec26390d431dd

but unfortunately, Android picked a revision for the 11209041 build that
was between the landing of the broken commit and its revert. It was
quickly fixed with the 11368308 build

https://android.googlesource.com/platform/prebuilts/clang/host/linux-x86/+/42d100b025eb5f4a41781348016c148e9e912cf9

so you should just be able to update to that version to resolve this.

Cheers,
Nathan

> ---
> include/linux/printk.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/include/linux/printk.h b/include/linux/printk.h
> index 8ef499ab3c1e..749c1c4257f1 100644
> --- a/include/linux/printk.h
> +++ b/include/linux/printk.h
> @@ -392,7 +392,7 @@ struct pi_entry {
> .level = __builtin_constant_p(_level) ? (_level) : NULL, \
> .subsys_fmt_prefix = _subsys_fmt_prefix,\
> }; \
> - static const struct pi_entry *_entry_ptr \
> + static const struct pi_entry *_entry_ptr __attribute__((unused)) \
> __used __section(".printk_index") = &_entry; \
> } \
> } while (0)
> --
> 2.18.0
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel