From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by dpdk.org (Postfix) with ESMTP id 748E21B480; Thu, 31 Jan 2019 18:48:27 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 31 Jan 2019 09:48:26 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,545,1539673200"; d="scan'208";a="139581473" Received: from fmsmsx104.amr.corp.intel.com ([10.18.124.202]) by fmsmga002.fm.intel.com with ESMTP; 31 Jan 2019 09:48:26 -0800 Received: from fmsmsx120.amr.corp.intel.com (10.18.124.208) by fmsmsx104.amr.corp.intel.com (10.18.124.202) with Microsoft SMTP Server (TLS) id 14.3.408.0; Thu, 31 Jan 2019 09:48:26 -0800 Received: from fmsmsx117.amr.corp.intel.com ([169.254.3.160]) by fmsmsx120.amr.corp.intel.com ([169.254.15.173]) with mapi id 14.03.0415.000; Thu, 31 Jan 2019 09:48:25 -0800 From: "Wiles, Keith" To: Thomas Monjalon CC: "Menon, Ranjit" , Jason Messer , Harini Ramakrishnan , Omar Cardona , "dev@dpdk.org" , "Burakov, Anatoly" , "Richardson, Bruce" , Stephen Hemminger , =?Windows-1252?Q?Mattias_R=F6nnblom?= , "Shaw, Jeffrey B" , "techboard@dpdk.org" Thread-Topic: [dpdk-dev] Compiler for Windows Thread-Index: AQHUouztTEDGaeDZnky+KhBXWHLa2aWdnJ2AgAaTD4CAAFJVAIAABrKAgAAD3YCAAAYmgIAAAoAAgAACQwCAASFxgIAi1YUAgAAknoCAARdcboAAjM0A//99RQI= Date: Thu, 31 Jan 2019 17:48:25 +0000 Message-ID: <6623684E-B185-417F-9B0B-202564D4D7BA@intel.com> References: <7824863.MkUOD0j12R@xps> <7603DC8746F9FC4D82EF0929C467267A72BF89A7@ORSMSX110.amr.corp.intel.com> ,<36880913.VOJAp5zd9b@xps> In-Reply-To: <36880913.VOJAp5zd9b@xps> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: Content-Type: text/plain; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Subject: Re: [dpdk-dev] Compiler for 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: , X-List-Received-Date: Thu, 31 Jan 2019 17:48:28 -0000 OK just seems like an unnecessary step to me.=20 Sent from my iPhone > On Jan 31, 2019, at 11:36 AM, Thomas Monjalon wrote= : >=20 > 31/01/2019 18:12, Wiles, Keith: >> Sorry I have to top post. I had surgery on my shoulder so I=92m doing th= is from my phone.=20 >>=20 >> Why does the windows Eal directory have to be a stub?=20 >=20 > It is just a first step to validate the compilation of existing code > in Windows environment without the new Windows code. >=20 >> Normally the port must use a separate directory for different architectu= re. In this case it is the windows architecture which should have all of th= e changes required for windows and not modify Linux or BSD. >=20 > Yes I agree. This is the step 5 below: > 5/ EAL for Windows can be completed with real code >=20 >=20 >>> On Jan 30, 2019, at 10:32 AM, Menon, Ranjit wr= ote: >>>=20 >>> Thank you for the direction, Thomas and Tech Board members. >>>=20 >>> If clang-win64 has support for GCC extensions (__attribute(constructor/= align/etc...)), then the changes to common DPDK code should be minimal. Als= o, Jeff got meson to output VS project files to compile with MSVC - we'll j= ust need to make sure that they can compile with clang-win64. Thanks, Bruce= for helping us out here. >>>=20 >>> ranjit m. >>>=20 >>> -----Original Message----- >>> From: Thomas Monjalon =20 >>> Sent: Wednesday, January 30, 2019 6:21 AM >>> To: 'Jason Messer' ; 'Harini Ramakrishnan' ; 'Omar Cardona' ; Me= non, Ranjit >>> Cc: dev@dpdk.org; Burakov, Anatoly ; Richard= son, Bruce ; Stephen Hemminger ; 'Mattias R=F6nnblom' ; Shaw, J= effrey B ; techboard@dpdk.org >>> Subject: Re: [dpdk-dev] Compiler for Windows >>>=20 >>> 08/01/2019 11:24, Burakov, Anatoly: >>>>>> On 07-Jan-19 5:08 PM, Thomas Monjalon wrote: >>>>>> 07/01/2019 18:00, Bruce Richardson: >>>>>> I think for windows we probably want to start with the MS compiler=20 >>>>>> first, since from my understanding it's probably the default go-to=20 >>>>>> compiler for developers on windows, and look at alternatives from th= ere. >>>>>=20 >>>>> Not sure. I feel clang is a better option. >>>>> This is the purpose of this thread: which compiler can work with the= =20 >>>>> DPDK code base? Which modifications of code are acceptable? >>>>>=20 >>>>> Unfortunately we lost my original attempt of getting some facts. >>>>=20 >>>> i'm developing on a Windows machine, and use clang as code analyzer.=20 >>>> so while the compiling and linking may take some effort, the bulk of=20 >>>> it appears to be working without too much complaints from clang. it's= =20 >>>> easy to install as well - just install LLVM and you're good to go. >>>=20 >>> This discussion continued in a private thread (for no good reason). >>> Let's conclude here publicly. >>>=20 >>> About the compiler, >>> - cygwin is not native -> no go >>> - mingw-w64 (latest) brings a specific DLL -> one more unknown piece >>> - icc is not free -> no go >>> - msvc supports not all C99 and GNU extensions -> difficult to suppor= t >>> - clang is now native on Windows -> best choice >>> http://releases.llvm.org/7.0.1/LLVM-7.0.1-win64.exe >>>=20 >>> About the build system, >>> - DPDK makefiles are not Windows-friendly and will be removed >>> - meson is supported on Windows and can generate VS project >>> https://github.com/mesonbuild/meson/releases/download/0.49.1/meson-= 0.49.1-64.msi >>>=20 >>> About the Linux/BSD code, >>> - we can use some #ifdef >>> - most of the specific code should be in EAL >>> - it must be tried to share a maximum of common code >>>=20 >>> About the steps, >>> 1/ meson files must be prepared for Windows target >>> 2/ EAL for Windows must be an empty stub first >>> 3/ The core libraries must compile with meson+clang >>> 4/ Documentation for Windows must be started >>> 5/ EAL for Windows can be completed with real code >>> 6/ PMDs can be tested on Windows >>> 7/ Examples should compile on Windows >>>=20 >>> Please restart from a fresh 19.02 branch in the draft repository and su= bmit the steps one by one on the mailing list. >>> We need to validate the steps and approve the choices. >>> If some choices are done, they must be explained in the commit logs. >>> The commits must be small enough to be reviewed. >>> If some issues are encountered, we'll fix them as a community. >>>=20 >>> Thanks for facilitating community adoption of Windows port. >>>=20 >>>=20 >>=20 >=20 >=20 >=20 >=20 >=20