eal/windows: fix token pasting build warning
Checks
Commit Message
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(-)
Comments
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.
@@ -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)