[dpdk-dev] [PATCH] eal: fix warnings on Windows
Dmitry Kozlyuk
dmitry.kozliuk at gmail.com
Thu May 14 02:43:36 CEST 2020
On Wed, 13 May 2020 15:53:41 -0700 Pallavi Kadam wrote:
> This patch fixes bunch of warnings when compiling on Windows
> such as the use of an unsafe string function (strerror),
> [-Wunused-const-variable] in getopt.c and
> [-Wunused-variable], [-Wunused-function] in eal_common_options.c
>
> Signed-off-by: Ranjit Menon <ranjit.menon at intel.com>
> Signed-off-by: Pallavi Kadam <pallavi.kadam at intel.com>
> Tested-by: Pallavi Kadam <pallavi.kadam at intel.com>
> ---
> lib/librte_eal/common/eal_common_options.c | 6 +++++-
> lib/librte_eal/windows/getopt.c | 4 ++--
> 2 files changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/lib/librte_eal/common/eal_common_options.c
> b/lib/librte_eal/common/eal_common_options.c index
> 8f2cbd1c6..2efbf59e4 100644 ---
> a/lib/librte_eal/common/eal_common_options.c +++
> b/lib/librte_eal/common/eal_common_options.c @@ -115,8 +115,10 @@
> struct shared_driver { static struct shared_driver_list solib_list =
> TAILQ_HEAD_INITIALIZER(solib_list);
>
> +#ifndef RTE_EXEC_ENV_WINDOWS
> /* Default path of external loadable drivers */
> static const char *default_solib_dir = RTE_EAL_PMD_PATH;
> +#endif
>
> /*
> * Stringified version of solib path used by dpdk-pmdinfo.py
> @@ -329,6 +331,7 @@ eal_plugin_add(const char *path)
> return 0;
> }
>
> +#ifndef RTE_EXEC_ENV_WINDOWS
> static int
> eal_plugindir_init(const char *path)
> {
> @@ -362,6 +365,7 @@ eal_plugindir_init(const char *path)
> /* XXX this ignores failures from readdir() itself */
> return (dent == NULL) ? 0 : -1;
> }
> +#endif
This causes different warnings:
In file included from ../../../lib/librte_eal/common/eal_common_options.c:21:
At top level:
../../../lib/librte_eal/windows/include/dirent.h:529:1: warning: 'closedir' defined but not used [-Wunused-function]
529 | closedir(DIR *dirp)
| ^~~~~~~~
../../../lib/librte_eal/windows/include/dirent.h:447:1: warning: 'readdir' defined but not used [-Wunused-function]
447 | readdir(DIR *dirp)
| ^~~~~~~
../../../lib/librte_eal/windows/include/dirent.h:377:1: warning: 'opendir' defined but not used [-Wunused-function]
377 | opendir(const char *dirname)
| ^~~~~~~
Suggesting not to include <dirent.h> to this file on Windows (this
makes dirent.h unused in EAL, but other code will require it later).
>
> int
> eal_plugins_init(void)
> @@ -394,8 +398,8 @@ eal_plugins_init(void)
> }
>
> }
> - return 0;
> #endif
> + return 0;
> }
>
> /*
> diff --git a/lib/librte_eal/windows/getopt.c
> b/lib/librte_eal/windows/getopt.c index 170c9b5e0..a08f7c109 100644
> --- a/lib/librte_eal/windows/getopt.c
> +++ b/lib/librte_eal/windows/getopt.c
> @@ -25,8 +25,8 @@ int opterr = 1; /* if error
> message should be printed */ int optind = 1; /*
> index into parent argv vector */ int optopt = '?';
> /* character checked for validity */
> -static void pass(void) {}
> -#define warnx(a, ...) pass()
> +static void pass(const char *a) {(void) a; }
> +#define warnx(a, ...) pass(a)
>
> #define PRINT_ERROR ((opterr) && (*options != ':'))
>
Testing with MinGW-w64 (Ubuntu 19.10, package 6.0.0-3, GCC 9.2.1)
reveals additional warnings. Never mind fixing them in a separate patch
to avoid blocking this one. For the record:
../../../lib/librte_eal/common/eal_common_thread.c:180:25: warning: unused parameter 'attr' [-Wunused-parameter]
../../../lib/librte_eal/windows/eal_lcore.c:30:1: warning: old-style function definition [-Wold-style-definition]
30 | eal_create_cpu_map()
../../../lib/librte_eal/windows/eal_thread.c:149:29: warning: cast between incompatible function types from '__attribute__((noreturn)) void * (*)(void *)' to 'DWORD (*)(void *)' {aka 'long unsigned int (*)(void * '} [-Wcast-function-type]
149 | th = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)eal_thread_loop,
../../../lib/librte_eal/windows/eal.c:144:1: warning: 'optnone' attribute directive ignored [-Wattributes]
../../../lib/librte_eal/common/eal_common_options.c: In function 'eal_adjust_config':
../../../lib/librte_eal/windows/include/sched.h:63:55: warning: 'default_set._bits[1]' may be used uninitialized in this function [-Wmaybe-uninitialized]
63 | (dst)->_bits[_i] = (src1)->_bits[_i] & (src2)->_bits[_i]; \
--
Dmitry Kozlyuk
More information about the dev
mailing list