Author |
|
Zane_TLI
Joined: 28 May 2017 Posts: 11 Location: Ferrara, Italy
|
|
Back to top |
|
admin Site Admin
Joined: 15 Oct 2005 Posts: 692
|
|
Back to top |
|
Zane_TLI
Joined: 28 May 2017 Posts: 11 Location: Ferrara, Italy
|
Posted: Sat 03 Jun '17 11:35 Post subject: |
|
|
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
|
Posted: Sat 03 Jun '17 11:55 Post subject: |
|
|
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
|
Posted: Sun 11 Jun '17 9:30 Post subject: |
|
|
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
|
Posted: Sun 11 Jun '17 13:40 Post subject: |
|
|
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
|
Posted: Sun 11 Jun '17 18:09 Post subject: |
|
|
Thanks Steffen! |
|
Back to top |
|
Jan-E
Joined: 09 Mar 2012 Posts: 1266 Location: Amsterdam, NL, EU
|
Posted: Tue 13 Jun '17 11:11 Post subject: |
|
|
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
|
Posted: Mon 19 Jun '17 23:31 Post subject: |
|
|
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
|
Posted: Wed 21 Jun '17 1:13 Post subject: |
|
|
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 |
|