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: Anyone get Trunk to compile?
Author
glsmith
Moderator


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

PostPosted: Mon 12 May '08 20:34    Post subject: Anyone get Trunk to compile? Reply with quote

I have a couple problem.

request.c includes mod_request.h but nothing in libhttpd project to copy the file into /include like the others. No problem, done.

Then
H:\build\httpd-2.3.x\server\request.c(1477) : error C2152: 'function' : pointers to functions with different attributes
H:\build\httpd-2.3.x\server\request.c(1477) : warning C4024: 'ap_expr_eval' : different types for formal and actual parameter 5


I've been trying this here and there I think for a year and always get stopped here. For all I know there are these strewn throughout and it may be more of a headache than it is worth. I have no real need other than it would be fun to play with.
Back to top
tdonovan
Moderator


Joined: 17 Dec 2005
Posts: 611
Location: Milford, MA, USA

PostPosted: Wed 14 May '08 6:07    Post subject: Reply with quote

By coincidence, I tried building from trunk yesterday too.

mod_request was split off as a new module in the 2.3 trunk.
The build was changed OK for Unix, but they missed a few things for Windows.

I filed bug 44974 for the changes to let Windows build with this new module.

Building from the truck is always a challenge. There is typically new stuff in it which hasn't been adapted for all platforms.
I find that the trunk builds on Windows about 50% of the time at best.

A couple of additional things I needed to do to build from the trunk on Windows:
Quote:
COPY modules\cache\ap_socache.h .\include

COPY modules\filters\mod_request.h .\include

Add file srclib\apr-util\ldap\apr_ldap_rebind.c to the apr-util project, group: ldap

Change server\mpm\winnt\child.c line 54:
extern int volatile is_graceful = 0;

Add Rpcrt4.lib to the htpasswd project linker inputs

Remove three files from the mod_ssl project: ssl_scache_dbm.c, ssl_scache_shmcb.c, ssl_scache_dc.c

Hope this helps,
-tom-
Back to top
glsmith
Moderator


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

PostPosted: Wed 14 May '08 17:38    Post subject: Reply with quote

Thank you Tom, yet again!.
In the process of giving it a try.

Looking at comment #3 of PR 44974, you've been blessed by the Apache gods, good job!

I hear you on 50% success at best .. I'm running at 0 Laughing

Edit:

Guess on this one I'm just doomed to fail.
Something about that function pointer that this VC++ just does not like.
Time to put effort elsewhere I guess.

I believe the &err is the problem.
Back to top
tdonovan
Moderator


Joined: 17 Dec 2005
Posts: 611
Location: Milford, MA, USA

PostPosted: Thu 15 May '08 15:23    Post subject: Reply with quote

If you still get:
Quote:
H:\build\httpd-2.3.x\server\request.c(1477) : warning C4024: 'ap_expr_eval' : different types for formal and actual parameter 5
then it is the 5th parameter - ap_expr_string - which is the problem. The compiler needs to know its type, string_func_t.

This is same problem as in modules/filters/mod_filter.c line 149.

request.c line 1476 should look like this after the change:
Code:
                if (!ap_expr_eval(r, entry_core->condition, &err, NULL,
                                  (string_func_t) ap_expr_string, NULL)) {

-tom-
Back to top
glsmith
Moderator


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

PostPosted: Thu 15 May '08 19:47    Post subject: Reply with quote

B-I-N-G-O
Apache/2.3.0-dev (Win32) Server at localhost Port 80

Now that worked. The modification to request.c was not part of your PR 44974 so dummy me didn't patch/modify it. I'm still rather fuzzy on much of this and had no clue how to fix anyway. Should a patch be added to the PR for it?

as of R656485:

They broke ab.c yet again, they added added use of INT_MAX w/o adding a
#include <limits.h> /* for INT_MAX */
like in every other source file that uses it, or removed it by accident (didn't dig to see).

I'm getting 3 fatals at linking (util_ldap.obj: unresolved external symbol) in mod_ldap, apr_ldap_rebind_add/init/remove, the calls seem to be declared (I think) in apr_ldap_rebind.h, adding said file to project or adding an include <> to it in util_ldap.c still didn't work. Then again, see fuzzy note above. I'm not too concerned so I will not let this one drive me coo-coo, I hope. Does it need an APU_DECLARE like in ..._rebind.c?


mod_request.so didn't build and I have no clue why. Added the project file but it compiled right passed it like it wasn't there. Obviously I need to connect it to the build process and fuzz factor bites me again. It's in makefile.win (_build) so I'm stumped. It certainly wanted to copy it as part of installbin.

Gregg
Back to top
tdonovan
Moderator


Joined: 17 Dec 2005
Posts: 611
Location: Milford, MA, USA

PostPosted: Fri 16 May '08 5:19    Post subject: Reply with quote

re: "Should a patch be added to the PR for it? "
You are right - oversight on my part.

re: "w/o adding a #include <limits.h>"
Right again! It is included down on line 429, which is apparently good enough for VC8 (and for gcc I guess) - but VC6 wants this included before INT_MAX is used, not after.

re: "mod_request.so didn't build"
Did you go into [Project] [Dependencies] and make buildbin dependent on mod_request. Also make mod_request dependent on libhttpd, libapr, and libaprutil.

re: "I'm getting 3 fatals at linking - ldap"
You will need to add the new file srclib\apr-util\ldap\apr_ldap_rebind.c to the libaprutil project (under Source Files - ldap) and re-build.

If you want mod_ldap to get built automatically, you will need to go into [Project] [Dependencies] and make project buildbin dependent on mod_ldap.

Hope this gets it going for you. The ldap stuff in apr-util and in mod_ldap look like it is undergoing some major changes, so expect the Windows trunk build to need some extra tinkering with ldap for a while.

-tom-
Back to top
glsmith
Moderator


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

PostPosted: Fri 16 May '08 16:15    Post subject: Reply with quote

re: Did you go into [Project] [Dependencies] and make buildbin dependent
No, part of the fuzz factor of all the ins and outs, or my vision blured as I was reading that in the PR, but most likely I read over too fast. Slow down Gregg. Funny, I've had the thing for years and only ever built 1.3.x/openssl at command line prior. If I got errors I'd just wait and try next release.

re: add the new file srclib\apr-util\ldap\apr_ldap_rebind.c to the libaprutil
I'd of never thought of adding it there!

re: and in mod_ldap look like it is undergoing some major changes
Same with mod_ssl's caching it looks reading the history on svn.
SSLSessionCache was an unknown since those files have been removed.

Made those additional additions/changes and it built this time w/o a hiccup.

It's been a good learning experience, thanks for guiding me in the right directions at the many forks in the road.

Gregg
Back to top


Reply to topic   Topic: Anyone get Trunk to compile? View previous topic :: View next topic
Post new topic   Forum Index -> Building & Member Downloads