When building DPDK on Windows in debug mode the following warning appear: warning: token pasting of ',' and __VA_ARGS__ is a GNU extension [-Wgnu-zero-variadic-macro-arguments] #define open(path, flags, ...) _open(path, flags, ##__VA_ARGS__) Modified the 'open' macro to avoid it. Fixes: 45d62067c237 ("eal: make OS shims internal") Cc: stable@dpdk.org Signed-off-by: Tal Shnaiderman <talshn@nvidia.com> --- lib/eal/windows/include/rte_os_shim.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/eal/windows/include/rte_os_shim.h b/lib/eal/windows/include/rte_os_shim.h index 33619745ab..eda8113662 100644 --- a/lib/eal/windows/include/rte_os_shim.h +++ b/lib/eal/windows/include/rte_os_shim.h @@ -25,7 +25,7 @@ #define strncasecmp(s1, s2, count) _strnicmp(s1, s2, count) #endif -#define open(path, flags, ...) _open(path, flags, ##__VA_ARGS__) +#define open(...) _open(__VA_ARGS__) #define read(fd, buf, n) _read(fd, buf, n) #define write(fd, buf, n) _write(fd, buf, n) #define close(fd) _close(fd) -- 2.16.1.windows.4
2021-09-13 19:55 (UTC+0300), Tal Shnaiderman: > When building DPDK on Windows in debug mode the following > warning appear: > > warning: token pasting of ',' and __VA_ARGS__ is a GNU extension > [-Wgnu-zero-variadic-macro-arguments] #define open(path, flags, ...) > _open(path, flags, ##__VA_ARGS__) > > Modified the 'open' macro to avoid it. Nit: "Modify" (present tense should be used here). > > Fixes: 45d62067c237 ("eal: make OS shims internal") > Cc: stable@dpdk.org > > Signed-off-by: Tal Shnaiderman <talshn@nvidia.com> > --- > lib/eal/windows/include/rte_os_shim.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/lib/eal/windows/include/rte_os_shim.h b/lib/eal/windows/include/rte_os_shim.h > index 33619745ab..eda8113662 100644 > --- a/lib/eal/windows/include/rte_os_shim.h > +++ b/lib/eal/windows/include/rte_os_shim.h > @@ -25,7 +25,7 @@ > #define strncasecmp(s1, s2, count) _strnicmp(s1, s2, count) > #endif > > -#define open(path, flags, ...) _open(path, flags, ##__VA_ARGS__) > +#define open(...) _open(__VA_ARGS__) > #define read(fd, buf, n) _read(fd, buf, n) > #define write(fd, buf, n) _write(fd, buf, n) > #define close(fd) _close(fd) Note: Three-argument form of open() is seldom used in DPDK and only once in OS-independent code. However, rte_os_shim.h can be included in platform-specific file and it should not prevent using 3-argument open(). This patch is probably the most simple and robust thing we can do. Acked-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
15/09/2021 21:25, Dmitry Kozlyuk:
> 2021-09-13 19:55 (UTC+0300), Tal Shnaiderman:
> > When building DPDK on Windows in debug mode the following
> > warning appear:
> >
> > warning: token pasting of ',' and __VA_ARGS__ is a GNU extension
> > [-Wgnu-zero-variadic-macro-arguments] #define open(path, flags, ...)
> > _open(path, flags, ##__VA_ARGS__)
> >
> > Modified the 'open' macro to avoid it.
>
> Nit: "Modify" (present tense should be used here).
>
> >
> > Fixes: 45d62067c237 ("eal: make OS shims internal")
> > Cc: stable@dpdk.org
> >
> > Signed-off-by: Tal Shnaiderman <talshn@nvidia.com>
> > ---
> > -#define open(path, flags, ...) _open(path, flags, ##__VA_ARGS__)
> > +#define open(...) _open(__VA_ARGS__)
>
> Note: Three-argument form of open() is seldom used in DPDK and only once
> in OS-independent code. However, rte_os_shim.h can be included
> in platform-specific file and it should not prevent using 3-argument open().
> This patch is probably the most simple and robust thing we can do.
>
> Acked-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com>
Applied, thanks.