Re: [PATCH] trace_osnoise: rename main to trace_main to avoid Werror=main

From: Jackie Liu
Date: Mon Sep 06 2021 - 09:20:12 EST


Hi Steven. Thank you for let me know.

--
Jackie Liu



September 6, 2021 7:56 PM, "Steven Rostedt" <rostedt@xxxxxxxxxxx> 写到:

> On Mon, 6 Sep 2021 17:40:03 +0800
> Jackie Liu <liu.yun@xxxxxxxxx> wrote:
>
>> From: Jackie Liu <liuyun01@xxxxxxxxxx>
>>
>> kernel builds with -Werror=main, gcc report failed.
>>
>> Avoids warnings like:
>> kernel/trace/trace_osnoise.c:1515:8: error: ‘main’ is usually a function [-Werror=main]
>
> NACK!
>
> It's a stupid warning, and likely a bug in the compiler.
>
> There's nothing wrong with using "main" as a local variable. It will
> *never* conflict with the main main. Less so in the kernel, as the
> kernel doesn't even have a main!
>
> Do not send patches to fix this "error".
>
> Not to mention, we already went through this discussion a month ago.
>
> https://lore.kernel.org/all/20210813224131.25803-1-rdunlap@xxxxxxxxxxxxx
>
> -- Steve
>
>> Fixes: a955d7eac177 ("trace: Add timerlat tracer")
>> Cc: Steven Rostedt <rostedt@xxxxxxxxxxx>
>> Cc: Ingo Molnar <mingo@xxxxxxxxxx>
>> Signed-off-by: Jackie Liu <liuyun01@xxxxxxxxxx>
>> ---
>> kernel/trace/trace_osnoise.c | 6 +++---
>> 1 file changed, 3 insertions(+), 3 deletions(-)
>>
>> diff --git a/kernel/trace/trace_osnoise.c b/kernel/trace/trace_osnoise.c
>> index b61eefe5ccf5..938e2791010a 100644
>> --- a/kernel/trace/trace_osnoise.c
>> +++ b/kernel/trace/trace_osnoise.c
>> @@ -1512,20 +1512,20 @@ static void stop_per_cpu_kthreads(void)
>> static int start_kthread(unsigned int cpu)
>> {
>> struct task_struct *kthread;
>> - void *main = osnoise_main;
>> + void *trace_main = osnoise_main;
>> char comm[24];
>>
>> #ifdef CONFIG_TIMERLAT_TRACER
>> if (osnoise_data.timerlat_tracer) {
>> snprintf(comm, 24, "timerlat/%d", cpu);
>> - main = timerlat_main;
>> + trace_main = timerlat_main;
>> } else {
>> snprintf(comm, 24, "osnoise/%d", cpu);
>> }
>> #else
>> snprintf(comm, 24, "osnoise/%d", cpu);
>> #endif
>> - kthread = kthread_create_on_cpu(main, NULL, cpu, comm);
>> + kthread = kthread_create_on_cpu(trace_main, NULL, cpu, comm);
>>
>> if (IS_ERR(kthread)) {
>> pr_err(BANNER "could not start sampling thread\n");