eal/windows: fix token pasting build warning

Message ID 20210913165500.21636-1-talshn@nvidia.com (mailing list archive)
State Accepted, archived
Delegated to: Thomas Monjalon
Headers
Series eal/windows: fix token pasting build warning |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/github-robot: build success github build: passed
ci/iol-x86_64-unit-testing success Testing PASS
ci/iol-x86_64-compile-testing success Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-aarch64-compile-testing success Testing PASS
ci/Intel-compilation success Compilation OK
ci/intel-Testing fail Testing issues
ci/iol-intel-Performance success Performance Testing PASS

Commit Message

Tal Shnaiderman Sept. 13, 2021, 4:55 p.m. UTC
  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

Dmitry Kozlyuk Sept. 15, 2021, 7:25 p.m. UTC | #1
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>
  
Thomas Monjalon Sept. 23, 2021, 5:17 p.m. UTC | #2
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.
  

Patch

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)