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 -> Building & Member Downloads View previous topic :: View next topic
Reply to topic   Topic: Universal Windows App platform VC14
Author
Jan-E



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

PostPosted: Thu 30 Jul '15 19:06    Post subject: Universal Windows App platform VC14 Reply with quote

I rebuilt things like Openssl and Libcurl with the SDK release that came out yesterday and noted that some file sizes changed. Did you already use Windows Kit 10.0.10240.0?

http://blogs.msdn.com/b/somasegar/archive/2015/07/29/building-apps-for-windows-10-with-visual-studio-2015.aspx
Back to top
Steffen
Moderator


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

PostPosted: Thu 30 Jul '15 19:29    Post subject: Reply with quote

Nope. That SDK is for Universal Windows apps, so it can deploy/run on all Windows 10 devices like PC, Phone, Tablet, or Xbox. As far as my knowledge that is not the target or has benefit for httpd as Windows desktop app.
Back to top
Jan-E



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

PostPosted: Sun 02 Aug '15 17:47    Post subject: Reply with quote

Just try this:
    1. Rename WinSock2.h to WinSock2no.h in C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\um
    2. Open a 'VS2015 x64 Native Tools Command Prompt' or a 'VS2015 x64 x86 Cross Tools Command Prompt'
    3. Try to compile OpenSSL

I am getting this error message:
Code:
c:\opensslvc14.x64\openssl\tmp32\e_os.h(288): fatal error C1083: Cannot open include file:
'winsock2.h': No such file or directory

Every standard VS2015 Command Prompt has the UM in its INCLUDE. This is for the 'VS2015 x64 Native Tools Command Prompt':
Code:
N:\OpensslVC14.x64\openssl>echo %include%
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE;C:\Program Files (x86)\Micro
soft Visual Studio 14.0\VC\ATLMFC\INCLUDE;C:\Program Files (x86)\Windows Kits\10\include\10
.0.10240.0\ucrt;C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6\include\um;C:\Program File
s (x86)\Windows Kits\10\include\10.0.10240.0\shared;C:\Program Files (x86)\Windows Kits\10\
include\10.0.10240.0\um;C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\winrt;

I did not check the standard settings in the Visual Interface yet, but chances are that the default setting there is the UM as well.

Maybe we should ask Anatol what the PHP devs are using.
Back to top
Steffen
Moderator


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

PostPosted: Sun 02 Aug '15 19:10    Post subject: Reply with quote

Not clear what you want to show.

Do you have an issue ?

No folder Kits\10\Include\10.0.10240.0\um here, as said above not have installed Windows Kit 10.0.10240.0.
Back to top
Jan-E



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

PostPosted: Sun 02 Aug '15 22:24    Post subject: Reply with quote

The issue is that with a standard VS2015 Professional install (after the release) another library is used than what you are using at the moment. It is asking for incompatibilities if PHP is built with

C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\um\

which is the standard in VS 2015 now, while Apache is still using

C:\Program Files (x86)\Windows Kits\8.1\include\um\ or
C:\Program Files (x86)\Windows Kits\8.0\Include\um\ or
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include\ or
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include\

At least there should be an agreement between the PHP devs and Apachelounge to use the same windows kit while compiling with VC14.

Just curious: which one of those four are you using at the moment when compiling OpenSSL?
Back to top
Jan-E



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

PostPosted: Mon 03 Aug '15 2:41    Post subject: Reply with quote

PHP 7 will be built with the latest Windows Kit 10. From the php-internals-win mailing list:

hi,

On Mon, Aug 3, 2015 at 3:50 AM, Jan Ehrhardt wrote:
Quote:
With the release of VS 2015 (VC14) a new Windows kit was introduced:
Windows Kit 10 with version number 10.0.10240.0. There are now at least 5 possibities to include things like WinSock2.h:

C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\um\
C:\Program Files (x86)\Windows Kits\8.1\include\um\
C:\Program Files (x86)\Windows Kits\8.0\Include\um\
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include\
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include\

The standard in a fresh VS 2015 Professional install is to use Windows Kit 10. As I haven't seen new binaries on
http://windows.php.net/downloads/php-sdk/deps/vc14/x64/ since the release of 10.0.10240.0 I am wondering what is the standard Windows Kit for the PHP devs nowadays.

Are there plans to switch to Windows Kit 10 (10.0.10240)?

Yes, next 7 release should be done using the latest releases.

Cheers,

--
Pierre

@pierrejoye | http://www.libgd.org
Back to top
Steffen
Moderator


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

PostPosted: Mon 03 Aug '15 11:05    Post subject: Reply with quote

For target a platform, see http://blogs.msdn.com/b/vcblog/archive/2015/07/29/developing-for-windows-10-with-visual-c-2015.aspx
Back to top
Jan-E



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

PostPosted: Mon 03 Aug '15 12:02    Post subject: Reply with quote

That does not answer the question which Windows Kit Apachelounge is using at the moment for the VC14 builds. I guess that is 8.1. Why 8.1? Are you targetting Windows 8.1, for which that Windows Kit was introduced?

Anyway, the PHP devs will be using Windows Kit 10. I am doing the same for my own PHP builds. If Apachelounge has to make the quite arbitrary choice bewteen the 8.1-kit and the 10-kit, my suggestion is to follow the choice of the PHP devs.
Back to top
Steffen
Moderator


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

PostPosted: Mon 03 Aug '15 12:25    Post subject: Reply with quote

Tell me, what is the advantage with the use of the Universal SDK. Default is 8.1, better to stick with it, I am almost sure it introduces overhead, and no sense e.g. targeting xbox or to make it a store app. I see no need to use 10-kit and compatibility issues with e.g. PHP I do not expect at all.

Way back I had the same discussion between 7.0 (default VC10) and 7.1. Some modules/httpd are using 7.0 others 7.1. Never it was an issue.

AL is not strict following what PHP does or advises
Back to top
Jan-E



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

PostPosted: Mon 03 Aug '15 13:03    Post subject: Reply with quote

Default is not 8.1 anymore for things you build from the command line (like OpenSSL and PHP). If you do a fresh install of VS 2015 (after the release) the default for the VS 2015 command prompts is Windows Kit 10. You will have to tweak the command prompts manually to target 8.1.

In the same fresh VS 2015 Pro I just converted Apache.dsw to see what would happen then. Well, in the Visual Interface the default for imported projects still is 8.1.

Microsoft is pushing hard to get everyone to Windows 10 as soon as possible. Windows Kit 10 might have some overhead, but speed and stability improvements wll also be applied primarily to Windows Kit 10. I would be surprised to see any improvements in that kit the coming time.
Back to top
admin
Site Admin


Joined: 15 Oct 2005
Posts: 677

PostPosted: Mon 03 Aug '15 13:26    Post subject: Reply with quote

When you uncheck during install/change Universal Windows App Development Tools and only check Programming Languages C++, I think you get rid of the bunch of SDK's.
Back to top
Jan-E



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

PostPosted: Mon 03 Aug '15 13:34    Post subject: Reply with quote

Steffen wrote:
Way back I had the same discussion between 7.0 (default VC10) and 7.1. Some modules/httpd are using 7.0 others 7.1. Never it was an issue.

Are you sure about that? There are unexplicable issues in the Windows builds of Apache, like the AcceptEx thing. And I remember Gregg or Mario saying that he never got mod_php running stable. Mod_php on Centos is rock-solid. My first thought would be to use the same libraries in the Windows builds everywhere.
Back to top
Jan-E



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

PostPosted: Mon 03 Aug '15 13:53    Post subject: Reply with quote

admin wrote:
When you uncheck during install/change Universal Windows App Development Tools and only check Programming Languages C++, I think you get rid of the bunch of SDK's.

I do not know what will not be installed then. Only
C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\um\
or the whole of
C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0?

On my development machine I've got previous versions of Kit 10:
10.0.10056.0, 10.0.10069.0, 10.0.150.0 and the current one 10.0.10240.0. Only the 10.0.10240.0 has a Winsock2.h in it's UM directory.

Edit: On my laptop I still have the VS 2015 RC. The command prompts there shown an interesting combination of Kit 10 and Kit 8.1. The include:

Code:
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE;
C:\Program Files(x86)\Microsoft Visual Studio 14.0\VC\ATLMFC\INCLUDE;
C:\Program Files (x86)\Windows Kits\10\\include\10.0.10056.0\ucrt;
C:\Program Files (x86)\Windows Kits\8.1\include\shared;
C:\Program Files (x86)\Windows Kits\8.1\include\um;
C:\Program Files (x86)\Windows Kits\8.1\include\winrt;

Network connectivity (WinSock2.h) is in the um directory of the 8.1 kit.
Back to top
Steffen
Moderator


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

PostPosted: Tue 04 Aug '15 10:27    Post subject: Reply with quote

When you install on a fresh windows with unchecked Universal Windows App Development Tools, you should only have 8.1.
Back to top
James Blond
Moderator


Joined: 19 Jan 2006
Posts: 7288
Location: Germany, Next to Hamburg

PostPosted: Wed 05 Aug '15 18:28    Post subject: Reply with quote

Jan-E wrote:
And I remember Gregg or Mario saying that he never got mod_php running stable.


It got better over the time. For sure the mod_php is faster. But I still prefer mod_fcgid even on linux. An amok php process can be handled easy instead of killing or restarting the whole httpd process.

Of cause benchmarks are a fine thing but fcgid also offers the options to run different PHP versions at the same time. Each vhost can has its own php.ini With linux I can let the PHP process run as the sftp user / owner of the vhost. With 8 cores for real and 16 if I count the hyper threading it doesn't matter.

Back to the topic: the builds can be different if you don't use mod_php. I noticed that often older VC compiled modules load into apache with the newest VC version. I can understand Steffen that he doesn't want to change the VC or SDK version soon(ish). It takes ages to compile apache with this VC and that VC and so on. The httpd build process doesn't work so well like PHP building. The httpd build compiles some stuff over and over again. ( welcome to apr hell).

But I agree that we should agree to have compatible binaries in the end.

-- joke on --

we should go back to VC6. it runs on all windows plattforms and the build is much much faster compared to any newer VC verrsion.

--joke off --
Back to top
glsmith
Moderator


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

PostPosted: Wed 05 Aug '15 22:14    Post subject: Reply with quote

+1 to VC6 ... seriously.

The apr_hell is thanks to it being a dependency, and that it creates other files (.h & .exe) which causes the so smart it's stupid Intellinonsense to think it has changed since last compiled (one module prior). It would be nice if you could turn it off, but you can't.

It's an IDE thing however, if you compile at the command line you do not recompile apr and others multiple times.
Back to top
Jan-E



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

PostPosted: Fri 14 Aug '15 15:50    Post subject: Reply with quote

Steffen wrote:
When you install on a fresh windows with unchecked Universal Windows App Development Tools, you should only have 8.1.

On a fresh Windows, you'll also have to check Programming Languages -> Visual C++ -> Common Tools for Visual C++ 2015. This will give you the 'Windows 8.1 SDK and Universal CRT SDK' and the 'Common Tools for Visual C++ 2015' in addtion to the 'Web Developer Tools'. In the checkboxes it is not clear that the 8.1 SDK is hidden behind the Common Tools.

I finally got the time to check this properly. This is the setup one needs:



If you check the Windows 10 SDK as well, VS2015 behaves inconsistently. In the GUI it defaults to the 8.1 SDK, in the command prompts it includes the Windows 10 SDK.
Back to top


Reply to topic   Topic: Universal Windows App platform VC14 View previous topic :: View next topic
Post new topic   Forum Index -> Building & Member Downloads