From: Stephen Hemminger <stephen@networkplumber.org>
To: Slava Ovsiienko <viacheslavo@mellanox.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>, Matan Azrad <matan@mellanox.com>,
Raslan Darawsheh <rasland@mellanox.com>,
"ferruh.yigit@intel.com" <ferruh.yigit@intel.com>
Subject: Re: [dpdk-dev] [PATCH] net/mlx5: fix compilation issue with gcc pragma
Date: Tue, 1 Oct 2019 16:41:13 -0700 [thread overview]
Message-ID: <20191001164113.0ad0bec6@hermes.lan> (raw)
In-Reply-To: <AM4PR05MB3265FE85DC52039D469F3EB6D29D0@AM4PR05MB3265.eurprd05.prod.outlook.com>
On Tue, 1 Oct 2019 17:15:46 +0000
Slava Ovsiienko <viacheslavo@mellanox.com> wrote:
> > -----Original Message-----
> > From: Stephen Hemminger <stephen@networkplumber.org>
> > Sent: Tuesday, October 1, 2019 17:54
> > To: Slava Ovsiienko <viacheslavo@mellanox.com>
> > Cc: dev@dpdk.org; Matan Azrad <matan@mellanox.com>; Raslan
> > Darawsheh <rasland@mellanox.com>; ferruh.yigit@intel.com
> > Subject: Re: [dpdk-dev] [PATCH] net/mlx5: fix compilation issue with gcc
> > pragma
> >
> > On Tue, 1 Oct 2019 11:10:23 +0000
> > Viacheslav Ovsiienko <viacheslavo@mellanox.com> wrote:
> >
> > > +#if defined(RTE_TOOLCHAIN_GCC) && (GCC_VERSION >= 40600)
> > #pragma GCC
> > > +diagnostic push
> > > #pragma GCC diagnostic ignored "-Wformat-nonliteral"
> > > +#endif
> > > + /* Use safe format to check maximal buffer length. */
> > > while (fscanf(file, format, ifname) == 1) { -#pragma GCC diagnostic
> > > error "-Wformat-nonliteral"
> > > +#if defined(RTE_TOOLCHAIN_GCC) && (GCC_VERSION >= 40600)
> > #pragma GCC
> > > +diagnostic pop #endif
> >
> > This is messy, is there not a better way to do this?
>
> At least I did not find one.
>
> The GCC compile-time format checking feature is nice in general and it worth
> to be engaged. The legitimate fscanf() usage with variable format parameter
> causes GCC to emit error/warning, so we should suppress these ones for this
> single line. ICC does not emit warning and does not recognize GCC pragmas.
> Clang just does not recognize fscanf().
>
> Should we use "#ifndef __INTEL_COMPILER" (typical workaround for
> GCC diagnostic pragma in DPDK)? I'm not sure, It is not completely correct.
>
> The alternative I see is to implement dedicated routine to read words from the file,
> but it means more code and more run-time resources. It seems not to be
> the right way to push compile-time issues resolving to the run-time.
>
> Defining the macro is not relevant here because this is a single case.
>
> WBR, Slava
>
>
You are going to a lot of effort to solve a problem of interface name length
which can not happen. The maximum interface name in linux and bsd is always
15 characters plus null. Therefore there is no need to build a dynamic
format string at all here. Or you could use the assignment allocation modifier
so that the resulting string from fscanf was allocated.
Could you try one of these instead.
next prev parent reply other threads:[~2019-10-01 23:41 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-01 11:10 Viacheslav Ovsiienko
2019-10-01 14:54 ` Stephen Hemminger
2019-10-01 17:15 ` Slava Ovsiienko
2019-10-01 23:41 ` Stephen Hemminger [this message]
2019-10-02 6:15 ` Slava Ovsiienko
2019-10-02 6:55 ` Slava Ovsiienko
2019-10-02 11:54 ` Ferruh Yigit
2019-10-02 12:40 ` Slava Ovsiienko
2019-10-02 6:08 ` [dpdk-dev] [PATCH v2] " Viacheslav Ovsiienko
2019-10-02 12:36 ` [dpdk-dev] [PATCH v3] " Viacheslav Ovsiienko
2019-10-02 16:19 ` Ferruh Yigit
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20191001164113.0ad0bec6@hermes.lan \
--to=stephen@networkplumber.org \
--cc=dev@dpdk.org \
--cc=ferruh.yigit@intel.com \
--cc=matan@mellanox.com \
--cc=rasland@mellanox.com \
--cc=viacheslavo@mellanox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).