Author |
|
avogler
Joined: 26 Jan 2015 Posts: 2 Location: United States
|
Posted: Tue 27 Jan '15 15:57 Post subject: Issues compiling Apache 2.4.10 on Windows x64 |
|
|
Background: Recently the Apache server I was using started giving the error: "err/hup on backcon". Through google, I found a patch that would fix this issue. In order to apply the patch to the single module that I needed to change (mod_proxy_connect), I needed to be able to compile Apache, instead of using a precompiled binary like I had previously.
I used the guide https://blog.redhoundsoftware.com/?p=131 to compile in x32.
Compiling: Through the help of google, and these forums, I managed to apply the changes from the patch and compile the module that I needed to update. However, everything that I used to do so was x32. I need to be able to compile it in x64.
The Issue: I thought that compiling in x64 would be as simple as switching the target build in Visual Studio 2010 from Win32 to x64.
I was wrong.
When I do so, only 18 of the 150 projects have the option to build in x64. The rest only allow me to build them as Win32.
My Question: Is there a known workaround for this issue? Are there other steps that I need to take in order to be able to compile Apache as x64? If it matters at all, all I need to do is compile the mod_proxy_connect module. |
|
Back to top |
|
glsmith Moderator
Joined: 16 Oct 2007 Posts: 2268 Location: Sun Diego, USA
|
Posted: Tue 27 Jan '15 20:30 Post subject: |
|
|
I keep and maintain a copy of command line makefiles which work on any VC version/architecture. I'd petition to have these added to the source but they would probably conflict with the new cmake build (which has never worked out well for my specific needs).
nmake /f makefile.win instdir=\Apache2410 installr
Edit: makefiles now included in Apache sources
I use these for VC10 & 12 which seem to be the only versions of VC that give me problems. 2013 has had something fixed and I have no conversion problems on it.
Last edited by glsmith on Sun 26 Feb '17 21:41; edited 1 time in total |
|
Back to top |
|
avogler
Joined: 26 Jan 2015 Posts: 2 Location: United States
|
Posted: Tue 27 Jan '15 22:26 Post subject: |
|
|
I appreciate the make files, but I would like to find a way to compile Apache through the VS ide.
Would it be a better approach to use VS 2013? |
|
Back to top |
|
glsmith Moderator
Joined: 16 Oct 2007 Posts: 2268 Location: Sun Diego, USA
|
Posted: Tue 27 Jan '15 23:30 Post subject: |
|
|
No, it just cleanly converted the dsp files for me as I do not remember having any problems with it. That was months ago but I usually do remember what gives me grief.
It does have a problem with apr_atomic which I still have not decided the best route to go to fix it. I do know that what it is failing on is something so old it should be removed since the comments about it are for a VC6 setup (basically out of the box) that is not capable of compiling apr_ldap anyway. |
|
Back to top |
|
Jan-E
Joined: 09 Mar 2012 Posts: 1265 Location: Amsterdam, NL, EU
|
Posted: Sun 01 Feb '15 2:19 Post subject: |
|
|
glsmith wrote: | https://www.apachehaus.net/misc/mak24.zip |
Did you have to change anything in those makefiles to compile Apache 2.4.12? If so, which changes? |
|
Back to top |
|
glsmith Moderator
Joined: 16 Oct 2007 Posts: 2268 Location: Sun Diego, USA
|
Posted: Sun 01 Feb '15 11:08 Post subject: |
|
|
Jan-E wrote: | Did you have to change anything in those makefiles to compile Apache 2.4.12? If so, which changes? |
I did for 2.4.11 and it was most likely to coincide with this commit to pick up mod_status.h
http://svn.apache.org/r1644247
due to: http://svn.apache.org/r1634527
Since these makefiles are typically for my personal use and so rarely need changing I do not keep them in any version control system. |
|
Back to top |
|
wangmaster
Joined: 25 Feb 2015 Posts: 12
|
Posted: Thu 26 Feb '15 17:17 Post subject: |
|
|
Is there any tooling or anything that you'd be willing to make available to help generate the makefile/dsp changes? Or is this really something that's pretty trivial if someone actually understood visual studio?
disclaimer - I'm a unix guy and thrown into having to build/maintain a windows build so I honestly have zero clue how any of the toolchain even remotely works on Windows. I've followed various instructions (as well as some you've provided as well) to get a 32-bit build from stock Apache httpd tarballs (and the usual dependencies - openssl, zlib, pcre, apr-iconv) but I'm completely lost how to get this to work with 64-bit.
I think I know enough to know that from this quote in a different post:
Quote: | Ugh, I forgot about that. While the APRs have a x64 build target, httpd does not. So it's really seeing x86. I've never had much luck with the IDE post 2008 even though I do have a script that converts the dsp files to x64 so I simply do not build in 2012 with the IDE, instead I build from the VS 2012 x64 command line using these sources;
|
and this particular topic that the issue is that there are changes necessary beyond adding a x64 configuration.
I absolutely appreciate all the information I've been able to glean from this and that you have made your build files available (I was able to successfully build with your buildfiles with VS2010) I've been trying to understand how to generate these artifacts myself - both to learn, and to not have a single point of failure
Any pointers or tips or anything that you can provide, scripts, etc that would help with the process of generating what you generate on my own?
Thanks much. |
|
Back to top |
|
glsmith Moderator
Joined: 16 Oct 2007 Posts: 2268 Location: Sun Diego, USA
|
Posted: Thu 26 Feb '15 20:13 Post subject: |
|
|
Those mak/dep files are generated on an old version of Visual Studio (6) which was the last version to generate them and they have been filtered somewhat after that (removing the x86 specific flags, making mod_ssl not dependent on any single version and changing hard coded paths to relative ones).
Since you're basically starting from scratch, you may want to give the cmake build a try. As a unix person you may understand it better and it should be fine if you're just trying to build on a single architecture. |
|
Back to top |
|
wangmaster
Joined: 25 Feb 2015 Posts: 12
|
Posted: Thu 26 Feb '15 20:46 Post subject: |
|
|
The problem I have with cmake is I believe it doesn't support apr-iconv and isn't that necessary for the charset features? (AddDefaultCharset AuthLdapCharsetConfig)? |
|
Back to top |
|
wangmaster
Joined: 25 Feb 2015 Posts: 12
|
Posted: Thu 26 Feb '15 22:04 Post subject: |
|
|
I just tried to do this with cmake and I'm royally confused. I'll start a new topic and hope for some help |
|
Back to top |
|