Wireshark-dev: Re: [Wireshark-dev] report from the bleeding edge (VS 2017)

From: Gerald Combs <gerald@xxxxxxxxxxxxx>
Date: Wed, 14 Feb 2018 17:15:26 -0800
On 2/14/18 2:27 AM, Pascal Quantin wrote:
> 
> 
> 2018-02-14 11:24 GMT+01:00 Graham Bloice <graham.bloice@xxxxxxxxxxxxx
> <mailto:graham.bloice@xxxxxxxxxxxxx>>:
> 
> 
> 
>     On 14 February 2018 at 06:24, Anders Broman <a.broman58@xxxxxxxxx
>     <mailto:a.broman58@xxxxxxxxx>> wrote:
> 
> 
> 
>         Den 14 feb. 2018 6:58 fm skrev "Pascal Quantin"
>         <pascal.quantin@xxxxxxxxx <mailto:pascal.quantin@xxxxxxxxx>>:
> 
> 
> 
>             Le 14 févr. 2018 02:24, "Gerald Combs" <gerald@xxxxxxxxxxxxx
>             <mailto:gerald@xxxxxxxxxxxxx>> a écrit :
> 
>                 On 2/13/18 8:26 AM, Anders Broman wrote:
>                 >
>                 > For what it's worth I have been building and distributing
>                 for VS 2017 for almost a year on Win7
>                 > Cygwin and python set up as per developers guide from way
>                 back.
>                 > I have the following batch script I run in my cmd window
>                 >
>                 **********************************************************************
>                 > ** Visual Studio 2017 Developer Command Prompt v15.5.6
>                 > ** Copyright (c) 2017 Microsoft Corporation
>                 >
>                 **********************************************************************
>                 > [vcvarsall.bat] Environment initialized for: 'x64'
>                 >
>                 > set CYGWIN=nodosfilewarning
>                 > set WIRESHARK_BASE_DIR=C:\Development
>                 > set QT5_BASE_DIR=C:\Qt\5.9.4\msvc2017_64
>                 > set WIRESHARK_TARGET_PLATFORM=win64
>                 > set PATH=path=%PATH%;C:\cygwin64\bin;C:\Program
>                 Files\CMake\bin;C:\Python27
>                 >
>                 > Then
>                 > cmake -DENABLE_CHM_GUIDES=on -G "Visual Studio 15 Win64"
>                 ..\wireshark
>                 > and
>                 > msbuild /m /p:Configuration=RelWithDebInfo Wireshark.sln
>                 2>&1 > log.txt
> 
>                 Is there any reason we shouldn't switch to VS 2017 before
>                 the 2.6 release?
>                 It's installed on the main and PD Windows builders.
> 
> 
>             The availability of a 32bits Qt package for MSVC2017? I would
>             find it a bit weird to use MSVC2015 for the x86 binary and
>             MSVC2017 for the x64 one. 
> 
> 
>         Do we still need to build for 32 bits?
> 
> 
> 
>     Personally I'd be happy to drop the 32 bit version, what the rest of
>     the world would make of it, I'm not so sure.
> 
> 
> I guess a good indicator would be how often the x86 variant is downloaded.
> Gerald, do you have this number?

Last month about 19% of our downloads were for the 32-bit installer and 7% were for the PortableApps package. The percentage of 32-bit installs is steadily decreasing over time, but we're not close to zero yet.

As far as library compatibility goes, according to

https://docs.microsoft.com/en-us/cpp/porting/binary-compat-2015-2017

we *should* be able to build using Visual C++ 2017 and use libraries compiled with Visual C++ 2015. I did a test build here using Visual C++ 2017 and the "msvc2015" Qt component here and it seems to work OK. Dependencies[1] reports that it's using msvcp140.dll and vcruntime140.dll.

I went ahead and switched the Windows master and PD builders over. The 64-bit builders are now using the Qt 5.9.4 "msvc2017 64-bit" component and the 32-bit builder is using the "msvc2015 32-bit" component. If that doesn't work we can try the "MinGW 5.3.0 32-bit" component. We can also switch back to Visual C++ 2015 if needed.

[1]https://github.com/lucasg/Dependencies