logo
Apache Lounge
Webmasters

 

About Forum Index Downloads Search Register Log in RSS X


Keep Server Online

If you find the Apache Lounge, the downloads and overall help useful, please express your satisfaction with a donation.

or

Bitcoin

A donation makes a contribution towards the costs, the time and effort that's going in this site and building.

Thank You! Steffen

Your donations will help to keep this site alive and well, and continuing building binaries. Apache Lounge is not sponsored.
Post new topic   Forum Index -> Apache View previous topic :: View next topic
Reply to topic   Topic: Why Visual C++ 2017 (VC15) still sports the v.14 number?
Author
Zane_TLI



Joined: 28 May 2017
Posts: 11
Location: Ferrara, Italy

PostPosted: Sat 03 Jun '17 10:00    Post subject: Why Visual C++ 2017 (VC15) still sports the v.14 number? Reply with quote

I'm testing the VC15 release, so I installed Visual C++ 2017 that's supposed to be "VC15".

But when I run the installed, I get this:

http://turbolab.it/immagini/med/come-installare-apache-windows-10-trasformare-pc-server-web-guida-definitiva-8978.img

As you can see, the package is 14.10.xx. I was expecting 15.yy.zz.

Moreover: if I try to run Apache VC15 without Visual C++ 2017 (VC15), I still get an error about VCRUNTIME140.dll (note the "14", I was expecting 15).

What's the deal here?

Thanks!
Back to top
admin
Site Admin


Joined: 15 Oct 2005
Posts: 692

PostPosted: Sat 03 Jun '17 10:15    Post subject: Reply with quote

That is correct, MS has numbered it 14.1 and not 15 because of the backward compatibility with VC14.

It numbering is also discussed here https://www.apachelounge.com/viewtopic.php?t=7612
Back to top
Zane_TLI



Joined: 28 May 2017
Posts: 11
Location: Ferrara, Italy

PostPosted: Sat 03 Jun '17 11:35    Post subject: Reply with quote

Thanks for the link. I get that the Versioning situation is a bit messy.

Being VC15 actually 14.1, does it mean that it supersedes VC14 (2015) and the new version is OK for program built with VS2015 too? If so: VC14 is basically deprecated?
Back to top
admin
Site Admin


Joined: 15 Oct 2005
Posts: 692

PostPosted: Sat 03 Jun '17 11:55    Post subject: Reply with quote

In principal we could drop VC14, with php as module as example:

vc15 is backward compatible to vc14. That means, a vc14 module can sure be used inside vc15 binary. Thus, same for Apache and PHP as module. Regarding OpenSSL - the applink technology I introduced back then is in first place about staying compatible with different CRT. Even if it is promised to provide also compatibility between different versions, we've seen that it's not always true, recall the case where OpenSSL broke ABI by disabling weak ciphers.

Thus - in general dropping is OK, as long as the OpenSSL series matches, say both PHP and Apache are linked with either 1.0, or both with 1.1. For FCGI it of course doesn't matter, but for PHP as module. As httpd.exe provides the applink symbol, the PHP DLL will find it and possibly use incompatible routines. With this in mind, I wouldn't expect any issues if both bins are linked with same OpenSSL series. At apachelounge it is tested and no issues.

Planned:

VC11/14 only with OpenSSL 1.0.2
VC15 only with OpenSSL 1.1.0

This in line with the PHP-team policy, which we follow:

PHP 7.2 vc15 with OpenSSL 1.1.0
PHP 7.1 vc14 with Openssl 1.0.2
PHP 5.6 vc11 with OpenSSL 1.0.2
Back to top
Zane_TLI



Joined: 28 May 2017
Posts: 11
Location: Ferrara, Italy

PostPosted: Sun 11 Jun '17 9:30    Post subject: Reply with quote

Great, thanks!

I also found this on the VC15 download page:

Quote:
With VS2017 (VC15) the runtime binary is backward compatible with VS2015 (VC14)

So Be sure !! that you have installed the latest C++ Redistributable Visual Studio 2017, see above. After you install it, the C++ Redistributable VS2015 is removed


So, VC15 actually superseds VC14.

Thanks again!
Back to top
Steffen
Moderator


Joined: 15 Oct 2005
Posts: 3094
Location: Hilversum, NL, EU

PostPosted: Sun 11 Jun '17 13:40    Post subject: Reply with quote

Yep, we could drop VC14. But to be on the safe side we continue VC14.

I made the note clearer on the VC15 download page.
Back to top
Zane_TLI



Joined: 28 May 2017
Posts: 11
Location: Ferrara, Italy

PostPosted: Sun 11 Jun '17 18:09    Post subject: Reply with quote

Thanks Steffen!
Back to top
Jan-E



Joined: 09 Mar 2012
Posts: 1266
Location: Amsterdam, NL, EU

PostPosted: Tue 13 Jun '17 11:11    Post subject: Reply with quote

Zane_TLI wrote:
So, VC15 actually superseds VC14.

It is only a binary supersede. I've got several examples of things that did compile in VC14 and failed or flawed in VC15.
Like this one. I compiled V8JS with VC15 and then tried to build php_v8js.dll (PHP 7.2 alpha1). Error:
Code:
ext\v8js\v8js_class.cc(540): error C2065: 'ZEND_ACC_CLONE': undeclared identifier
ext\v8js\v8js_object_export.cc(339): error C2065: 'ZEND_ACC_CLONE': undeclared identifier
ext\v8js\v8js_object_export.cc(542): error C2065: 'ZEND_ACC_CLONE': undeclared identifier
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.10.25017\bin\HostX64\x64\cl.exe"' : return code '0x2'
Stop.
Back to top
Zane_TLI



Joined: 28 May 2017
Posts: 11
Location: Ferrara, Italy

PostPosted: Mon 19 Jun '17 23:31    Post subject: Reply with quote

Jan-E: I was looking at the runtime library (the user-installable package), but thanks for reporting that it's not a clear-cut superseed while compiling!
Back to top
glsmith
Moderator


Joined: 16 Oct 2007
Posts: 2268
Location: Sun Diego, USA

PostPosted: Wed 21 Jun '17 1:13    Post subject: Reply with quote

It's even less clear cut cause I have Jan's PHP 7.2.0a1 vc15 and my own Apache 2.4.26 vc15 build running on a server with only the VC14 redistributables on it and on the surface they seem to do just fine though I have rigorously tested either.

If you run printenv.pl in a VC15 command window you will find some new vars in it. Two of which are;

VISUALSTUDIOVERSION: 15.0
VSCMD_VER: 15.0.26430.13

So vc15 it is.
Back to top


Reply to topic   Topic: Why Visual C++ 2017 (VC15) still sports the v.14 number? View previous topic :: View next topic
Post new topic   Forum Index -> Apache