On 2019-01-08 13:51, Morten Brørup wrote:
From: dev [mailto:dev-boun...@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.