When building with clang (11.0,--buildtype=debug), eal_lcore.c produces a -Wformat-nonliteral warning from the vfprintf call in log_early. Disable the warning for log_early when building with clang. MinGW does not seem to detect the warning. Fixes: b8a36b086625 ("eal/windows: improve CPU and NUMA node detection") Cc: stable@dpdk.org Signed-off-by: Nick Connolly <nick.connolly@mayadata.io> --- lib/librte_eal/windows/eal_lcore.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/lib/librte_eal/windows/eal_lcore.c b/lib/librte_eal/windows/eal_lcore.c index d5ff721e0..d996b4f89 100644 --- a/lib/librte_eal/windows/eal_lcore.c +++ b/lib/librte_eal/windows/eal_lcore.c @@ -36,6 +36,11 @@ struct cpu_map { static struct cpu_map cpu_map = { 0 }; +#ifdef __clang__ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wformat-nonliteral" +#endif + /* eal_create_cpu_map() is called before logging is initialized */ static void log_early(const char *format, ...) @@ -47,6 +52,10 @@ log_early(const char *format, ...) va_end(va); } +#ifdef __clang__ +#pragma clang diagnostic pop +#endif + int eal_create_cpu_map(void) { -- 2.25.1
On Fri, 27 Nov 2020 12:07:11 +0000, Nick Connolly wrote: > [...] > +#ifdef __clang__ > +#pragma clang diagnostic push > +#pragma clang diagnostic ignored "-Wformat-nonliteral" > +#endif > [...] How about a more safe approach? diff --git a/lib/librte_eal/windows/eal_lcore.c b/lib/librte_eal/windows/eal_lcore.c index d5ff721e0..ebcd3474e 100644 --- a/lib/librte_eal/windows/eal_lcore.c +++ b/lib/librte_eal/windows/eal_lcore.c @@ -37,6 +37,7 @@ struct cpu_map { static struct cpu_map cpu_map = { 0 }; /* eal_create_cpu_map() is called before logging is initialized */ +__rte_format_printf(1, 2) static void log_early(const char *format, ...) {
Looks good to me!
On 28/11/2020 21:11, Dmitry Kozlyuk wrote:
> On Fri, 27 Nov 2020 12:07:11 +0000, Nick Connolly wrote:
>> [...]
>> +#ifdef __clang__
>> +#pragma clang diagnostic push
>> +#pragma clang diagnostic ignored "-Wformat-nonliteral"
>> +#endif
>> [...]
> How about a more safe approach?
>
> diff --git a/lib/librte_eal/windows/eal_lcore.c b/lib/librte_eal/windows/eal_lcore.c
> index d5ff721e0..ebcd3474e 100644
> --- a/lib/librte_eal/windows/eal_lcore.c
> +++ b/lib/librte_eal/windows/eal_lcore.c
> @@ -37,6 +37,7 @@ struct cpu_map {
> static struct cpu_map cpu_map = { 0 };
>
> /* eal_create_cpu_map() is called before logging is initialized */
> +__rte_format_printf(1, 2)
> static void
> log_early(const char *format, ...)
> {
When building with clang (11.0,--buildtype=debug), eal_lcore.c produces a -Wformat-nonliteral warning from the vfprintf call in log_early. Add __rte_format_printf annotation. Fixes: b8a36b086625 ("eal/windows: improve CPU and NUMA node detection") Cc: stable@dpdk.org Signed-off-by: Nick Connolly <nick.connolly@mayadata.io> Suggested-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com> --- v2: * Use __rte_format_printf instead of disabling the warning lib/librte_eal/windows/eal_lcore.c | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/librte_eal/windows/eal_lcore.c b/lib/librte_eal/windows/eal_lcore.c index d5ff721e0..a85149be9 100644 --- a/lib/librte_eal/windows/eal_lcore.c +++ b/lib/librte_eal/windows/eal_lcore.c @@ -38,6 +38,7 @@ static struct cpu_map cpu_map = { 0 }; /* eal_create_cpu_map() is called before logging is initialized */ static void +__rte_format_printf(1, 2) log_early(const char *format, ...) { va_list va; -- 2.25.1
On Sun, 29 Nov 2020 13:00:47 +0000, Nick Connolly wrote:
> When building with clang (11.0,--buildtype=debug), eal_lcore.c
> produces a -Wformat-nonliteral warning from the vfprintf call
> in log_early.
>
> Add __rte_format_printf annotation.
>
> Fixes: b8a36b086625 ("eal/windows: improve CPU and NUMA node detection")
> Cc: stable@dpdk.org
>
> Signed-off-by: Nick Connolly <nick.connolly@mayadata.io>
> Suggested-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
> ---
> v2:
> * Use __rte_format_printf instead of disabling the warning
>
> lib/librte_eal/windows/eal_lcore.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/lib/librte_eal/windows/eal_lcore.c b/lib/librte_eal/windows/eal_lcore.c
> index d5ff721e0..a85149be9 100644
> --- a/lib/librte_eal/windows/eal_lcore.c
> +++ b/lib/librte_eal/windows/eal_lcore.c
> @@ -38,6 +38,7 @@ static struct cpu_map cpu_map = { 0 };
>
> /* eal_create_cpu_map() is called before logging is initialized */
> static void
> +__rte_format_printf(1, 2)
> log_early(const char *format, ...)
> {
> va_list va;
Acked-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
On 11/29/2020 5:00 AM, Nick Connolly wrote:
> When building with clang (11.0,--buildtype=debug), eal_lcore.c
> produces a -Wformat-nonliteral warning from the vfprintf call
> in log_early.
>
> Add __rte_format_printf annotation.
>
> Fixes: b8a36b086625 ("eal/windows: improve CPU and NUMA node detection")
> Cc: stable@dpdk.org
>
> Signed-off-by: Nick Connolly <nick.connolly@mayadata.io>
> Suggested-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
> ---
Acked-by: Pallavi Kadam <pallavi.kadam@intel.com>
29/11/2020 14:42, Dmitry Kozlyuk:
> On Sun, 29 Nov 2020 13:00:47 +0000, Nick Connolly wrote:
> > When building with clang (11.0,--buildtype=debug), eal_lcore.c
> > produces a -Wformat-nonliteral warning from the vfprintf call
> > in log_early.
> >
> > Add __rte_format_printf annotation.
> >
> > Fixes: b8a36b086625 ("eal/windows: improve CPU and NUMA node detection")
> > Cc: stable@dpdk.org
> >
> > Signed-off-by: Nick Connolly <nick.connolly@mayadata.io>
> > Suggested-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
>
> Acked-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
Applied, thanks