Please use the httpd user's mailing list for help with Apache on AIX.
cc_r, xlc_r, and xlC_r.
5.0.2.0, 5.0.2.1, and 5.0.2.2 cannot be used with optimization (-O2) due to a compiler bug. There is another issue which still affects more recent levels of the compiler. See operational problem "O3" below.
gcc: I've used 2.95.2 on AIX 4.3.3
If you want IPv6 supported on AIX 4.3.3, make sure you are have at least ML-09.
In general, you shouldn't be far behind on maintenance, but other than the IPv6 issue, I'm not aware that a particular maintenance level is good or bad w.r.t. Apache 2.0. I ran 4.3.3 with no maintenance for ages with no problem other than getaddrinfo() issues which caused APR to disable IPv6 support.
Don't even think about using any other version. If a newer one becomes available and it isn't mentioned here, and you've verified that it works fine, please notify Jeff Trawick.
DSO and non-DSO
rm -f a library before relinking or copying
over it. But libtool doesn't do that for us and neither does
the Apache build, resulting in a pain in the behind when doing
make install. Hopefully libtool can be tweaked?
Recommended work-around:
Manually remove files in prefix/lib before make install.
Alternately, run /usr/sbin/slibclean as root.
[trawick@gorthaur httpd-2.0]$ ./httpd -t
Syntax error on line 18 of /home/trawick/apacheinst/conf/httpd.conf:
Cannot load /home/trawick/apacheinst/modules/mod_actions.so into
server: 0509-130 Symbol resolution failed for
/home/trawick/apacheinst/modules/mod_actions.so because:
0509-136 Symbol __ashldi3 (number 15) is not exported from
dependent module lt-httpd.
0509-192 Examine .loader section symbols with the
'dump -Tv' command.
Recommended work-around:
After configuring but before running make, add the following three lines to the end of httpd-2.0/server/httpd.exp:
__ashldi3 __ashrdi3 __floatdisfThe set of symbols required may vary among gcc versions and may also depend on the set of modules you are loading as DSOs. Please send me any information about alternate lists of gcc-specific symbols.
Another work-around is to statically enable the problematic module.
Recommended work-around:
Use GNU make for that subdirectory.
-Wl,-G to your apxs options,
as in the following example:
apxs -c -Wl,-G mod_mine.cThe issue is that Apache 2.0 and APR require that run-time linking is used, but without the -G run-time linking won't be used to resolve symbols required by the DSO. Thus, it will be unable to find APR/APR-UTIL symbols (and perhaps other symbols as well).
This has been fixed in 2.0.45-dev and 2.1-dev. You can apply this patch to 2.0.44 to avoid the problem: patch
Upgrade AIX if you're at ML 0 of 5.1 and Apache won't load any DSOs no way now how whether you used gcc or the IBM compiler. One user reported such a problem; I couldn't find any reason in dump output from httpd and the DSO; user upgraded the box to ML 5 and it started working without any problems. YMMV. You definitely don't need to upgrade to ML 5 to make it work. I can't promise that I ever used 5.1 prior to ML 1, and I never encountered such a hard failure.
APR was changed 20030201 to disable sendfile support for 64-bit builds on AIX. This change should be in Apache 2.0.45+.
Recommended work-arounds for Apache < 2.0.45:
Remember: Only the 64-bit build of Apache is impacted, so you probably don't care about this.
Either of the following will avoid any problem with Apache:
add "--disable-sendfile" to your configure invocation
If using xlc_r and optimization, be sure to apply the patch at http://www.apache.org/dist/httpd/patches/apply_to_2.0.49/aix_xlc_optimization.patch. Without it, Apache won't be able to serve pages.
The problem is definitely present in vac.C 5.0.2.3 and 5.0.2.4. It is likely present in earlier levels.
If using CC=cc_r, you don't need the patch.
Committed to appropriate ASF cvs: 20011204 p.m.
While that is true, libtool does create and specify an exports file that is equivalent to -Wl,-bexpall, so we don't necessarily have to do anything on this issue.
Committed to httpd-2.0 cvs: 20011205 midday
Committed to httpd-2.0 cvs: 20011207 midday
irrelevant due to the way B1 was resolved
this was solved with the same code that was needed for run-time linking
Committed to httpd-2.0, apr, apr-util cvs: 20011212
AIXTHREAD_SCOPE=S is now set in the standard envvars file
referenced by apachectl.
This was committed to httpd-2.0 cvs 20011216.
Final tweaks for this were committed to httpd-2.0 cvs 20011217.
This was a user error. I did not have the "full core" setting
enabled. (Hint: smitty chgsys)
Now there are keywords to set these at initial httpd startup for prefork and worker MPMs, so I'm no longer tracking this as an issue.
These keywords -- ServerLimit for prefork MPM and ServerLimit/ThreadLimit for worker MPM -- were committed to httpd-2.0 cvs 20011219.
A couple of necessary fixes to make_exports.awk were committed to httpd-2.0 cvs 20011220. Unfortunately, there is a remaining problem for mod_proxy which is related to the existing B12, so I'm closing B16 and adding the mod_proxy flavor of the B12 problem to B12.
In other words, you still need to do the recommended work-around for B12 at the moment.
make_exports.awk was fixed to handle declarations that span lines. Committed to httpd-2.0 cvs 20011221.
A module affected by this was mod_deflate.
This was fixed in httpd-2.0 cvs 20011221.
We don't currently use these for DSOs, so it is irrelevant. If somebody gets 2.0 to work on AIX < 4.2, they'll probably need the .exp files that are there.
By the way... As of 20011221, I have built and loaded the DSO form of every Apache module in httpd-2.0 CVS except for mod_ssl, mod_auth_db, and mod_auth_digest.
This doesn't work right anywhere else so why dwell on it here?
This was fixed in vac.C 5.0.2.3, so the patch is no longer necessary.