rse 98/05/02 04:15:15
Modified: . STATUS src CHANGES Configure README.DSO src/include conf.h src/main http_main.c src/modules/proxy proxy_cache.c src/modules/standard mod_setenvif.c mod_so.c src/os/unix os-aix-dso.c src/support logresolve.c Log: The various fixes for the AIX 3.2, 4.1.5, 4.2 and 4.3 versions. Submitted by: Jens-Uwe Mager & Ralf S. Engelschall Reviewed by: Ralf S. Engelschall Revision Changes Path 1.347 +1 -0 apache-1.3/STATUS Index: STATUS =================================================================== RCS file: /export/home/cvs/apache-1.3/STATUS,v retrieving revision 1.346 retrieving revision 1.347 diff -u -r1.346 -r1.347 --- STATUS 1998/05/01 18:42:41 1.346 +++ STATUS 1998/05/02 11:15:06 1.347 @@ -78,6 +78,7 @@ * Ralf's DSO support for AIX * Ralf's DSO support for NetBSD, PR#2158 * Some optimization defines for NetBSD, PR#2165 + * Ralf's various porting changes to support AIX 3.2, 4.1.5, 4.2 and 4.3. Available Patches: 1.806 +7 -0 apache-1.3/src/CHANGES Index: CHANGES =================================================================== RCS file: /export/home/cvs/apache-1.3/src/CHANGES,v retrieving revision 1.805 retrieving revision 1.806 diff -u -r1.805 -r1.806 --- CHANGES 1998/05/01 10:00:41 1.805 +++ CHANGES 1998/05/02 11:15:07 1.806 @@ -1,5 +1,12 @@ Changes with Apache 1.3b7 + *) PORT: Various porting changes to support AIX 3.2, 4.1.5, 4.2 and 4.3. + Additionally the checks for finding the vendor DSO library were moved + from mod_so.c to Configure because first it needs $PLAT etc. and second + mod_so already uses an abstraction layer and does not fiddle with the + vendor functions itself. + [Jens-Uwe Mager, Ralf S. Engelschall] + *) PORT: Some optimization defines for NetBSD [Jaromir Dolecek <[EMAIL PROTECTED]>] PR#2165 1.252 +59 -8 apache-1.3/src/Configure Index: Configure =================================================================== RCS file: /export/home/cvs/apache-1.3/src/Configure,v retrieving revision 1.251 retrieving revision 1.252 diff -u -r1.251 -r1.252 --- Configure 1998/05/01 10:00:42 1.251 +++ Configure 1998/05/02 11:15:08 1.252 @@ -304,19 +304,37 @@ DEF_WANTHSREGEX=no ;; i386-ibm-aix*) - OS='IBM AIX PS/2' + OS='IBM AIX PS/2' CFLAGS="$CFLAGS -DAIX=1 -U__STR__ -DUSEBCOPY" DEF_WANTHSREGEX=no ;; - *-ibm-aix[1-3].*|*-ibm-aix4.[0-1]) - OS='IBM AIX < v4.2' - CFLAGS="$CFLAGS -DAIX=1 -DNEED_RLIM_T -U__STR__" - ;; + *-ibm-aix[1-2].*) + OS='IBM AIX 1.x/2.x' + CFLAGS="$CFLAGS -DAIX=1 -DNEED_RLIM_T -U__STR__" + ;; + *-ibm-aix3.*) + OS='IBM AIX 3.x' + CFLAGS="$CFLAGS -DAIX=30 -DNEED_RLIM_T -U__STR__" + ;; + *-ibm-aix4.1) + OS='IBM AIX 4.1' + CFLAGS="$CFLAGS -DAIX=41 -DNEED_RLIM_T -U__STR__" + ;; + *-ibm-aix4.2) + OS='IBM AIX 4.2' + CFLAGS="$CFLAGS -DAIX=42 -U__STR__" + LDFLAGS="$LDFLAGS -lm" + ;; + *-ibm-aix4.3) + OS='IBM AIX 4.3' + CFLAGS="$CFLAGS -DAIX=43 -U__STR__" + LDFLAGS="$LDFLAGS -lm" + ;; *-ibm-aix*) - OS='IBM AIX >= 4.2' - CFLAGS="$CFLAGS -DAIX=42 -U__STR__" + OS='IBM AIX' + CFLAGS="$CFLAGS -DAIX=1 -U__STR__" LDFLAGS="$LDFLAGS -lm" - ;; + ;; *-apollo-*) OS='Apollo Domain' CFLAGS="$CFLAGS -DAPOLLO" @@ -1015,6 +1033,32 @@ fi #################################################################### +## Some OS-related stuff for the DSO mechanism: +## Finding the vendor DSO functions +## +if [ "x$using_shlib" = "x1" ] ; then + DL_LIB="" + case $PLAT in + *-ibm-aix* ) + DL_LIB="-lld" + ;; + * ) + if ./helpers/TestCompile func dlopen; then + : + else + if ./helpers/TestCompile lib dl; then + DL_LIB="-ldl" + fi + fi + ;; + esac + if [ ".$DL_LIB" != . ]; then + LIBS="$LIBS $DL_LIB" + echo " + using $DL_LIB for vendor DSO support" + fi +fi + +#################################################################### ## Now we do some OS specific adjustments... for some OSs, we need ## to adjust CFLAGS and/or OPTIM depending on which compiler we ## are going to use. This is easy, since this can be gleamed from @@ -1062,6 +1106,13 @@ */cc|cc ) CFLAGS="$CFLAGS -n32" LDFLAGS="$LDFLAGS -n32" + ;; + esac + ;; + 'AIX 4.[123]') + case $CC in + */cc|cc ) + CFLAGS="$CFLAGS -qnogenpcomp -qnousepcomp" ;; esac ;; 1.8 +1 -1 apache-1.3/src/README.DSO Index: README.DSO =================================================================== RCS file: /export/home/cvs/apache-1.3/src/README.DSO,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- README.DSO 1998/04/30 11:32:04 1.7 +++ README.DSO 1998/05/02 11:15:08 1.8 @@ -151,7 +151,7 @@ o IRIX (6.2) o HP/UX (10.20) o UnixWare (2.01, 2.1.2) - o AIX (4.2) + o AIX (3.2, 4.1.5, 4.2, 4.3) o ReliantUNIX/SINIX (5.43) o SVR4 (-) 1.206 +2 -0 apache-1.3/src/include/conf.h Index: conf.h =================================================================== RCS file: /export/home/cvs/apache-1.3/src/include/conf.h,v retrieving revision 1.205 retrieving revision 1.206 diff -u -r1.205 -r1.206 --- conf.h 1998/05/01 10:08:40 1.205 +++ conf.h 1998/05/02 11:15:10 1.206 @@ -814,9 +814,11 @@ #if !defined(__GNUC__) || __GNUC__ < 2 || __GNUC_MINOR__ < 7 || defined(NEXT) #define ap_inline #define __attribute__(__x) +#define ENUM_BITFIELD(e,n,w) signed int n : w #else #define ap_inline __inline__ #define USE_GNU_INLINE +#define ENUM_BITFIELD(e,n,w) e n : w #endif /* Do we have sys/resource.h; assume that BSD does. */ 1.328 +1 -1 apache-1.3/src/main/http_main.c Index: http_main.c =================================================================== RCS file: /export/home/cvs/apache-1.3/src/main/http_main.c,v retrieving revision 1.327 retrieving revision 1.328 diff -u -r1.327 -r1.328 --- http_main.c 1998/04/28 05:59:53 1.327 +++ http_main.c 1998/05/02 11:15:11 1.328 @@ -3529,7 +3529,7 @@ } if (!pid) { -#ifdef AIX +#if defined(AIX) && (AIX >= 41) /* by default AIX binds to a single processor * this bit unbinds children which will then bind to another cpu */ 1.38 +2 -0 apache-1.3/src/modules/proxy/proxy_cache.c Index: proxy_cache.c =================================================================== RCS file: /export/home/cvs/apache-1.3/src/modules/proxy/proxy_cache.c,v retrieving revision 1.37 retrieving revision 1.38 diff -u -r1.37 -r1.38 --- proxy_cache.c 1998/04/15 17:09:29 1.37 +++ proxy_cache.c 1998/05/02 11:15:12 1.38 @@ -71,7 +71,9 @@ DEF_Explain +#ifndef abs #define abs(c) ((c) >= 0 ? (c) : -(c)) +#endif struct gc_ent { unsigned long int len; 1.22 +3 -1 apache-1.3/src/modules/standard/mod_setenvif.c Index: mod_setenvif.c =================================================================== RCS file: /export/home/cvs/apache-1.3/src/modules/standard/mod_setenvif.c,v retrieving revision 1.21 retrieving revision 1.22 diff -u -r1.21 -r1.22 --- mod_setenvif.c 1998/04/11 12:00:51 1.21 +++ mod_setenvif.c 1998/05/02 11:15:13 1.22 @@ -132,7 +132,9 @@ char *regex; /* regex to match against */ regex_t *preg; /* compiled regex */ table *features; /* env vars to set (or unset) */ - enum special special_type : 4; /* is it a "special" header ? */ + ENUM_BITFIELD( /* is it a "special" header ? */ + enum special, + special_type,4); unsigned icase : 1; /* ignoring case? */ } sei_entry; 1.24 +0 -29 apache-1.3/src/modules/standard/mod_so.c Index: mod_so.c =================================================================== RCS file: /export/home/cvs/apache-1.3/src/modules/standard/mod_so.c,v retrieving revision 1.23 retrieving revision 1.24 diff -u -r1.23 -r1.24 --- mod_so.c 1998/04/28 08:42:10 1.23 +++ mod_so.c 1998/05/02 11:15:13 1.24 @@ -125,35 +125,6 @@ */ -/* - * Module definition information used by Configure - * - * MODULE-DEFINITION-START - * Name: so_module - * ConfigStart - if ./helpers/TestCompile func dlopen; then - : - else - DL_LIB="" - case $PLAT in - *-ibm-aix* ) - DL_LIB="-lld" - ;; - * ) - if ./helpers/TestCompile lib dl; then - DL_LIB="-ldl" - fi - ;; - esac - if [ ".$DL_LIB" != . ]; then - LIBS="$LIBS $DL_LIB" - echo " + using $DL_LIB for DSO support" - fi - fi - * ConfigEnd - * MODULE-DEFINITION-END - */ - #include "httpd.h" #include "http_config.h" #include "http_log.h" 1.2 +14 -0 apache-1.3/src/os/unix/os-aix-dso.c Index: os-aix-dso.c =================================================================== RCS file: /export/home/cvs/apache-1.3/src/os/unix/os-aix-dso.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- os-aix-dso.c 1998/04/28 08:42:11 1.1 +++ os-aix-dso.c 1998/05/02 11:15:14 1.2 @@ -92,6 +92,20 @@ #include <ldfcn.h> /* + * AIX 4.3 does remove some useful definitions from ldfcn.h. Define + * these here to compensate for that lossage. + */ +#ifndef BEGINNING +#define BEGINNING SEEK_SET +#endif +#ifndef FSEEK +#define FSEEK(ldptr,o,p) fseek(IOPTR(ldptr),(p==BEGINNING)?(OFFSET(ldptr) +o):o,p) +#endif +#ifndef FREAD +#define FREAD(p,s,n,ldptr) fread(p,s,n,IOPTR(ldptr)) +#endif + +/* * Mode flags for the dlopen routine. */ #undef RTLD_LAZY 1.13 +3 -1 apache-1.3/src/support/logresolve.c Index: logresolve.c =================================================================== RCS file: /export/home/cvs/apache-1.3/src/support/logresolve.c,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- logresolve.c 1998/04/21 20:14:06 1.12 +++ logresolve.c 1998/05/02 11:15:15 1.13 @@ -117,7 +117,9 @@ struct nsrec **current, *new; struct hostent *hostdata; char *name; - extern int h_errno; /* some machines don't have this in their headers */ +#ifndef h_errno + extern int h_errno; /* some machines don't have this in their headers */ +#endif current = &nscache[((ipnum.s_addr + (ipnum.s_addr >> 8) + (ipnum.s_addr >> 16) + (ipnum.s_addr >> 24)) % BUCKETS)];