Skip navigation

Building apache 2.2.25 for OS X 10.6, how to compile apr_stat$INODE64?

985 Views 3 Replies Latest reply: Oct 24, 2013 4:12 PM by James Bucanek RSS
James Bucanek Level 1 Level 1 (55 points)
Currently Being Moderated
Aug 18, 2013 1:38 PM

In order to maintain PCI compliance, I've been trying to upgrade the version of Apache on my 10.6 Xserve from 2.2.22 to 2.2.25. So far, nothing that I've tried has worked. I've gone down an number of blind alleys, but after numerious ./configure changes, countless builds, experiments, and time spent with otool and nm, I think I've figured out what the basic problem is.

 

Apache 2.2.25 requires an updated version of the APR and APR-UTIL libraries. APR includes a function named apr_stat (the APR equivelent of stat). Here's the problem: In 10.6, the versions of libapr included in 10.6 define two functions: apr_stat and apr_stat$INODE64. This is consistent with Apple's stat and stat$INODE64 functions, that allow 32-bit processes to call the 64-bit stat function and vice versa.

 

My problem is that when I rebuild the APR and APR-UTIL libraries from apache's source, they only compile apr_stat. There's no apr_stat$INODE64, and any mod_*.so module that uses apr_stat$INODE64 fail to load. Which, by the way, seems to be most of them.

 

I only see two solutions, but don't know how to proceed with either one.

 

(a) Is there someway to get Apache's apr-1.4.8 and apr-util-1.5.2 to compile in such a way so it produces both apr_stat and the apr_stat$INODE64 functions? I've grepped the apr source to death and I can't find any compiler switch or configure flag that looks like like what I'm looking for.

 

(b) I suppose I could also recompile all of the mod_*.so modules, but I'm not sure where to start with that, or even if it's practical.

 

Any advice or help would be very much appreciated.

  • PECraig Calculating status...

    I've been having the same problem.  I got Apache 2.2.25 to build and install using your fix, but when I try to start it I get the following error:

     

    httpd: Syntax error on line 63 of /private/etc/apache2/httpd.conf: Cannot load /usr/libexec/apache2/mod_authz_owner.so into server: dlopen(/usr/libexec/apache2/mod_authz_owner.so, 10): Symbol not found: _apr_stat$INODE64\n  Referenced from: /usr/libexec/apache2/mod_authz_owner.so\n  Expected in: flat namespace\n in /usr/libexec/apache2/mod_authz_owner.so

     

    If I comment it out in the httpd.conf file it merely gives me another module that won't load and keeps leading me deeper and deeper into the config files.  I believe that the config, make and install compiled erroneously and now the version is corrupted.  Any suggestions?

     

    P.S. I'm using Mac OSX 10.8.4

     

    Message was edited by: PECraig

Actions

More Like This

  • Retrieving data ...

Bookmarked By (0)

Legend

  • This solved my question - 10 points
  • This helped me - 5 points
This site contains user submitted content, comments and opinions and is for informational purposes only. Apple disclaims any and all liability for the acts, omissions and conduct of any third parties in connection with or related to your use of the site. All postings and use of the content on this site are subject to the Apple Support Communities Terms of Use.