DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] Compiler for Windows
@ 2019-01-02 22:45 Thomas Monjalon
  2019-01-03  6:33 ` Stephen Hemminger
  0 siblings, 1 reply; 23+ messages in thread
From: Thomas Monjalon @ 2019-01-02 22:45 UTC (permalink / raw)
  To: Jason Messer, Harini Ramakrishnan, Omar Cardona, Ranjit Menon
  Cc: Mattias Rönnblom, Jeff Shaw, stephen, dev

Hi,

We need to gather inputs about the pros/cons of the C compilers
available for Windows.
Interesting criterias could be:
	- ease of use
	- availability
	- standards compliance
	- performance

When the comparison will be complete, we should publish it
in the doc/ directory, while porting DPDK to Windows.

I start with few data:

* gcc|clang on cygwin
	- not native

* gcc/mingw

* gcc/mingw-w64

* clang/mingw-w64

* clang --target=x86_64-windows-msvc

* icc
	- not freely available

* msvc
	- native
	- specific command line
	- not C99

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [dpdk-dev] Compiler for Windows
  2019-01-02 22:45 [dpdk-dev] Compiler for Windows Thomas Monjalon
@ 2019-01-03  6:33 ` Stephen Hemminger
  2019-01-03 17:10   ` Jason Messer
  2019-01-07 10:56   ` Burakov, Anatoly
  0 siblings, 2 replies; 23+ messages in thread
From: Stephen Hemminger @ 2019-01-03  6:33 UTC (permalink / raw)
  To: 'Thomas Monjalon', 'Jason Messer',
	'Harini Ramakrishnan', 'Omar Cardona',
	'Ranjit Menon'
  Cc: 'Mattias Rönnblom', 'Jeff Shaw', dev

What about Gcc under the WSL thing (ie Linux emulation in Windows).
Much better than Cygwin type stuff.


-----Original Message-----
From: Thomas Monjalon <thomas@monjalon.net> 
Sent: Wednesday, January 2, 2019 2:45 PM
To: Jason Messer <jmesser@microsoft.com>; Harini Ramakrishnan
<harini.ramakrishnan@microsoft.com>; Omar Cardona <ocardona@microsoft.com>;
Ranjit Menon <ranjit.menon@intel.com>
Cc: Mattias Rönnblom <mattias.ronnblom@ericsson.com>; Jeff Shaw
<jeffrey.b.shaw@intel.com>; stephen@networkplumber.org; dev@dpdk.org
Subject: Compiler for Windows

Hi,

We need to gather inputs about the pros/cons of the C compilers
available for Windows.
Interesting criterias could be:
	- ease of use
	- availability
	- standards compliance
	- performance

When the comparison will be complete, we should publish it
in the doc/ directory, while porting DPDK to Windows.

I start with few data:

* gcc|clang on cygwin
	- not native

* gcc/mingw

* gcc/mingw-w64

* clang/mingw-w64

* clang --target=x86_64-windows-msvc

* icc
	- not freely available

* msvc
	- native
	- specific command line
	- not C99

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [dpdk-dev] Compiler for Windows
  2019-01-03  6:33 ` Stephen Hemminger
@ 2019-01-03 17:10   ` Jason Messer
  2019-01-03 17:32     ` Thomas Monjalon
  2019-01-03 22:46     ` Wiles, Keith
  2019-01-07 10:56   ` Burakov, Anatoly
  1 sibling, 2 replies; 23+ messages in thread
From: Jason Messer @ 2019-01-03 17:10 UTC (permalink / raw)
  To: Stephen Hemminger, 'Thomas Monjalon',
	Harini Ramakrishnan, Omar Cardona, 'Ranjit Menon'
  Cc: 'Mattias Rönnblom', 'Jeff Shaw',
	dev, Jeffrey Tippet, Deval, Manasi

+Jeffrey, Manasi

We will get the most traction from the Windows developer community if we use msvc. The only thing preventing that last time was GNU extensions used in DPDK source which were not ISO C standards compliant. We were also experimenting with Clang/LLVM running natively on Windows host but ran into a bunch of issues (maybe others made further progress?). GCC using Windows Subsystem for Linux (WSL) would be an interesting option and could be a secondary option for MSVC for Windows developers.

Jason

-----Original Message-----
From: Stephen Hemminger <stephen@networkplumber.org> 
Sent: Wednesday, January 2, 2019 10:33 PM
To: 'Thomas Monjalon' <thomas@monjalon.net>; Jason Messer <jmesser@microsoft.com>; Harini Ramakrishnan <Harini.Ramakrishnan@microsoft.com>; Omar Cardona <ocardona@microsoft.com>; 'Ranjit Menon' <ranjit.menon@intel.com>
Cc: 'Mattias Rönnblom' <mattias.ronnblom@ericsson.com>; 'Jeff Shaw' <jeffrey.b.shaw@intel.com>; dev@dpdk.org
Subject: RE: Compiler for Windows

What about Gcc under the WSL thing (ie Linux emulation in Windows).
Much better than Cygwin type stuff.


-----Original Message-----
From: Thomas Monjalon <thomas@monjalon.net>
Sent: Wednesday, January 2, 2019 2:45 PM
To: Jason Messer <jmesser@microsoft.com>; Harini Ramakrishnan <harini.ramakrishnan@microsoft.com>; Omar Cardona <ocardona@microsoft.com>; Ranjit Menon <ranjit.menon@intel.com>
Cc: Mattias Rönnblom <mattias.ronnblom@ericsson.com>; Jeff Shaw <jeffrey.b.shaw@intel.com>; stephen@networkplumber.org; dev@dpdk.org
Subject: Compiler for Windows

Hi,

We need to gather inputs about the pros/cons of the C compilers available for Windows.
Interesting criterias could be:
	- ease of use
	- availability
	- standards compliance
	- performance

When the comparison will be complete, we should publish it in the doc/ directory, while porting DPDK to Windows.

I start with few data:

* gcc|clang on cygwin
	- not native

* gcc/mingw

* gcc/mingw-w64

* clang/mingw-w64

* clang --target=x86_64-windows-msvc

* icc
	- not freely available

* msvc
	- native
	- specific command line
	- not C99

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [dpdk-dev] Compiler for Windows
  2019-01-03 17:10   ` Jason Messer
@ 2019-01-03 17:32     ` Thomas Monjalon
  2019-01-03 22:46     ` Wiles, Keith
  1 sibling, 0 replies; 23+ messages in thread
From: Thomas Monjalon @ 2019-01-03 17:32 UTC (permalink / raw)
  To: Jason Messer
  Cc: Stephen Hemminger, Harini Ramakrishnan, Omar Cardona,
	'Ranjit Menon', 'Mattias Rönnblom',
	'Jeff Shaw',
	dev, Jeffrey Tippet, Deval, Manasi

Hi Jason,

We need to get facts in order to do a good decision.
Please, let's give detailed feedback for each option.

03/01/2019 18:10, Jason Messer:
> +Jeffrey, Manasi
> 
> We will get the most traction from the Windows developer community
> if we use msvc. The only thing preventing that last time was
> GNU extensions used in DPDK source which were not ISO C standards
> compliant.

I think the main issue is that MSVC is not C99 compliant.

> We were also experimenting with Clang/LLVM running natively on Windows
> host but ran into a bunch of issues (maybe others made further progress?).

Chromium is built with clang on Windows, so I wonder what prevents us
to use it?

> GCC using Windows Subsystem for Linux (WSL) would be an interesting
> option and could be a secondary option for MSVC for Windows developers.

I thought GCC on WSL would build a Linux binary?
Can we build a Windows native binary with it?

What about mingw-w64? Is there any drawback?


> From: Stephen Hemminger <stephen@networkplumber.org> 
> > What about Gcc under the WSL thing (ie Linux emulation in Windows).
> > Much better than Cygwin type stuff.
> > 
> > From: Thomas Monjalon <thomas@monjalon.net>
> > > Hi,
> > > 
> > > We need to gather inputs about the pros/cons of the C compilers
> > > available for Windows.
> > > 
> > > Interesting criterias could be:
> > > 	- ease of use
> > > 	- availability
> > > 	- standards compliance
> > > 	- performance
> > > 
> > > When the comparison will be complete, we should publish it in the doc/
> > > directory, while porting DPDK to Windows.
> > > 
> > > I start with few data:
> > > 
> > > * gcc|clang on cygwin
> > > 
> > > 	- not native
> > > 
> > > * gcc/mingw
> > > 
> > > * gcc/mingw-w64
> > > 
> > > * clang/mingw-w64
> > > 
> > > * clang --target=x86_64-windows-msvc
> > > 
> > > * icc
> > > 
> > > 	- not freely available
> > > 
> > > * msvc
> > > 
> > > 	- native
> > > 	- specific command line
> > > 	- not C99

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [dpdk-dev] Compiler for Windows
  2019-01-03 17:10   ` Jason Messer
  2019-01-03 17:32     ` Thomas Monjalon
@ 2019-01-03 22:46     ` Wiles, Keith
  1 sibling, 0 replies; 23+ messages in thread
From: Wiles, Keith @ 2019-01-03 22:46 UTC (permalink / raw)
  To: Jason Messer
  Cc: Stephen Hemminger, Thomas Monjalon, Harini Ramakrishnan,
	Omar Cardona, Menon, Ranjit, Mattias Rönnblom, Shaw,
	Jeffrey B, dev, Jeffrey Tippet, Deval, Manasi



> On Jan 3, 2019, at 11:10 AM, Jason Messer <jmesser@microsoft.com> wrote:
> 
> +Jeffrey, Manasi
> 
> We will get the most traction from the Windows developer community if we use msvc. The only thing preventing that last time was GNU extensions used in DPDK source which were not ISO C standards compliant. We were also experimenting with Clang/LLVM running natively on Windows host but ran into a bunch of issues (maybe others made further progress?). GCC using Windows Subsystem for Linux (WSL) would be an interesting option and could be a secondary option for MSVC for Windows developers.
> 

I thought the constructor/deconstructor support is also not in MSVC. We use constructors a lot in DPDK and creating a method to remove them from DPDK is going to be a fair amount of work. Adding function calls to an init routine is not a good option.
> Jason
> 
> -----Original Message-----
> From: Stephen Hemminger <stephen@networkplumber.org> 
> Sent: Wednesday, January 2, 2019 10:33 PM
> To: 'Thomas Monjalon' <thomas@monjalon.net>; Jason Messer <jmesser@microsoft.com>; Harini Ramakrishnan <Harini.Ramakrishnan@microsoft.com>; Omar Cardona <ocardona@microsoft.com>; 'Ranjit Menon' <ranjit.menon@intel.com>
> Cc: 'Mattias Rönnblom' <mattias.ronnblom@ericsson.com>; 'Jeff Shaw' <jeffrey.b.shaw@intel.com>; dev@dpdk.org
> Subject: RE: Compiler for Windows
> 
> What about Gcc under the WSL thing (ie Linux emulation in Windows).
> Much better than Cygwin type stuff.
> 
> 
> -----Original Message-----
> From: Thomas Monjalon <thomas@monjalon.net>
> Sent: Wednesday, January 2, 2019 2:45 PM
> To: Jason Messer <jmesser@microsoft.com>; Harini Ramakrishnan <harini.ramakrishnan@microsoft.com>; Omar Cardona <ocardona@microsoft.com>; Ranjit Menon <ranjit.menon@intel.com>
> Cc: Mattias Rönnblom <mattias.ronnblom@ericsson.com>; Jeff Shaw <jeffrey.b.shaw@intel.com>; stephen@networkplumber.org; dev@dpdk.org
> Subject: Compiler for Windows
> 
> Hi,
> 
> We need to gather inputs about the pros/cons of the C compilers available for Windows.
> Interesting criterias could be:
> 	- ease of use
> 	- availability
> 	- standards compliance
> 	- performance
> 
> When the comparison will be complete, we should publish it in the doc/ directory, while porting DPDK to Windows.
> 
> I start with few data:
> 
> * gcc|clang on cygwin
> 	- not native
> 
> * gcc/mingw
> 
> * gcc/mingw-w64
> 
> * clang/mingw-w64
> 
> * clang --target=x86_64-windows-msvc
> 
> * icc
> 	- not freely available
> 
> * msvc
> 	- native
> 	- specific command line
> 	- not C99
> 
> 
> 
> 

Regards,
Keith


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [dpdk-dev] Compiler for Windows
  2019-01-03  6:33 ` Stephen Hemminger
  2019-01-03 17:10   ` Jason Messer
@ 2019-01-07 10:56   ` Burakov, Anatoly
  2019-01-07 15:51     ` Stephen Hemminger
  1 sibling, 1 reply; 23+ messages in thread
From: Burakov, Anatoly @ 2019-01-07 10:56 UTC (permalink / raw)
  To: Stephen Hemminger, 'Thomas Monjalon',
	'Jason Messer', 'Harini Ramakrishnan',
	'Omar Cardona', 'Ranjit Menon'
  Cc: 'Mattias Rönnblom', 'Jeff Shaw', dev

On 03-Jan-19 6:33 AM, Stephen Hemminger wrote:
> What about Gcc under the WSL thing (ie Linux emulation in Windows).
> Much better than Cygwin type stuff.
> 

WSL is dog-slow with any kind of disk I/O, at least currently, so while 
i do use WSL to fool my IDE into thinking it's running on Linux, the 
actual compilation user experience is horrible.

-- 
Thanks,
Anatoly

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [dpdk-dev] Compiler for Windows
  2019-01-07 10:56   ` Burakov, Anatoly
@ 2019-01-07 15:51     ` Stephen Hemminger
  2019-01-07 16:15       ` Bruce Richardson
  0 siblings, 1 reply; 23+ messages in thread
From: Stephen Hemminger @ 2019-01-07 15:51 UTC (permalink / raw)
  To: Burakov, Anatoly
  Cc: 'Thomas Monjalon', 'Jason Messer',
	'Harini Ramakrishnan', 'Omar Cardona',
	'Ranjit Menon', 'Mattias Rönnblom',
	'Jeff Shaw',
	dev

On Mon, 7 Jan 2019 10:56:57 +0000
"Burakov, Anatoly" <anatoly.burakov@intel.com> wrote:

> On 03-Jan-19 6:33 AM, Stephen Hemminger wrote:
> > What about Gcc under the WSL thing (ie Linux emulation in Windows).
> > Much better than Cygwin type stuff.
> >   
> 
> WSL is dog-slow with any kind of disk I/O, at least currently, so while 
> i do use WSL to fool my IDE into thinking it's running on Linux, the 
> actual compilation user experience is horrible.
> 

The newest version uses Hyper-V to run Linux kernel in VM and is better.
Probably all still has issues with translation to NTFS.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [dpdk-dev] Compiler for Windows
  2019-01-07 15:51     ` Stephen Hemminger
@ 2019-01-07 16:15       ` Bruce Richardson
  2019-01-07 16:29         ` Burakov, Anatoly
  0 siblings, 1 reply; 23+ messages in thread
From: Bruce Richardson @ 2019-01-07 16:15 UTC (permalink / raw)
  To: Stephen Hemminger
  Cc: Burakov, Anatoly, 'Thomas Monjalon',
	'Jason Messer', 'Harini Ramakrishnan',
	'Omar Cardona', 'Ranjit Menon',
	'Mattias Rönnblom', 'Jeff Shaw',
	dev

On Mon, Jan 07, 2019 at 07:51:38AM -0800, Stephen Hemminger wrote:
> On Mon, 7 Jan 2019 10:56:57 +0000
> "Burakov, Anatoly" <anatoly.burakov@intel.com> wrote:
> 
> > On 03-Jan-19 6:33 AM, Stephen Hemminger wrote:
> > > What about Gcc under the WSL thing (ie Linux emulation in Windows).
> > > Much better than Cygwin type stuff.
> > >   
> > 
> > WSL is dog-slow with any kind of disk I/O, at least currently, so while 
> > i do use WSL to fool my IDE into thinking it's running on Linux, the 
> > actual compilation user experience is horrible.
> > 
> 
> The newest version uses Hyper-V to run Linux kernel in VM and is better.
> Probably all still has issues with translation to NTFS.

But is running that going to produce windows binaries rather than linux
ones?

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [dpdk-dev] Compiler for Windows
  2019-01-07 16:15       ` Bruce Richardson
@ 2019-01-07 16:29         ` Burakov, Anatoly
  2019-01-07 16:51           ` Stephen Hemminger
  0 siblings, 1 reply; 23+ messages in thread
From: Burakov, Anatoly @ 2019-01-07 16:29 UTC (permalink / raw)
  To: Bruce Richardson, Stephen Hemminger
  Cc: 'Thomas Monjalon', 'Jason Messer',
	'Harini Ramakrishnan', 'Omar Cardona',
	'Ranjit Menon', 'Mattias Rönnblom',
	'Jeff Shaw',
	dev

On 07-Jan-19 4:15 PM, Bruce Richardson wrote:
> On Mon, Jan 07, 2019 at 07:51:38AM -0800, Stephen Hemminger wrote:
>> On Mon, 7 Jan 2019 10:56:57 +0000
>> "Burakov, Anatoly" <anatoly.burakov@intel.com> wrote:
>>
>>> On 03-Jan-19 6:33 AM, Stephen Hemminger wrote:
>>>> What about Gcc under the WSL thing (ie Linux emulation in Windows).
>>>> Much better than Cygwin type stuff.
>>>>    
>>>
>>> WSL is dog-slow with any kind of disk I/O, at least currently, so while
>>> i do use WSL to fool my IDE into thinking it's running on Linux, the
>>> actual compilation user experience is horrible.
>>>
>>
>> The newest version uses Hyper-V to run Linux kernel in VM and is better.
>> Probably all still has issues with translation to NTFS.

Yes, but it takes a while for "newest versions" to trickle down on our 
dev machines :)

> 
> But is running that going to produce windows binaries rather than linux
> ones?
> 

I believe it's producing Linux binaries, not Windows ones. So probably a 
non-starter.

-- 
Thanks,
Anatoly

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [dpdk-dev] Compiler for Windows
  2019-01-07 16:29         ` Burakov, Anatoly
@ 2019-01-07 16:51           ` Stephen Hemminger
  2019-01-07 17:00             ` Bruce Richardson
  2019-01-07 17:00             ` Thomas Monjalon
  0 siblings, 2 replies; 23+ messages in thread
From: Stephen Hemminger @ 2019-01-07 16:51 UTC (permalink / raw)
  To: Burakov, Anatoly
  Cc: Bruce Richardson, 'Thomas Monjalon',
	'Jason Messer', 'Harini Ramakrishnan',
	'Omar Cardona', 'Ranjit Menon',
	'Mattias Rönnblom', 'Jeff Shaw',
	dev

On Mon, 7 Jan 2019 16:29:25 +0000
"Burakov, Anatoly" <anatoly.burakov@intel.com> wrote:

> On 07-Jan-19 4:15 PM, Bruce Richardson wrote:
> > On Mon, Jan 07, 2019 at 07:51:38AM -0800, Stephen Hemminger wrote:  
> >> On Mon, 7 Jan 2019 10:56:57 +0000
> >> "Burakov, Anatoly" <anatoly.burakov@intel.com> wrote:
> >>  
> >>> On 03-Jan-19 6:33 AM, Stephen Hemminger wrote:  
> >>>> What about Gcc under the WSL thing (ie Linux emulation in Windows).
> >>>> Much better than Cygwin type stuff.
> >>>>      
> >>>
> >>> WSL is dog-slow with any kind of disk I/O, at least currently, so while
> >>> i do use WSL to fool my IDE into thinking it's running on Linux, the
> >>> actual compilation user experience is horrible.
> >>>  
> >>
> >> The newest version uses Hyper-V to run Linux kernel in VM and is better.
> >> Probably all still has issues with translation to NTFS.  
> 
> Yes, but it takes a while for "newest versions" to trickle down on our 
> dev machines :)
> 
> > 
> > But is running that going to produce windows binaries rather than linux
> > ones?
> >   
> 
> I believe it's producing Linux binaries, not Windows ones. So probably a 
> non-starter.
> 

It would produce Linux binaries. It should be possible to convince it to do
Windows binaries some how. Just hoping there was a way to build DPDK
with standard tools and not having to use cygwin.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [dpdk-dev] Compiler for Windows
  2019-01-07 16:51           ` Stephen Hemminger
@ 2019-01-07 17:00             ` Bruce Richardson
  2019-01-07 17:08               ` Thomas Monjalon
  2019-01-08 12:51               ` Morten Brørup
  2019-01-07 17:00             ` Thomas Monjalon
  1 sibling, 2 replies; 23+ messages in thread
From: Bruce Richardson @ 2019-01-07 17:00 UTC (permalink / raw)
  To: Stephen Hemminger
  Cc: Burakov, Anatoly, 'Thomas Monjalon',
	'Jason Messer', 'Harini Ramakrishnan',
	'Omar Cardona', 'Ranjit Menon',
	'Mattias Rönnblom', 'Jeff Shaw',
	dev

On Mon, Jan 07, 2019 at 08:51:25AM -0800, Stephen Hemminger wrote:
> On Mon, 7 Jan 2019 16:29:25 +0000
> "Burakov, Anatoly" <anatoly.burakov@intel.com> wrote:
> 
> > On 07-Jan-19 4:15 PM, Bruce Richardson wrote:
> > > On Mon, Jan 07, 2019 at 07:51:38AM -0800, Stephen Hemminger wrote:  
> > >> On Mon, 7 Jan 2019 10:56:57 +0000
> > >> "Burakov, Anatoly" <anatoly.burakov@intel.com> wrote:
> > >>  
> > >>> On 03-Jan-19 6:33 AM, Stephen Hemminger wrote:  
> > >>>> What about Gcc under the WSL thing (ie Linux emulation in Windows).
> > >>>> Much better than Cygwin type stuff.
> > >>>>      
> > >>>
> > >>> WSL is dog-slow with any kind of disk I/O, at least currently, so while
> > >>> i do use WSL to fool my IDE into thinking it's running on Linux, the
> > >>> actual compilation user experience is horrible.
> > >>>  
> > >>
> > >> The newest version uses Hyper-V to run Linux kernel in VM and is better.
> > >> Probably all still has issues with translation to NTFS.  
> > 
> > Yes, but it takes a while for "newest versions" to trickle down on our 
> > dev machines :)
> > 
> > > 
> > > But is running that going to produce windows binaries rather than linux
> > > ones?
> > >   
> > 
> > I believe it's producing Linux binaries, not Windows ones. So probably a 
> > non-starter.
> > 
> 
> It would produce Linux binaries. It should be possible to convince it to do
> Windows binaries some how. Just hoping there was a way to build DPDK
> with standard tools and not having to use cygwin.

I think for windows we probably want to start with the MS compiler first,
since from my understanding it's probably the default go-to compiler for
developers on windows, and look at alternatives from there. 

/Bruce

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [dpdk-dev] Compiler for Windows
  2019-01-07 16:51           ` Stephen Hemminger
  2019-01-07 17:00             ` Bruce Richardson
@ 2019-01-07 17:00             ` Thomas Monjalon
  1 sibling, 0 replies; 23+ messages in thread
From: Thomas Monjalon @ 2019-01-07 17:00 UTC (permalink / raw)
  To: Stephen Hemminger
  Cc: Burakov, Anatoly, Bruce Richardson, 'Jason Messer',
	'Harini Ramakrishnan', 'Omar Cardona',
	'Ranjit Menon', 'Mattias Rönnblom',
	'Jeff Shaw',
	dev

07/01/2019 17:51, Stephen Hemminger:
> On Mon, 7 Jan 2019 16:29:25 +0000
> "Burakov, Anatoly" <anatoly.burakov@intel.com> wrote:
> 
> > On 07-Jan-19 4:15 PM, Bruce Richardson wrote:
> > > On Mon, Jan 07, 2019 at 07:51:38AM -0800, Stephen Hemminger wrote:  
> > >> On Mon, 7 Jan 2019 10:56:57 +0000
> > >> "Burakov, Anatoly" <anatoly.burakov@intel.com> wrote:
> > >>  
> > >>> On 03-Jan-19 6:33 AM, Stephen Hemminger wrote:  
> > >>>> What about Gcc under the WSL thing (ie Linux emulation in Windows).
> > >>>> Much better than Cygwin type stuff.
> > >>>>      
> > >>>
> > >>> WSL is dog-slow with any kind of disk I/O, at least currently, so while
> > >>> i do use WSL to fool my IDE into thinking it's running on Linux, the
> > >>> actual compilation user experience is horrible.
> > >>>  
> > >>
> > >> The newest version uses Hyper-V to run Linux kernel in VM and is better.
> > >> Probably all still has issues with translation to NTFS.  
> > 
> > Yes, but it takes a while for "newest versions" to trickle down on our 
> > dev machines :)
> > 
> > > 
> > > But is running that going to produce windows binaries rather than linux
> > > ones?
> > >   
> > 
> > I believe it's producing Linux binaries, not Windows ones. So probably a 
> > non-starter.
> > 
> 
> It would produce Linux binaries. It should be possible to convince it to do
> Windows binaries some how. Just hoping there was a way to build DPDK
> with standard tools and not having to use cygwin.

I believe the right way is to compile from a Windows machine.
In this thread, I would like to discuss how to compile on Windows.
"Cross" compilation from Linux is also interesting but probably more tricky.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [dpdk-dev] Compiler for Windows
  2019-01-07 17:00             ` Bruce Richardson
@ 2019-01-07 17:08               ` Thomas Monjalon
  2019-01-08 10:24                 ` Burakov, Anatoly
  2019-01-08 12:51               ` Morten Brørup
  1 sibling, 1 reply; 23+ messages in thread
From: Thomas Monjalon @ 2019-01-07 17:08 UTC (permalink / raw)
  To: Bruce Richardson
  Cc: Stephen Hemminger, Burakov, Anatoly, 'Jason Messer',
	'Harini Ramakrishnan', 'Omar Cardona',
	'Ranjit Menon', 'Mattias Rönnblom',
	'Jeff Shaw',
	dev

07/01/2019 18:00, Bruce Richardson:
> I think for windows we probably want to start with the MS compiler first,
> since from my understanding it's probably the default go-to compiler for
> developers on windows, and look at alternatives from there. 

Not sure. I feel clang is a better option.
This is the purpose of this thread: which compiler can work
with the DPDK code base? Which modifications of code are acceptable?

Unfortunately we lost my original attempt of getting some facts.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [dpdk-dev] Compiler for Windows
  2019-01-07 17:08               ` Thomas Monjalon
@ 2019-01-08 10:24                 ` Burakov, Anatoly
  2019-01-30 14:21                   ` Thomas Monjalon
  0 siblings, 1 reply; 23+ messages in thread
From: Burakov, Anatoly @ 2019-01-08 10:24 UTC (permalink / raw)
  To: Thomas Monjalon, Bruce Richardson
  Cc: Stephen Hemminger, 'Jason Messer',
	'Harini Ramakrishnan', 'Omar Cardona',
	'Ranjit Menon', 'Mattias Rönnblom',
	'Jeff Shaw',
	dev

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 first,
>> since from my understanding it's probably the default go-to compiler for
>> developers on windows, and look at alternatives from there.
> 
> Not sure. I feel clang is a better option.
> This is the purpose of this thread: which compiler can work
> with the DPDK code base? Which modifications of code are acceptable?
> 
> Unfortunately we lost my original attempt of getting some facts.
> 

i'm developing on a Windows machine, and use clang as code analyzer. so 
while the compiling and linking may take some effort, the bulk of it 
appears to be working without too much complaints from clang. it's easy 
to install as well - just install LLVM and you're good to go.

-- 
Thanks,
Anatoly

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [dpdk-dev] Compiler for Windows
  2019-01-07 17:00             ` Bruce Richardson
  2019-01-07 17:08               ` Thomas Monjalon
@ 2019-01-08 12:51               ` Morten Brørup
  2019-01-08 14:10                 ` Mattias Rönnblom
  1 sibling, 1 reply; 23+ messages in thread
From: Morten Brørup @ 2019-01-08 12:51 UTC (permalink / raw)
  To: Bruce Richardson, Stephen Hemminger
  Cc: Burakov, Anatoly, Thomas Monjalon, Jason Messer,
	Harini Ramakrishnan, Omar Cardona, Ranjit Menon,
	Mattias Rönnblom, Jeff Shaw, dev

> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Bruce Richardson
> I think for windows we probably want to start with the MS compiler
> first,
> since from my understanding it's probably the default go-to compiler
> for
> developers on windows, and look at alternatives from there.
> 
> /Bruce

Having developed quite a bit in Windows myself (about a decade ago), I tend to agree with Bruce here. However, I would add that it depends on who we are targeting:

If we are targeting typical Windows developers (of all levels of experience), it's my impression that Microsoft's compiler IDE, Visual Studio (or Visual Studio Code), is their tool of choice, and anything else would introduce a learning curve. (This is probably more true for junior developers than senior developers, who often have worked in a range of different development environments.)

If we are targeting developers who want to make their applications compatible across multiple operating systems, any compiler would probably work just fine - and in this case, the real question is about making the "make" environment as cross-platform compatible as possible.

Maybe you can get inspiration by looking at other cross-platform projects... Google Chrome, Mozilla Firefox, Wireshark, etc.


Med venlig hilsen / kind regards
- Morten Brørup


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [dpdk-dev] Compiler for Windows
  2019-01-08 12:51               ` Morten Brørup
@ 2019-01-08 14:10                 ` Mattias Rönnblom
  0 siblings, 0 replies; 23+ messages in thread
From: Mattias Rönnblom @ 2019-01-08 14:10 UTC (permalink / raw)
  To: Morten Brørup, Bruce Richardson, Stephen Hemminger
  Cc: Burakov, Anatoly, Thomas Monjalon, Jason Messer,
	Harini Ramakrishnan, Omar Cardona, Ranjit Menon, Jeff Shaw, dev

On 2019-01-08 13:51, Morten Brørup wrote:
>> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Bruce Richardson
>> I think for windows we probably want to start with the MS compiler
>> first,
>> since from my understanding it's probably the default go-to compiler
>> for
>> developers on windows, and look at alternatives from there.
>>
>> /Bruce
> 
> Having developed quite a bit in Windows myself (about a decade ago), I tend to agree with Bruce here. However, I would add that it depends on who we are targeting:
> 
> If we are targeting typical Windows developers (of all levels of experience), it's my impression that Microsoft's compiler IDE, Visual Studio (or Visual Studio Code), is their tool of choice, and anything else would introduce a learning curve. (This is probably more true for junior developers than senior developers, who often have worked in a range of different development environments.)
> 

Visual Studio supports clang, and regardless, maximizing the 
*convenience* for a few Windows developers shouldn't really be a 
priority. Let's be real; Windows is very likely to remain a minor player 
in the domain of operating systems for network processing.

Just to be clear, I'm not saying we should sabotage a Windows port. What 
I am voting against, is to allow a Windows port to sabotage the DPDK 
source code, and prevent the use of useful compiler features, messing up 
the code in the process.

As for junior developers, if they are going to program in DPDK, 
installing a compiler is such a minor part of the learning curve ahead, 
they won't notice the tiny bit of extra climb.

> If we are targeting developers who want to make their applications compatible across multiple operating systems, any compiler would probably work just fine - and in this case, the real question is about making the "make" environment as cross-platform compatible as possible.
> 
The discussion has been about compilers, not any build system or tools.

> Maybe you can get inspiration by looking at other cross-platform projects... Google Chrome, Mozilla Firefox, Wireshark, etc.
> 

As mentioned in this thread already, Chromium relies on clang.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [dpdk-dev] Compiler for Windows
  2019-01-08 10:24                 ` Burakov, Anatoly
@ 2019-01-30 14:21                   ` Thomas Monjalon
  2019-01-30 16:32                     ` Menon, Ranjit
  0 siblings, 1 reply; 23+ messages in thread
From: Thomas Monjalon @ 2019-01-30 14:21 UTC (permalink / raw)
  To: 'Jason Messer', 'Harini Ramakrishnan',
	'Omar Cardona', 'Ranjit Menon'
  Cc: dev, Burakov, Anatoly, Bruce Richardson, Stephen Hemminger,
	'Mattias Rönnblom', 'Jeff Shaw',
	techboard

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 first,
> >> since from my understanding it's probably the default go-to compiler for
> >> developers on windows, and look at alternatives from there.
> > 
> > Not sure. I feel clang is a better option.
> > This is the purpose of this thread: which compiler can work
> > with the DPDK code base? Which modifications of code are acceptable?
> > 
> > Unfortunately we lost my original attempt of getting some facts.
> 
> i'm developing on a Windows machine, and use clang as code analyzer. so 
> while the compiling and linking may take some effort, the bulk of it 
> appears to be working without too much complaints from clang. it's easy 
> to install as well - just install LLVM and you're good to go.

This discussion continued in a private thread (for no good reason).
Let's conclude here publicly.

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 support
	- clang is now native on Windows -> best choice
	  http://releases.llvm.org/7.0.1/LLVM-7.0.1-win64.exe

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

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

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

Please restart from a fresh 19.02 branch in the draft repository
and submit 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.

Thanks for facilitating community adoption of Windows port.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [dpdk-dev] Compiler for Windows
  2019-01-30 14:21                   ` Thomas Monjalon
@ 2019-01-30 16:32                     ` Menon, Ranjit
  2019-01-31 17:12                       ` Wiles, Keith
  2019-02-13 16:11                       ` Thomas Monjalon
  0 siblings, 2 replies; 23+ messages in thread
From: Menon, Ranjit @ 2019-01-30 16:32 UTC (permalink / raw)
  To: Thomas Monjalon, 'Jason Messer',
	'Harini Ramakrishnan', 'Omar Cardona'
  Cc: dev, Burakov, Anatoly, Richardson, Bruce, Stephen Hemminger,
	'Mattias Rönnblom',
	Shaw, Jeffrey B, techboard

Thank you for the direction, Thomas and Tech Board members.

If clang-win64 has support for GCC extensions (__attribute(constructor/align/etc...)), then the changes to common DPDK code should be minimal. Also, Jeff got meson to output VS project files to compile with MSVC - we'll just need to make sure that they can compile with clang-win64. Thanks, Bruce for helping us out here.

ranjit m.

-----Original Message-----
From: Thomas Monjalon <thomas@monjalon.net> 
Sent: Wednesday, January 30, 2019 6:21 AM
To: 'Jason Messer' <jmesser@microsoft.com>; 'Harini Ramakrishnan' <harini.ramakrishnan@microsoft.com>; 'Omar Cardona' <ocardona@microsoft.com>; Menon, Ranjit <ranjit.menon@intel.com>
Cc: dev@dpdk.org; Burakov, Anatoly <anatoly.burakov@intel.com>; Richardson, Bruce <bruce.richardson@intel.com>; Stephen Hemminger <stephen@networkplumber.org>; 'Mattias Rönnblom' <mattias.ronnblom@ericsson.com>; Shaw, Jeffrey B <jeffrey.b.shaw@intel.com>; techboard@dpdk.org
Subject: Re: [dpdk-dev] Compiler for Windows

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 
> >> first, since from my understanding it's probably the default go-to 
> >> compiler for developers on windows, and look at alternatives from there.
> > 
> > Not sure. I feel clang is a better option.
> > This is the purpose of this thread: which compiler can work with the 
> > DPDK code base? Which modifications of code are acceptable?
> > 
> > Unfortunately we lost my original attempt of getting some facts.
> 
> i'm developing on a Windows machine, and use clang as code analyzer. 
> so while the compiling and linking may take some effort, the bulk of 
> it appears to be working without too much complaints from clang. it's 
> easy to install as well - just install LLVM and you're good to go.

This discussion continued in a private thread (for no good reason).
Let's conclude here publicly.

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 support
	- clang is now native on Windows -> best choice
	  http://releases.llvm.org/7.0.1/LLVM-7.0.1-win64.exe

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

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

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

Please restart from a fresh 19.02 branch in the draft repository and submit 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.

Thanks for facilitating community adoption of Windows port.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [dpdk-dev] Compiler for Windows
  2019-01-30 16:32                     ` Menon, Ranjit
@ 2019-01-31 17:12                       ` Wiles, Keith
  2019-01-31 17:36                         ` Thomas Monjalon
  2019-02-13 16:11                       ` Thomas Monjalon
  1 sibling, 1 reply; 23+ messages in thread
From: Wiles, Keith @ 2019-01-31 17:12 UTC (permalink / raw)
  To: Menon, Ranjit
  Cc: Thomas Monjalon, Jason Messer, Harini Ramakrishnan, Omar Cardona,
	dev, Burakov, Anatoly, Richardson, Bruce, Stephen Hemminger,
	Mattias Rönnblom, Shaw, Jeffrey B, techboard

Sorry I have to top post. I had surgery on my shoulder so I’m doing this from my phone. 

Why does the windows Eal directory have to be a stub? 

Normally the port must use a separate directory for different architecture. In this case it is the windows architecture which should have all of the changes required for windows and not modify Linux or BSD. 

Sent from my iPhone

> On Jan 30, 2019, at 10:32 AM, Menon, Ranjit <ranjit.menon@intel.com> wrote:
> 
> Thank you for the direction, Thomas and Tech Board members.
> 
> If clang-win64 has support for GCC extensions (__attribute(constructor/align/etc...)), then the changes to common DPDK code should be minimal. Also, Jeff got meson to output VS project files to compile with MSVC - we'll just need to make sure that they can compile with clang-win64. Thanks, Bruce for helping us out here.
> 
> ranjit m.
> 
> -----Original Message-----
> From: Thomas Monjalon <thomas@monjalon.net> 
> Sent: Wednesday, January 30, 2019 6:21 AM
> To: 'Jason Messer' <jmesser@microsoft.com>; 'Harini Ramakrishnan' <harini.ramakrishnan@microsoft.com>; 'Omar Cardona' <ocardona@microsoft.com>; Menon, Ranjit <ranjit.menon@intel.com>
> Cc: dev@dpdk.org; Burakov, Anatoly <anatoly.burakov@intel.com>; Richardson, Bruce <bruce.richardson@intel.com>; Stephen Hemminger <stephen@networkplumber.org>; 'Mattias Rönnblom' <mattias.ronnblom@ericsson.com>; Shaw, Jeffrey B <jeffrey.b.shaw@intel.com>; techboard@dpdk.org
> Subject: Re: [dpdk-dev] Compiler for Windows
> 
> 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 
>>>> first, since from my understanding it's probably the default go-to 
>>>> compiler for developers on windows, and look at alternatives from there.
>>> 
>>> Not sure. I feel clang is a better option.
>>> This is the purpose of this thread: which compiler can work with the 
>>> DPDK code base? Which modifications of code are acceptable?
>>> 
>>> Unfortunately we lost my original attempt of getting some facts.
>> 
>> i'm developing on a Windows machine, and use clang as code analyzer. 
>> so while the compiling and linking may take some effort, the bulk of 
>> it appears to be working without too much complaints from clang. it's 
>> easy to install as well - just install LLVM and you're good to go.
> 
> This discussion continued in a private thread (for no good reason).
> Let's conclude here publicly.
> 
> 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 support
>    - clang is now native on Windows -> best choice
>      http://releases.llvm.org/7.0.1/LLVM-7.0.1-win64.exe
> 
> 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
> 
> 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
> 
> 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
> 
> Please restart from a fresh 19.02 branch in the draft repository and submit 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.
> 
> Thanks for facilitating community adoption of Windows port.
> 
> 

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [dpdk-dev] Compiler for Windows
  2019-01-31 17:12                       ` Wiles, Keith
@ 2019-01-31 17:36                         ` Thomas Monjalon
  2019-01-31 17:48                           ` Wiles, Keith
  0 siblings, 1 reply; 23+ messages in thread
From: Thomas Monjalon @ 2019-01-31 17:36 UTC (permalink / raw)
  To: Wiles, Keith
  Cc: Menon, Ranjit, Jason Messer, Harini Ramakrishnan, Omar Cardona,
	dev, Burakov, Anatoly, Richardson, Bruce, Stephen Hemminger,
	Mattias Rönnblom, Shaw, Jeffrey B, techboard

31/01/2019 18:12, Wiles, Keith:
> Sorry I have to top post. I had surgery on my shoulder so I’m doing this from my phone. 
> 
> Why does the windows Eal directory have to be a stub? 

It is just a first step to validate the compilation of existing code
in Windows environment without the new Windows code.

> Normally the port must use a separate directory for different architecture. In this case it is the windows architecture which should have all of the changes required for windows and not modify Linux or BSD.

Yes I agree. This is the step 5 below:
5/ EAL for Windows can be completed with real code


> > On Jan 30, 2019, at 10:32 AM, Menon, Ranjit <ranjit.menon@intel.com> wrote:
> > 
> > Thank you for the direction, Thomas and Tech Board members.
> > 
> > If clang-win64 has support for GCC extensions (__attribute(constructor/align/etc...)), then the changes to common DPDK code should be minimal. Also, Jeff got meson to output VS project files to compile with MSVC - we'll just need to make sure that they can compile with clang-win64. Thanks, Bruce for helping us out here.
> > 
> > ranjit m.
> > 
> > -----Original Message-----
> > From: Thomas Monjalon <thomas@monjalon.net> 
> > Sent: Wednesday, January 30, 2019 6:21 AM
> > To: 'Jason Messer' <jmesser@microsoft.com>; 'Harini Ramakrishnan' <harini.ramakrishnan@microsoft.com>; 'Omar Cardona' <ocardona@microsoft.com>; Menon, Ranjit <ranjit.menon@intel.com>
> > Cc: dev@dpdk.org; Burakov, Anatoly <anatoly.burakov@intel.com>; Richardson, Bruce <bruce.richardson@intel.com>; Stephen Hemminger <stephen@networkplumber.org>; 'Mattias Rönnblom' <mattias.ronnblom@ericsson.com>; Shaw, Jeffrey B <jeffrey.b.shaw@intel.com>; techboard@dpdk.org
> > Subject: Re: [dpdk-dev] Compiler for Windows
> > 
> > 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 
> >>>> first, since from my understanding it's probably the default go-to 
> >>>> compiler for developers on windows, and look at alternatives from there.
> >>> 
> >>> Not sure. I feel clang is a better option.
> >>> This is the purpose of this thread: which compiler can work with the 
> >>> DPDK code base? Which modifications of code are acceptable?
> >>> 
> >>> Unfortunately we lost my original attempt of getting some facts.
> >> 
> >> i'm developing on a Windows machine, and use clang as code analyzer. 
> >> so while the compiling and linking may take some effort, the bulk of 
> >> it appears to be working without too much complaints from clang. it's 
> >> easy to install as well - just install LLVM and you're good to go.
> > 
> > This discussion continued in a private thread (for no good reason).
> > Let's conclude here publicly.
> > 
> > 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 support
> >    - clang is now native on Windows -> best choice
> >      http://releases.llvm.org/7.0.1/LLVM-7.0.1-win64.exe
> > 
> > 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
> > 
> > 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
> > 
> > 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
> > 
> > Please restart from a fresh 19.02 branch in the draft repository and submit 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.
> > 
> > Thanks for facilitating community adoption of Windows port.
> > 
> > 
> 

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [dpdk-dev] Compiler for Windows
  2019-01-31 17:36                         ` Thomas Monjalon
@ 2019-01-31 17:48                           ` Wiles, Keith
  0 siblings, 0 replies; 23+ messages in thread
From: Wiles, Keith @ 2019-01-31 17:48 UTC (permalink / raw)
  To: Thomas Monjalon
  Cc: Menon, Ranjit, Jason Messer, Harini Ramakrishnan, Omar Cardona,
	dev, Burakov, Anatoly, Richardson, Bruce, Stephen Hemminger,
	Mattias Rönnblom, Shaw, Jeffrey B, techboard

OK just seems like an unnecessary step to me. 

Sent from my iPhone

> On Jan 31, 2019, at 11:36 AM, Thomas Monjalon <thomas@monjalon.net> wrote:
> 
> 31/01/2019 18:12, Wiles, Keith:
>> Sorry I have to top post. I had surgery on my shoulder so I’m doing this from my phone. 
>> 
>> Why does the windows Eal directory have to be a stub? 
> 
> It is just a first step to validate the compilation of existing code
> in Windows environment without the new Windows code.
> 
>> Normally the port must use a separate directory for different architecture. In this case it is the windows architecture which should have all of the changes required for windows and not modify Linux or BSD.
> 
> Yes I agree. This is the step 5 below:
> 5/ EAL for Windows can be completed with real code
> 
> 
>>> On Jan 30, 2019, at 10:32 AM, Menon, Ranjit <ranjit.menon@intel.com> wrote:
>>> 
>>> Thank you for the direction, Thomas and Tech Board members.
>>> 
>>> If clang-win64 has support for GCC extensions (__attribute(constructor/align/etc...)), then the changes to common DPDK code should be minimal. Also, Jeff got meson to output VS project files to compile with MSVC - we'll just need to make sure that they can compile with clang-win64. Thanks, Bruce for helping us out here.
>>> 
>>> ranjit m.
>>> 
>>> -----Original Message-----
>>> From: Thomas Monjalon <thomas@monjalon.net> 
>>> Sent: Wednesday, January 30, 2019 6:21 AM
>>> To: 'Jason Messer' <jmesser@microsoft.com>; 'Harini Ramakrishnan' <harini.ramakrishnan@microsoft.com>; 'Omar Cardona' <ocardona@microsoft.com>; Menon, Ranjit <ranjit.menon@intel.com>
>>> Cc: dev@dpdk.org; Burakov, Anatoly <anatoly.burakov@intel.com>; Richardson, Bruce <bruce.richardson@intel.com>; Stephen Hemminger <stephen@networkplumber.org>; 'Mattias Rönnblom' <mattias.ronnblom@ericsson.com>; Shaw, Jeffrey B <jeffrey.b.shaw@intel.com>; techboard@dpdk.org
>>> Subject: Re: [dpdk-dev] Compiler for Windows
>>> 
>>> 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 
>>>>>> first, since from my understanding it's probably the default go-to 
>>>>>> compiler for developers on windows, and look at alternatives from there.
>>>>> 
>>>>> Not sure. I feel clang is a better option.
>>>>> This is the purpose of this thread: which compiler can work with the 
>>>>> DPDK code base? Which modifications of code are acceptable?
>>>>> 
>>>>> Unfortunately we lost my original attempt of getting some facts.
>>>> 
>>>> i'm developing on a Windows machine, and use clang as code analyzer. 
>>>> so while the compiling and linking may take some effort, the bulk of 
>>>> it appears to be working without too much complaints from clang. it's 
>>>> easy to install as well - just install LLVM and you're good to go.
>>> 
>>> This discussion continued in a private thread (for no good reason).
>>> Let's conclude here publicly.
>>> 
>>> 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 support
>>>   - clang is now native on Windows -> best choice
>>>     http://releases.llvm.org/7.0.1/LLVM-7.0.1-win64.exe
>>> 
>>> 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
>>> 
>>> 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
>>> 
>>> 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
>>> 
>>> Please restart from a fresh 19.02 branch in the draft repository and submit 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.
>>> 
>>> Thanks for facilitating community adoption of Windows port.
>>> 
>>> 
>> 
> 
> 
> 
> 
> 

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [dpdk-dev] Compiler for Windows
  2019-01-30 16:32                     ` Menon, Ranjit
  2019-01-31 17:12                       ` Wiles, Keith
@ 2019-02-13 16:11                       ` Thomas Monjalon
  2019-02-13 16:35                         ` Menon, Ranjit
  1 sibling, 1 reply; 23+ messages in thread
From: Thomas Monjalon @ 2019-02-13 16:11 UTC (permalink / raw)
  To: Menon, Ranjit, 'Jason Messer'
  Cc: dev, 'Harini Ramakrishnan', 'Omar Cardona',
	Burakov, Anatoly, Richardson, Bruce, Stephen Hemminger,
	'Mattias Rönnblom',
	Shaw, Jeffrey B

Any update about the progress, please?
Do you have started a new branch?


30/01/2019 17:32, Menon, Ranjit:
> Thank you for the direction, Thomas and Tech Board members.
> 
> If clang-win64 has support for GCC extensions (__attribute(constructor/align/etc...)), then the changes to common DPDK code should be minimal. Also, Jeff got meson to output VS project files to compile with MSVC - we'll just need to make sure that they can compile with clang-win64. Thanks, Bruce for helping us out here.

> From: Thomas Monjalon <thomas@monjalon.net> 
> Sent: Wednesday, January 30, 2019 6:21 AM
> To: 'Jason Messer' <jmesser@microsoft.com>; 'Harini Ramakrishnan' <harini.ramakrishnan@microsoft.com>; 'Omar Cardona' <ocardona@microsoft.com>; Menon, Ranjit <ranjit.menon@intel.com>
> Cc: dev@dpdk.org; Burakov, Anatoly <anatoly.burakov@intel.com>; Richardson, Bruce <bruce.richardson@intel.com>; Stephen Hemminger <stephen@networkplumber.org>; 'Mattias Rönnblom' <mattias.ronnblom@ericsson.com>; Shaw, Jeffrey B <jeffrey.b.shaw@intel.com>; techboard@dpdk.org
> Subject: Re: [dpdk-dev] Compiler for Windows
> 
> 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 
> > >> first, since from my understanding it's probably the default go-to 
> > >> compiler for developers on windows, and look at alternatives from there.
> > > 
> > > Not sure. I feel clang is a better option.
> > > This is the purpose of this thread: which compiler can work with the 
> > > DPDK code base? Which modifications of code are acceptable?
> > > 
> > > Unfortunately we lost my original attempt of getting some facts.
> > 
> > i'm developing on a Windows machine, and use clang as code analyzer. 
> > so while the compiling and linking may take some effort, the bulk of 
> > it appears to be working without too much complaints from clang. it's 
> > easy to install as well - just install LLVM and you're good to go.
> 
> This discussion continued in a private thread (for no good reason).
> Let's conclude here publicly.
> 
> 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 support
> 	- clang is now native on Windows -> best choice
> 	  http://releases.llvm.org/7.0.1/LLVM-7.0.1-win64.exe
> 
> 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
> 
> 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
> 
> 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
> 
> Please restart from a fresh 19.02 branch in the draft repository and submit 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.
> 
> Thanks for facilitating community adoption of Windows port.
> 
> 
> 

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [dpdk-dev] Compiler for Windows
  2019-02-13 16:11                       ` Thomas Monjalon
@ 2019-02-13 16:35                         ` Menon, Ranjit
  0 siblings, 0 replies; 23+ messages in thread
From: Menon, Ranjit @ 2019-02-13 16:35 UTC (permalink / raw)
  To: Thomas Monjalon, 'Jason Messer'
  Cc: dev, 'Harini Ramakrishnan', 'Omar Cardona',
	Burakov, Anatoly, Richardson, Bruce, Stephen Hemminger,
	'Mattias Rönnblom',
	Shaw, Jeffrey B

Thomas...
We now have the "helloworld" application with a minimal EAL building on Windows using clang. We have also managed to generate the build files using meson. There are some issues we still need to work through, but we are close to submitting patches to a branch on the draft repo. We hope to get them out soon.

ranjit m.

-----Original Message-----
From: Thomas Monjalon <thomas@monjalon.net> 
Sent: Wednesday, February 13, 2019 8:11 AM
To: Menon, Ranjit <ranjit.menon@intel.com>; 'Jason Messer' <jmesser@microsoft.com>
Cc: dev@dpdk.org; 'Harini Ramakrishnan' <harini.ramakrishnan@microsoft.com>; 'Omar Cardona' <ocardona@microsoft.com>; Burakov, Anatoly <anatoly.burakov@intel.com>; Richardson, Bruce <bruce.richardson@intel.com>; Stephen Hemminger <stephen@networkplumber.org>; 'Mattias Rönnblom' <mattias.ronnblom@ericsson.com>; Shaw, Jeffrey B <jeffrey.b.shaw@intel.com>
Subject: Re: [dpdk-dev] Compiler for Windows

Any update about the progress, please?
Do you have started a new branch?


30/01/2019 17:32, Menon, Ranjit:
> Thank you for the direction, Thomas and Tech Board members.
> 
> If clang-win64 has support for GCC extensions (__attribute(constructor/align/etc...)), then the changes to common DPDK code should be minimal. Also, Jeff got meson to output VS project files to compile with MSVC - we'll just need to make sure that they can compile with clang-win64. Thanks, Bruce for helping us out here.

> From: Thomas Monjalon <thomas@monjalon.net>
> Sent: Wednesday, January 30, 2019 6:21 AM
> To: 'Jason Messer' <jmesser@microsoft.com>; 'Harini Ramakrishnan' 
> <harini.ramakrishnan@microsoft.com>; 'Omar Cardona' 
> <ocardona@microsoft.com>; Menon, Ranjit <ranjit.menon@intel.com>
> Cc: dev@dpdk.org; Burakov, Anatoly <anatoly.burakov@intel.com>; 
> Richardson, Bruce <bruce.richardson@intel.com>; Stephen Hemminger 
> <stephen@networkplumber.org>; 'Mattias Rönnblom' 
> <mattias.ronnblom@ericsson.com>; Shaw, Jeffrey B 
> <jeffrey.b.shaw@intel.com>; techboard@dpdk.org
> Subject: Re: [dpdk-dev] Compiler for Windows
> 
> 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 first, since from my understanding it's probably the 
> > >> default go-to compiler for developers on windows, and look at alternatives from there.
> > > 
> > > Not sure. I feel clang is a better option.
> > > This is the purpose of this thread: which compiler can work with 
> > > the DPDK code base? Which modifications of code are acceptable?
> > > 
> > > Unfortunately we lost my original attempt of getting some facts.
> > 
> > i'm developing on a Windows machine, and use clang as code analyzer. 
> > so while the compiling and linking may take some effort, the bulk of 
> > it appears to be working without too much complaints from clang. 
> > it's easy to install as well - just install LLVM and you're good to go.
> 
> This discussion continued in a private thread (for no good reason).
> Let's conclude here publicly.
> 
> 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 support
> 	- clang is now native on Windows -> best choice
> 	  http://releases.llvm.org/7.0.1/LLVM-7.0.1-win64.exe
> 
> 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.4
> 9.1-64.msi
> 
> 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
> 
> 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
> 
> Please restart from a fresh 19.02 branch in the draft repository and submit 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.
> 
> Thanks for facilitating community adoption of Windows port.
> 
> 
> 

^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2019-02-13 16:35 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-01-02 22:45 [dpdk-dev] Compiler for Windows Thomas Monjalon
2019-01-03  6:33 ` Stephen Hemminger
2019-01-03 17:10   ` Jason Messer
2019-01-03 17:32     ` Thomas Monjalon
2019-01-03 22:46     ` Wiles, Keith
2019-01-07 10:56   ` Burakov, Anatoly
2019-01-07 15:51     ` Stephen Hemminger
2019-01-07 16:15       ` Bruce Richardson
2019-01-07 16:29         ` Burakov, Anatoly
2019-01-07 16:51           ` Stephen Hemminger
2019-01-07 17:00             ` Bruce Richardson
2019-01-07 17:08               ` Thomas Monjalon
2019-01-08 10:24                 ` Burakov, Anatoly
2019-01-30 14:21                   ` Thomas Monjalon
2019-01-30 16:32                     ` Menon, Ranjit
2019-01-31 17:12                       ` Wiles, Keith
2019-01-31 17:36                         ` Thomas Monjalon
2019-01-31 17:48                           ` Wiles, Keith
2019-02-13 16:11                       ` Thomas Monjalon
2019-02-13 16:35                         ` Menon, Ranjit
2019-01-08 12:51               ` Morten Brørup
2019-01-08 14:10                 ` Mattias Rönnblom
2019-01-07 17:00             ` Thomas Monjalon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).