From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id A2251A00C3; Thu, 14 May 2020 03:24:22 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 48C2B1D667; Thu, 14 May 2020 03:24:22 +0200 (CEST) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by dpdk.org (Postfix) with ESMTP id 626691D665 for ; Thu, 14 May 2020 03:24:20 +0200 (CEST) IronPort-SDR: Nvo3WnmeWb3QiQ3cvMghGsKYAKo7FyUgzNUmXEg1IlDbkfDoGLJPxx2M6wZ/Urxs9Bea3QnSpr X1LnS1ID2bWQ== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 May 2020 18:24:19 -0700 IronPort-SDR: g3l4uIpbZAbC4P8/wQlG9iaHvJRyNOMn67xHSjIP/NxQpRjZmB0FQNBFHozQLvH+310JDBgveE O7MC07qmrN1Q== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,389,1583222400"; d="scan'208";a="266072081" Received: from rmenon-mobl.amr.corp.intel.com (HELO [10.212.242.59]) ([10.212.242.59]) by orsmga006.jf.intel.com with ESMTP; 13 May 2020 18:24:19 -0700 To: Dmitry Kozlyuk , Pallavi Kadam Cc: dev@dpdk.org, thomas@monjalon.net References: <20200513225341.7620-1-pallavi.kadam@intel.com> <20200514034336.77a02b8b@sovereign> From: Ranjit Menon Message-ID: Date: Wed, 13 May 2020 18:24:18 -0700 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 MIME-Version: 1.0 In-Reply-To: <20200514034336.77a02b8b@sovereign> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Subject: Re: [dpdk-dev] [PATCH] eal: fix warnings on Windows X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 5/13/2020 5:43 PM, Dmitry Kozlyuk wrote: > 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 >> Signed-off-by: Pallavi Kadam >> Tested-by: Pallavi Kadam >> --- >> 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 to this file on Windows (this > makes dirent.h unused in EAL, but other code will require it later). > Yes. We saw this too and realized that if we put a #ifndef RTE_EXEC_ENV_WINDOWS around the #include of dirent.h, it would render the file as being unused. But, I think it makes sense to do it - better than having these warnings. >> >> 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 > Yes, we can address this in a separate patch. ranjit m.