2021-09-06 10:44:31

by Jackie Liu

[permalink] [raw]
Subject: [PATCH] trace_osnoise: rename main to trace_main to avoid Werror=main

From: Jackie Liu <[email protected]>

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]

Fixes: a955d7eac177 ("trace: Add timerlat tracer")
Cc: Steven Rostedt <[email protected]>
Cc: Ingo Molnar <[email protected]>
Signed-off-by: Jackie Liu <[email protected]>
---
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");
--
2.25.1


2021-09-06 11:58:04

by Steven Rostedt

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

On Mon, 6 Sep 2021 17:40:03 +0800
Jackie Liu <[email protected]> wrote:

> From: Jackie Liu <[email protected]>
>
> 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/[email protected]/

-- Steve

>
> Fixes: a955d7eac177 ("trace: Add timerlat tracer")
> Cc: Steven Rostedt <[email protected]>
> Cc: Ingo Molnar <[email protected]>
> Signed-off-by: Jackie Liu <[email protected]>
> ---
> 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");

2021-09-06 15:01:12

by Jackie Liu

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

Hi Steven. Thank you for let me know.

--
Jackie Liu



September 6, 2021 7:56 PM, "Steven Rostedt" <[email protected]> 写到:

> On Mon, 6 Sep 2021 17:40:03 +0800
> Jackie Liu <[email protected]> wrote:
>
>> From: Jackie Liu <[email protected]>
>>
>> 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/[email protected]
>
> -- Steve
>
>> Fixes: a955d7eac177 ("trace: Add timerlat tracer")
>> Cc: Steven Rostedt <[email protected]>
>> Cc: Ingo Molnar <[email protected]>
>> Signed-off-by: Jackie Liu <[email protected]>
>> ---
>> 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");