Re: [INTERNALS-WIN] PHP7: which Windows Kit?
[email protected] (Jan Ehrhardt) Tue, 04 Aug 2015 00:31:31 +0200
| Newsgroups | php.internals.win |
|---|---|
| Message-ID | <[email protected]> |
Hi Anatol, "Anatol Belski" in php.internals.win (Mon, 3 Aug 2015 23:30:50 +0200): >Windows Kit means targeting the OS specific features. PHP on Windows >currently doesn't target anything except Desktop/Server in the range of >Vista and up. PHP currently doesn't claim to be a universal APP. Like to run >on a smartphone, or as a store app, or ... PHP doesn't develop/require any >kernel mode drivers. All the functionality in PHP is covered by the native >CRT, which is UCRT due to VS2015 requirement for PHP7. As far as I know that is not the whole story. For instance network connectivity (WinSock2.h) is not part of the UCRT, but has to be included from either C:\Program Files (x86)\Windows Kits\8.1\include\um\ or C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\um\ A fresh VS 2015 Pro install includes the UM headers from Windows Kit 10. It may be true that you do not target any system, but implicitely you are making a choice between '8.1\include\um\' and '10\Include\10.0.10240.0\um\'. Pierre is always hammering on using the same sources to avoid bugs/issues that are caused by non-standard source code. Then certainly this must be true as well for the included UM headers. You have to rule out differences between the 8.1 UM headers and the 10.0.10240.0 UM headers. It does not really make any difference for me which of the 2 you choose as long as the choice is clear and documented. https://wiki.php.net/internals/windows/stepbystepbuild just says 'Install Visual Studio 2015' and open the 'Developer Command Prompt for VS2015'. On my laptop (which still has VS2015 RC) that means using the Windows 8.1 UM kit for things like network connectivity. Om my development machine VS 2015 Pro includes the UM kit from 10.0.10240.0. You do not want such differences. Unless you had access to the 10.0.10240.0 UM headers before the release, the VC14 dependencies aren't compiled with them. People that start building PHP7 now (after July 29) using the instructions on the wiki page will have a different building environment then what was (and is?) used for the windows.php.net builds. -- Jan