Tips on how to cross compile various programs

If you successfully have cross compiled a program or a library please add your findings to this page. To ease the process for other users please provide as much information as possible. Things that should be included are:

  • Program/Library version
  • Program/Library webpage
  • SDK version

Running ./configure

  • Version:
  • Webpage:
  • SDK version: 2.0+

It is very possible to use ./configure so that the application will cross-compile, and I have done so for several non-Axis-provided applications. I came across a handy reference to this on the dev-etrax mail reflector: http://mhonarc.axis.se/dev-etrax/msg01096.html, the details of which are included below.

I've not had to modify config.cache but if you find it necessary the entries are:

ac_cv_alignmentof_voidp=${ac_cv_alignmentof_voidp='1'}
ac_cv_c_bigendian=${ac_cv_c_bigendian='no'}
ac_cv_c_char_unsigned=${ac_cv_c_char_unsigned='no'}
ac_cv_sizeof___int64=${ac_cv_sizeof___int64='0'}
ac_cv_sizeof_int=${ac_cv_sizeof_int='4'}
ac_cv_sizeof_long=${ac_cv_sizeof_long='4'}
ac_cv_sizeof_long_long=${ac_cv_sizeof_long_long='8'}
ac_cv_sizeof_short=${ac_cv_sizeof_short='2'}
ac_cv_sizeof_voidp=${ac_cv_sizeof_voidp='4'}

script to run ./configure. Note that you should be in the same directory as configure for this to work.

env \
  CC="gcc-cris -mlinux -isystem $EROOT/include"  \
  CPP="gcc-cris -mlinux -E -isystem $EROOT/include" \
  CXX="g++-cris -mlinux -xc++ -isystem $EROOT/include" \
  LDFLAGS="-L$EROOT/lib" \
  OBJCOPY="objcopy-cris" \
  LD="ld-cris -mcrislinux" \
  AR="ar-cris" \
  RANLIB="ranlib-cris" \
  NM="nm-cris" \
  STRIP="strip-cris" \
  \
  ./configure \
    --host=cris-axis-linux \
    --without-x \
    --prefix=/usr

gnupg

  • Version: 1.4.2
  • Webpage: GnuPG
  • SDK version: ???
./configure --disable-asm --enable-minimal --host=i386 --target=cris CC=cris-gcc -mlinux

NTPD

#!/bin/sh
#
# adjust for your needs !!!
export prefix=~/src/axis/devboard_82/target/cris-axis-linux-gnu

env \
   CC="cris-gcc -mlinux "  \
   LDFLAGS="-L${prefix}/lib" \
   OBJCOPY="cris-objcopy" \
   AR="cris-ar" \
   RANLIB="cris-ranlib" \
   NM="cris-nm" \
   STRIP="cris-strip" \
   \
   ./configure \
     --host=cris-axis-linux \
     --without-x \
     --prefix=${prefix} \
     --disable-debugging \
     --disable-debug-timing \
     --disable-BANCOMM \
     --disable-GPSVME \
     --disable-all-clocks \
     --enable-DUMBCLOCK \
     --enable-LOCAL-CLOCK \
     --disable-parse-clocks \
     --enable-RAWDCF \
     --without-electricfence
exit

PHP

  • Version: 5.1.4
  • SDK: 2.10 RC2
  • Compiler: 3.2.1 Axis release R63/1.63-v32

Instructions how to compile PHP 5.1.4

ntpclient

  • compiled with: gcc version 3.2.1 Axis release R62/1.62

getting the real time

ntpclient is a little program from Larry Doolittle.

In case you never heard about NTP (= Network Time Protocol) please consult RFC 1305.

Several national standard autorities provide ntp servers for time keeping. see http://www.ntp.org for a list of of public timeservers.

Of cause you can setup your own timesource. You can download the server source from http://www.ntp.org. The page has several usefull links.

Quick-Howto: For a server setup consult: http://www.linuxhomenetworking.com/linux-hn/ntp.htm.

Our client only needs the server address only:

$ntpclient -h ntpserver

Consult the man-page for more options.

This Makefile let you compile the program for cris.

#
CC:=cris-gcc -mlinux
CFLAGS += -Wall -Wpointer-arith -Wcast-align -Wcast-qual -Wshadow \
 -Waggregate-return -Wnested-externs -Winline -Wwrite-strings \
 -Wstrict-prototypes

CFLAGS += -Os 
LDFLAGS= -s
all: ntpclient

test: ntpclient
	./ntpclient -d -r <test.dat

ntpclient: ntpclient.o phaselock.o

adjtimex: adjtimex.o

clean:
	$(RM) ntpclient adjtimex *.o

sqlite

Tcl & SQLite extension

Tcl

. ~/devel-fox/devboard-R2_01/init_env
wget http://heanet.dl.sourceforge.net/sourceforge/tcl/tcl8.4.14-src.tar.gz
tar xvfz tcl8.4.14-src.tar.gz
cd tcl8.4.14/unix
export ac_cv_func_strtod=yes
export tcl_cv_strtod_buggy=1
export CC=cris-axis-linux-gnu-gcc
./configure --prefix=/mnt/flash/ --host cris-axis-linux-gnu --build i686-linux
make
sudo make install

SQLite extension

. ~/devel-fox/devboard-R2_01/init_env
wget http://www.sqlite.org/sqlite-3_3_13-tea.tar.gz
tar xvfz http://www.sqlite.org/sqlite-3_3_13-tea.tar.gz
cd sqlite-3_3_13-tea
export CC=cris-axis-linux-gnu-gcc
./configure --disable-threads --prefix=/mnt/flash/ --host=cris-axis-linux-gnu --build=i686-linux
make
sudo make install

Cleanup a bit :

rm -rf /mnt/flash/man /mnt/flash/include /mnt/flash/lib/libtclstub* /mnt/flash/lib/tcl8.4/tcltest*

Then just SCP it all to flash :

scp -r /mnt/flash/* root@192.168.1.2:/mnt/flash/

Getting started

Cross compiling Python

  • Version: 2.4.3
  • Webpage:
  • SDK version: 2.0+

Cross-compiling Python is a bit tricky, since Python modules are usually compiled with the Python you are building and the standard build will thus fail. You can, however, download a patch for the standard Makefile that will take care of the gory details.

First step, create a working directory somewhere, 'cd' into it and run the following script that will set up your environment (you might call it 'create_python' or something of the sort):

mkdir build dist target
cd dist
wget "http://www.python.org/ftp/python/2.4.3/Python-2.4.3.tar.bz2"
wget "https://sourceforge.net/tracker/download.php?group_id=5470&atid=305470&file_id=97061&aid=1006238" -O python-cross-compile.patch
cd ..
tar jxvf dist/Python-2.4.3.tar.bz2
ln -s Python-2.4.3 Python
cd Python
patch -p3 < ../dist/python-cross-compile.patch
patch << 'EOP'
--- configure.in.original       2007-02-02 21:56:26.622438784 +0100
+++ configure.in        2007-02-02 21:57:16.977783608 +0100
@@ -3160,7 +3160,7 @@
     absconfigcommand=$(pwd)/$0
     mkdir -p buildpython
     cd buildpython
-    CC="" CXX="" AR="" RANLIB="" $absconfigcommand --prefix=$prefix
+    CC="" CXX="" AR="" RANLIB="" LDFLAGS="-fPIC" $absconfigcommand --prefix=$prefix
     cd ..
     BUILDPYTHON='buildpython/python$(BUILDEXE)'
     BUILDPGEN='buildpython/Parser/pgen$(BUILDEXE)'
EOP
autoconf < configure.in

As you can see, you'll need 'wget' and 'autoconf' - and of course 'tar' and 'patch' too.

You should now have a version of Python that will build twice: the first time it will compile a version for the host machine, and this version will then be used to create the one needed for the target. The modules (shared libraries) intended for the target will, unluckily, be tested on the host machine; but even if the test will fail, you can test them manually on the target afterwards.

Here follows the script I use to compile Python with uClibc for my FoxBoard; you only need to adjust the AXIS_SDK variable and the 'configure' options to suit your needs. Note also that I do some cleanup for files I won't use at the end of the script - YMMV.

/bin/bash

export AXIS_SDK="/home/fox/devboard-R2_01/"
export PATH="/usr/local/cris/bin:$AXIS_SDK/tools/build/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin"

case "$1" in
 uclibc)
   HOST="cris-axis-linux-gnuuclibc"
   export AXIS_TARGET="$AXIS_SDK/target/$HOST"
   export CC=" gcc_cris -mlinux -mno-mul-bug-workaround -muclibc=$AXIS_TARGET"
   ;;
 glibc)
   HOST="cris-axis-linux-gnu"
   export AXIS_TARGET="$AXIS_SDK/target/$HOST"
   export CC=" gcc-cris -mlinux -mno-mul-bug-workaround"
   ;;
 *)
   echo Usage: `basename $0` \(glibc\|uclibc\)
   echo
   exit 1
   ;;
esac


export LN=" ln"
export RM=" rm -f"

export AR=" ar-cris"
export INSTALL=" install_elinux -p"
export LD=" ld-cris -mcrislinux"
export OBJCOPY=" objcopy-cris"
export RANLIB=" ranlib-cris"
export STRIP=" strip-cris"

export OPT="-Os"
export CFLAGS="-Wall -Wshadow -g"
export LDFLAGS="-fPIC -L$AXIS_TARGET/lib -Wl,-rpath-link,$AXIS_TARGET/lib"

rm -rf build/*
rm -rf target/*

cd build/
../Python/configure \
 --prefix=/usr \
 --host=$HOST \
 --build=`uname -m`-pc-linux-gnu \
 --disable-shared \
 --disable-profiling \
 --disable-ipv6 \
 --without-cxx \
 --without-doc-strings \
 --without-threads \
 --without-tsc 2>&1 | tee ../configure.log

#other options:
# --with-pydebug \
# --disable-unicode \
#

# disable large file support, since it is broken: stat64() uses 32 bit struct
perl -i -pe's{^(#define _FILE_OFFSET_BITS) 64$}{$1 32}' pyconfig.h
# standard uClibc misses hypot - make sure we compile Python's one in
perl -i -pe's{^(MACHDEP_OBJS=.*)}{$1 Python/hypot.o}' Makefile

# compile everything
( make && make install prefix=`pwd`/../target/ ) 2>&1 | tee ../make.log

cd ../target/
#remove failed modules
$RM lib/python2.4/lib-dynload/*_failed.so
#cris-strip executables and shared libs
$STRIP bin/python lib/python2.4/lib-dynload/*.so
#remove *.pyc and *.pyo files from library
find . -name '*.py[co]' -exec rm {} \;
#remove unused files:
find . -type d -name test -exec rm -rf {} \;
rm -rf lib/python2.4/{curses,idlelib,lib-tk}

If all goes well, after (quite) a few minutes you should have a working Python in the directory 'target/'. If you find some trouble, just drop me a line — Antonio Galea 2007/02/02 22:14

I compiled it with glibc but only if I remove the export LDFLAGS=”-fPIC -L$AXIS_TARGET/lib -Wl,-rpath-link,$AXIS_TARGET/lib” line. Maybe this line is only needed for uClibc — Sandro Knauß 2007/09/10 19:02

3rd party modules for python

  • Version: 2.4.3
  • Webpage:
  • SDK version: 2.0+

For cross-compiling python modules that are normally installed via setup.py install. Copy the module in the directory where you have build python. Than go in the root directory of the module and then:

CC='$(CC)' \
LDSHARED='$(BLDSHARED)' \
OPT='$(OPT)' \
CROSS_COMPILE='yes' \
`pwd`/../build/$(BUILDPYTHON) -E setup.py \
--prefix=`pwd`/../target/ \
--install-scripts= `pwd`/../target/bin  \
--install-platlib= `pwd`/../target/lib/python2.4/lib-dynload \
--root=/

The most variables you get from the Makefile in the build directory. for running these lines you have to be in the build directory. For my configuration the variables are:

CC='gcc-cris -mlinux -mno-mul-bug-workaround'
LDSHARED='gcc-cris -mlinux -mno-mul-bug-workaround -shared'
OPT='-DNDEBUG -Os'
BUILDPYTHON='buildpython/python'

Maybe someone can create with these informations a Makefile for 3rd party modules.

If you get no error the 3rd party module should be in 'target/lib/python2.4/lib-dynload'. Just drop me a line if any error occur – Sandro Knauß 2007/09/10 20:02

expat

Steps:

  1. Create the directory $(AXIS_TOP_DIR)/apps/expat-2.0.0
  2. Place the Makefile file below into that directory
  3. Place the expat-2.0.0-crisv32.patch file below into that directory
  4. Download the expat-2.0.0.tar.gz tarball
  5. Extract the expat-2.0.0.tar.gz tarball to the $(AXIS_TOP_DIR)/apps/expat-2.0.0/src directory
  6. Change to the $(AXIS_TOP_DIR)/apps/expat-2.0.0 directory
  7. Run “cd src && patch -p1 < ../expat-2.0.0-crisv32.patch && cd ..”
  8. Run the SDK's “make crisv32-axis-linux-gnu” (or the appropriate command for your architecture)
  9. Run “make” to build the expat library
  10. Run “make install” to install the expat library

Makefile:

AXIS_USABLE_LIBS = UCLIBC GLIBC
include $(AXIS_TOP_DIR)/tools/build/Rules.axis

SRCDIR    = src
LDFLAGS  += -L$(prefix)/usr/lib
CPPFLAGS += -I$(prefix)/usr/include
CFLAGS   += -I$(prefix)/usr/include

INST_PROG = $(AXIS_TOP_DIR)/tools/build/bin/$(shell echo $(INSTALL)|sed 's/^ *//')

$(SRCDIR)/Makefile:
        cd $(SRCDIR) && \
        ./configure \
                --target=$(AXIS_BUILDTYPE) \
                --host=$(AXIS_BUILDTYPE) \
                --prefix=$(prefix) \
                --libdir=$(prefix)/usr/lib \
                --includedir=$(prefix)/usr/include \
                RANLIB="$(RANLIB)" AR="$(AR)" STRIP="$(STRIP)" \
                INSTALL="$(INST_PROG)" RM="$(RM)" \
                CC="$(CC)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)"

all install: $(SRCDIR)/Makefile
        $(MAKE) -C $(SRCDIR) $@
# We do not want man files in the image. Perhaps there is a better way of
# achieving this?
        @if [ $@ = install ]; then \
                metafiles --prefix $(prefix) ignore man; \
        fi

# We need to do distclean if we change target (the most common reason for
# doing clean?)  If no Makefile exist we assume that this package is clean.
clean distclean:
        @if test -f $(SRCDIR)/Makefile; then \
                $(MAKE) -C $(SRCDIR) distclean; \
        fi

expat-2.0.0-crisv32.patch:

diff -r expat-original/conftools/config.sub expat-modified/conftools/config.sub
436a437,439
>       crisv32 | crisv32-* )
>               basic_machine=crisv32-axis
>               ;;

The compile takes approximately 2 minutes on a 2 GHz build host. If you have any problems, feel free to e-mail me at axis-dev@headnut.org - Chris Verges, 9 May 2007 16:48 PST

zlib

Steps:

  1. Create the directory $(AXIS_TOP_DIR)/apps/zlib-1.2.3
  2. Place the Makefile file below into that directory
  3. Download the zlib-1.2.3.tar.gz tarball
  4. Extract the zlib-1.2.3.tar.gz tarball to the $(AXIS_TOP_DIR)/apps/zlib-1.2.3/src directory
  5. Change to the $(AXIS_TOP_DIR)/apps/zlib-1.2.3 directory
  6. Run the SDK's “make crisv32-axis-linux-gnu” (or the appropriate command for your architecture)
  7. Run “make” to build the zlib library
  8. Run “make install” to install the zlib library

Makefile:

AXIS_USABLE_LIBS = UCLIBC GLIBC
include $(AXIS_TOP_DIR)/tools/build/Rules.axis

SRCDIR    = src
LDFLAGS  += -L$(prefix)/usr/lib
CPPFLAGS += -I$(prefix)/usr/include
CFLAGS   += -I$(prefix)/usr/include

INST_PROG = $(AXIS_TOP_DIR)/tools/build/bin/$(shell echo $(INSTALL)|sed 's/^ *//')

all install: $(SRCDIR)/Makefile
        cd $(SRCDIR) && \
        RANLIB="$(RANLIB)" AR="$(AR) r" STRIP="$(STRIP)" \
        INSTALL="$(INST_PROG)" RM="$(RM)" \
        CC="$(CC)" CFLAGS="$(CFLAGS) -fPIC" LDFLAGS="$(LD) $(LDFLAGS)" \
        ./configure \
                --shared \
                --prefix=$(prefix)/usr
        $(MAKE) -C $(SRCDIR) $@
# We do not want man files in the image. Perhaps there is a better way of
# achieving this?
        if [ $@ = install ]; then \
                metafiles --prefix $(prefix) ignore man; \
        fi

# We need to do distclean if we change target (the most common reason for
# doing clean?)  If no Makefile exist we assume that this package is clean.
clean distclean:
        @if test -f $(SRCDIR)/Makefile; then \
                $(MAKE) -C $(SRCDIR) distclean; \
        fi

The compile takes approximately 30 seconds on a 2 GHz build host. If you have any problems, feel free to e-mail me at axis-dev@headnut.org - Chris Verges, 10 May 2007 17:50 PST

rng-tools

Steps:

  1. Create the directory $(AXIS_TOP_DIR)/apps/rng-tools-2
  2. Place the Makefile file below into that directory
  3. Download the rng-tools-2.tar.gz tarball
  4. Extract the rng-tools-2.tar.gz tarball to the $(AXIS_TOP_DIR)/apps/rng-tools-2/src directory
  5. Change to the $(AXIS_TOP_DIR)/apps/rng-tools-2 directory
  6. Run the SDK's “make crisv32-axis-linux-gnu” (or the appropriate command for your architecture)
  7. Run “make” to build the rngd program
  8. Run “make install” to install the rngd program

Makefile:

AXIS_USABLE_LIBS = UCLIBC GLIBC
include $(AXIS_TOP_DIR)/tools/build/Rules.axis

SRCDIR    = src
LDFLAGS  += -L$(prefix)/usr/lib
CPPFLAGS += -I$(prefix)/usr/include
CFLAGS   += -I$(prefix)/usr/include

INST_PROG = $(AXIS_TOP_DIR)/tools/build/bin/$(shell echo $(INSTALL)|sed 's/^ *//')

$(SRCDIR)/Makefile:
        cd $(SRCDIR) && \
        ./configure \
                --target=$(AXIS_BUILDTYPE) \
                --host=$(AXIS_BUILDTYPE) \
                --prefix=/usr \
                --disable-dependency-tracking \
                RANLIB="$(RANLIB)" AR="$(AR)" STRIP="$(STRIP)" \
                INSTALL="$(INST_PROG)" RM="$(RM)" \
                CC="$(CC)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)"

all install: $(SRCDIR)/Makefile
        $(MAKE) DESTDIR="$(prefix)" -C $(SRCDIR) $@
# We do not want man files in the image. Perhaps there is a better way of
# achieving this?
        if [ $@ = install ]; then \
                metafiles --prefix $(prefix) ignore man; \
        fi

# We need to do distclean if we change target (the most common reason for
# doing clean?)  If no Makefile exist we assume that this package is clean.
clean distclean:
        @if test -f $(SRCDIR)/Makefile; then \
                $(MAKE) -C $(SRCDIR) distclean; \
        fi

The compile takes approximately 1 minute on a 1.12 GHz build host. If you have any problems, feel free to e-mail me at axis-dev@headnut.org - Chris Verges, 21 May 2007 08:40 PST

Apache httpd

Steps:

  1. Create the directory $(AXIS_TOP_DIR)/apps/httpd-2.2.4
  2. Place the Makefile file below into that directory
  3. Place the httpd-2.2.4.patch file below into that directory
  4. Create the directory $(AXIS_TOP_DIR)/apps/httpd-2.2.4/conf
  5. Place the httpd.conf.in file below into that directory
  6. Place the httpd-mpm.conf.in file below into that directory
  7. Place the httpd-ssl.conf.in file below into that directory
  8. Modify the files in the conf directory to reflect your system's configuration as needed
  9. Download the httpd-2.2.4.tar.gz tarball
  10. Extract the httpd-2.2.4.tar.gz tarball to the $(AXIS_TOP_DIR)/apps/httpd-2.2.4/src directory
  11. Change to the $(AXIS_TOP_DIR)/apps/httpd-2.2.4 directory
  12. Run the SDK's “make crisv32-axis-linux-gnu” (or the appropriate command for your architecture)
  13. Run “make” to build the httpd program
  14. Run “make install” to install the httpd program

Makefile:

AXIS_USABLE_LIBS = UCLIBC GLIBC
include $(AXIS_TOP_DIR)/tools/build/Rules.axis

SRCDIR    = src
LDFLAGS  += -L$(prefix)/usr/lib
CPPFLAGS += -I$(prefix)/usr/include
CFLAGS   += -I$(prefix)/usr/include

INST_PROG = $(AXIS_TOP_DIR)/tools/build/bin/$(shell echo $(INSTALL)|sed 's/^ *//')

test:
        @echo "CC:     $(CC)"
        @echo "CFLAGS: $(CFLAGS)"

$(SRCDIR)/Makefile:
        -cd $(SRCDIR) && \
        patch -p1 -N < ../httpd-2.2.4.patch
        cp conf/httpd.conf.in $(SRCDIR)/docs/conf/httpd.conf.in
        cp conf/httpd-mpm.conf.in $(SRCDIR)/docs/conf/extra/httpd-mpm.conf.in
        cp conf/httpd-ssl.conf.in $(SRCDIR)/docs/conf/extra/httpd-ssl.conf.in
        cd $(SRCDIR) && \
        ./configure \
                --target=$(AXIS_BUILDTYPE) \
                --host=$(AXIS_BUILDTYPE) \
                --prefix=/usr/local/apache2 \
                --libdir=/usr/lib \
                --includedir=/usr/include \
                --with-expat=$(AXIS_TOP_DIR)/target/$(AXIS_BUILDTYPE)/usr \
                --disable-charset-lite \
                --disable-imagemap \
                --disable-status \
                --disable-userdir \
                --disable-deflate \
                --disable-so \
                --enable-auth-digest \
                --enable-autoindex \
                --enable-deflate \
                --enable-dir \
                --enable-expires \
                --enable-headers \
                --enable-mime-magic \
                --enable-rewrite \
                --enable-setenvif \
                --enable-ssl \
                --enable-usertrack \
                --enable-vhost-alias \
                --with-ssl=$(prefix) \
                --with-z=$(prefix)/usr \
                RANLIB="$(RANLIB)" AR="$(AR)" STRIP="$(STRIP)" \
                INSTALL="$(INST_PROG)" RM="$(RM)" \
                CC="$(CC)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)"

all install: $(SRCDIR)/Makefile
        $(MAKE) DESTDIR="$(prefix)" -C $(SRCDIR) $@
# We do not want man files in the image. Perhaps there is a better way of
# achieving this?
        if [ $@ = install ]; then \
                rm -Rf $(prefix)/usr/local/apache2/icons; \
                rm -Rf $(prefix)/usr/local/apache2/man; \
                rm -Rf $(prefix)/usr/local/apache2/manual; \
                rm -Rf $(prefix)/usr/local/apache2/logs; \
                \
                mkdir -p $(prefix)/etc/httpd; \
                cp -r $(prefix)/usr/local/apache2/conf/* $(prefix)/etc/httpd/; \
                rm -Rf $(prefix)/usr/local/apache2/conf; \
                cd $(prefix)/usr/local/apache2 && \
                        ln -sf ../../../etc/httpd conf; \
                \
                mkdir -p $(prefix)/var/log/httpd; \
                cd $(prefix)/usr/local/apache2 && \
                        ln -sf ../../../var/log/httpd logs; \
                \
        fi

# We need to do distclean if we change target (the most common reason for
# doing clean?)  If no Makefile exist we assume that this package is clean.
clean distclean:
        @if test -f $(SRCDIR)/Makefile; then \
                $(MAKE) -C $(SRCDIR) distclean; \
        fi

httpd-2.2.4.patch:

diff --recursive --context=5 --new-file httpd-original/configure httpd-2.2.4/configure
*** httpd-original/configure    2007-01-05 22:40:00.000000000 -0800
--- httpd-2.2.4/configure       2007-04-25 01:53:19.000000000 -0700
***************
*** 6713,6725 ****
  echo "$as_me:$LINENO: checking for void pointer length" >&5
  echo $ECHO_N "checking for void pointer length... $ECHO_C" >&6
  if test "${ap_void_ptr_lt_long+set}" = set; then
    echo $ECHO_N "(cached) $ECHO_C" >&6
  else
!   if test "$cross_compiling" = yes; then
!   ap_void_ptr_lt_long=yes
! else
    cat >conftest.$ac_ext <<_ACEOF
  /* confdefs.h.  */
  _ACEOF
  cat confdefs.h >>conftest.$ac_ext
  cat >>conftest.$ac_ext <<_ACEOF
--- 6713,6725 ----
  echo "$as_me:$LINENO: checking for void pointer length" >&5
  echo $ECHO_N "checking for void pointer length... $ECHO_C" >&6
  if test "${ap_void_ptr_lt_long+set}" = set; then
    echo $ECHO_N "(cached) $ECHO_C" >&6
  else
! #  if test "$cross_compiling" = yes; then
! #  ap_void_ptr_lt_long=yes
! #else
    cat >conftest.$ac_ext <<_ACEOF
  /* confdefs.h.  */
  _ACEOF
  cat confdefs.h >>conftest.$ac_ext
  cat >>conftest.$ac_ext <<_ACEOF
***************
*** 6749,6760 ****
  
  ( exit $ac_status )
  ap_void_ptr_lt_long=yes
  fi
  rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
  fi
! fi
  echo "$as_me:$LINENO: result: $ap_void_ptr_lt_long" >&5
  echo "${ECHO_T}$ap_void_ptr_lt_long" >&6
  
  if test "$ap_void_ptr_lt_long" = "yes"; then
      { { echo "$as_me:$LINENO: error: Size of \"void *\" is less than size of \"long\"" >&5
--- 6749,6761 ----
  
  ( exit $ac_status )
  ap_void_ptr_lt_long=yes
  fi
  rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ #fi
  fi
! ap_void_ptr_lt_long=no
  echo "$as_me:$LINENO: result: $ap_void_ptr_lt_long" >&5
  echo "${ECHO_T}$ap_void_ptr_lt_long" >&6
  
  if test "$ap_void_ptr_lt_long" = "yes"; then
      { { echo "$as_me:$LINENO: error: Size of \"void *\" is less than size of \"long\"" >&5
diff --recursive --context=5 --new-file httpd-original/server/Makefile.in httpd-2.2.4/server/Makefile.in
*** httpd-original/server/Makefile.in   2006-03-09 13:29:55.000000000 -0800
--- httpd-2.2.4/server/Makefile.in      2007-04-25 01:53:19.000000000 -0700
***************
*** 24,34 ****
  gen_test_char_OBJECTS = gen_test_char.lo util_debug.lo
  gen_test_char: $(gen_test_char_OBJECTS)
        $(LINK) $(EXTRA_LDFLAGS) $(gen_test_char_OBJECTS) $(EXTRA_LIBS)
  
  test_char.h: gen_test_char
!       ./gen_test_char > test_char.h
  
  util.lo: test_char.h
  
  EXPORT_DIRS = $(top_srcdir)/include $(top_srcdir)/os/$(OS_DIR) $(top_srcdir)/modules/http
  EXPORT_DIRS_APR = $(APR_INCLUDEDIR) $(APU_INCLUDEDIR)
--- 24,34 ----
  gen_test_char_OBJECTS = gen_test_char.lo util_debug.lo
  gen_test_char: $(gen_test_char_OBJECTS)
        $(LINK) $(EXTRA_LDFLAGS) $(gen_test_char_OBJECTS) $(EXTRA_LIBS)
  
  test_char.h: gen_test_char
!       #./gen_test_char > test_char.h
  
  util.lo: test_char.h
  
  EXPORT_DIRS = $(top_srcdir)/include $(top_srcdir)/os/$(OS_DIR) $(top_srcdir)/modules/http
  EXPORT_DIRS_APR = $(APR_INCLUDEDIR) $(APU_INCLUDEDIR)
diff --recursive --context=5 --new-file httpd-original/server/test_char.h httpd-2.2.4/server/test_char.h
*** httpd-original/server/test_char.h   1969-12-31 16:00:00.000000000 -0800
--- httpd-2.2.4/server/test_char.h      2007-04-25 01:53:19.000000000 -0700
***************
*** 0 ****
--- 1,23 ----
+ /* this file is automatically generated by gen_test_char, do not edit */
+ #define T_ESCAPE_SHELL_CMD     (1)
+ #define T_ESCAPE_PATH_SEGMENT  (2)
+ #define T_OS_ESCAPE_PATH       (4)
+ #define T_HTTP_TOKEN_STOP      (8)
+ #define T_ESCAPE_LOGITEM       (16)
+ #define T_ESCAPE_FORENSIC      (32)
+ 
+ static const unsigned char test_char_table[256] = {
+     32,62,62,62,62,62,62,62,62,62,63,62,62,62,62,62,62,62,62,62,
+     62,62,62,62,62,62,62,62,62,62,62,62,14,0,23,6,1,38,1,1,
+     9,9,1,0,8,0,0,10,0,0,0,0,0,0,0,0,0,0,40,15,
+     15,8,15,15,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+     0,0,0,0,0,0,0,0,0,0,0,15,31,15,7,0,7,0,0,0,
+     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+     0,0,0,15,39,15,1,62,54,54,54,54,54,54,54,54,54,54,54,54,
+     54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,
+     54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,
+     54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,
+     54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,
+     54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,
+     54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54 
+ };
diff --recursive --context=5 --new-file httpd-original/srclib/apr/configure httpd-2.2.4/srclib/apr/configure
*** httpd-original/srclib/apr/configure 2007-01-05 22:39:14.000000000 -0800
--- httpd-2.2.4/srclib/apr/configure    2007-04-25 01:53:19.000000000 -0700
***************
*** 9826,9850 ****
      ;;
    *)
      # If test is not a shell built-in, we'll probably end up computing a
      # maximum length that is only half of the actual maximum length, but
      # we can't tell.
!     SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
!     while (test "X"`$SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \
!              = "XX$teststring") >/dev/null 2>&1 &&
!           new_result=`expr "X$teststring" : ".*" 2>&1` &&
!           lt_cv_sys_max_cmd_len=$new_result &&
!           test $i != 17 # 1/2 MB should be enough
!     do
!       i=`expr $i + 1`
!       teststring=$teststring$teststring
!     done
!     teststring=
      # Add a significant safety factor because C++ compilers can tack on massive
      # amounts of additional arguments before passing them to the linker.
      # It appears as though 1/2 is a usable value.
!     lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
      ;;
    esac
  
  fi
--- 9826,9851 ----
      ;;
    *)
      # If test is not a shell built-in, we'll probably end up computing a
      # maximum length that is only half of the actual maximum length, but
      # we can't tell.
!     #SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
!     #while (test "X"`$SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \
!     #       = "XX$teststring") >/dev/null 2>&1 &&
!     #    new_result=`expr "X$teststring" : ".*" 2>&1` &&
!     #    lt_cv_sys_max_cmd_len=$new_result &&
!     #    test $i != 17 # 1/2 MB should be enough
!     #do
!     #  i=`expr $i + 1`
!     #  teststring=$teststring$teststring
!     #done
!     #teststring=
      # Add a significant safety factor because C++ compilers can tack on massive
      # amounts of additional arguments before passing them to the linker.
      # It appears as though 1/2 is a usable value.
!     #lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
!     lt_cv_sys_max_cmd_len=8192;
      ;;
    esac
  
  fi
  
***************
*** 28946,28970 ****
  #define HAVE_MAP_ANON 1
  _ACEOF
  
    fi
  
! echo "$as_me:$LINENO: checking for /dev/zero" >&5
! echo $ECHO_N "checking for /dev/zero... $ECHO_C" >&6
! if test "${ac_cv_file__dev_zero+set}" = set; then
!   echo $ECHO_N "(cached) $ECHO_C" >&6
! else
!   test "$cross_compiling" = yes &&
!   { { echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5
! echo "$as_me: error: cannot check for file existence when cross compiling" >&2;}
!    { (exit 1); exit 1; }; }
! if test -r "/dev/zero"; then
    ac_cv_file__dev_zero=yes
! else
!   ac_cv_file__dev_zero=no
! fi
! fi
  echo "$as_me:$LINENO: result: $ac_cv_file__dev_zero" >&5
  echo "${ECHO_T}$ac_cv_file__dev_zero" >&6
  
  
  # Not all systems can mmap /dev/zero (such as HP-UX).  Check for that.
--- 28947,28971 ----
  #define HAVE_MAP_ANON 1
  _ACEOF
  
    fi
  
! #echo "$as_me:$LINENO: checking for /dev/zero" >&5
! #echo $ECHO_N "checking for /dev/zero... $ECHO_C" >&6
! #if test "${ac_cv_file__dev_zero+set}" = set; then
! #  echo $ECHO_N "(cached) $ECHO_C" >&6
! #else
! #  test "$cross_compiling" = yes &&
! #  { { echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5
! #echo "$as_me: error: cannot check for file existence when cross compiling" >&2;}
! #   { (exit 1); exit 1; }; }
! #if test -r "/dev/zero"; then
    ac_cv_file__dev_zero=yes
! #else
! #  ac_cv_file__dev_zero=no
! #fi
! #fi
  echo "$as_me:$LINENO: result: $ac_cv_file__dev_zero" >&5
  echo "${ECHO_T}$ac_cv_file__dev_zero" >&6
  
  
  # Not all systems can mmap /dev/zero (such as HP-UX).  Check for that.
***************
*** 33132,33151 ****
  #define const
  _ACEOF
  
  fi
  
! echo "$as_me:$LINENO: checking whether setpgrp takes no argument" >&5
! echo $ECHO_N "checking whether setpgrp takes no argument... $ECHO_C" >&6
! if test "${ac_cv_func_setpgrp_void+set}" = set; then
!   echo $ECHO_N "(cached) $ECHO_C" >&6
! else
!   if test "$cross_compiling" = yes; then
!   { { echo "$as_me:$LINENO: error: cannot check setpgrp when cross compiling" >&5
! echo "$as_me: error: cannot check setpgrp when cross compiling" >&2;}
!    { (exit 1); exit 1; }; }
! else
    cat >conftest.$ac_ext <<_ACEOF
  /* confdefs.h.  */
  _ACEOF
  cat confdefs.h >>conftest.$ac_ext
  cat >>conftest.$ac_ext <<_ACEOF
--- 33133,33152 ----
  #define const
  _ACEOF
  
  fi
  
! #echo "$as_me:$LINENO: checking whether setpgrp takes no argument" >&5
! #echo $ECHO_N "checking whether setpgrp takes no argument... $ECHO_C" >&6
! #if test "${ac_cv_func_setpgrp_void+set}" = set; then
! #  echo $ECHO_N "(cached) $ECHO_C" >&6
! #else
! #  if test "$cross_compiling" = yes; then
! #  { { echo "$as_me:$LINENO: error: cannot check setpgrp when cross compiling" >&5
! #echo "$as_me: error: cannot check setpgrp when cross compiling" >&2;}
! #   { (exit 1); exit 1; }; }
! #else
    cat >conftest.$ac_ext <<_ACEOF
  /* confdefs.h.  */
  _ACEOF
  cat confdefs.h >>conftest.$ac_ext
  cat >>conftest.$ac_ext <<_ACEOF
***************
*** 33184,33195 ****
  
  ( exit $ac_status )
  ac_cv_func_setpgrp_void=yes
  fi
  rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
! fi
! fi
  echo "$as_me:$LINENO: result: $ac_cv_func_setpgrp_void" >&5
  echo "${ECHO_T}$ac_cv_func_setpgrp_void" >&6
  if test $ac_cv_func_setpgrp_void = yes; then
  
  cat >>confdefs.h <<\_ACEOF
--- 33185,33196 ----
  
  ( exit $ac_status )
  ac_cv_func_setpgrp_void=yes
  fi
  rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
! #fi
! #fi
  echo "$as_me:$LINENO: result: $ac_cv_func_setpgrp_void" >&5
  echo "${ECHO_T}$ac_cv_func_setpgrp_void" >&6
  if test $ac_cv_func_setpgrp_void = yes; then
  
  cat >>confdefs.h <<\_ACEOF
***************
*** 33606,33622 ****
  echo "$as_me: error: cannot compute sizeof (void*), 77
  See \`config.log' for more details." >&2;}
     { (exit 1); exit 1; }; } ;;
  esac
  else
!   if test "$cross_compiling" = yes; then
!   { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
! See \`config.log' for more details." >&5
! echo "$as_me: error: cannot run test program while cross compiling
! See \`config.log' for more details." >&2;}
!    { (exit 1); exit 1; }; }
! else
    cat >conftest.$ac_ext <<_ACEOF
  /* confdefs.h.  */
  _ACEOF
  cat confdefs.h >>conftest.$ac_ext
  cat >>conftest.$ac_ext <<_ACEOF
--- 33607,33623 ----
  echo "$as_me: error: cannot compute sizeof (void*), 77
  See \`config.log' for more details." >&2;}
     { (exit 1); exit 1; }; } ;;
  esac
  else
! #  if test "$cross_compiling" = yes; then
! #  { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
! #See \`config.log' for more details." >&5
! #echo "$as_me: error: cannot run test program while cross compiling
! #See \`config.log' for more details." >&2;}
! #   { (exit 1); exit 1; }; }
! #else
    cat >conftest.$ac_ext <<_ACEOF
  /* confdefs.h.  */
  _ACEOF
  cat confdefs.h >>conftest.$ac_ext
  cat >>conftest.$ac_ext <<_ACEOF
***************
*** 33674,33684 ****
  { { echo "$as_me:$LINENO: error: cannot compute sizeof (void*), 77
  See \`config.log' for more details." >&5
  echo "$as_me: error: cannot compute sizeof (void*), 77
  See \`config.log' for more details." >&2;}
     { (exit 1); exit 1; }; }
! fi
  rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
  fi
  fi
  rm -f conftest.val
  else
--- 33675,33685 ----
  { { echo "$as_me:$LINENO: error: cannot compute sizeof (void*), 77
  See \`config.log' for more details." >&5
  echo "$as_me: error: cannot compute sizeof (void*), 77
  See \`config.log' for more details." >&2;}
     { (exit 1); exit 1; }; }
! #fi
  rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
  fi
  fi
  rm -f conftest.val
  else
***************
*** 34029,34045 ****
  echo "$as_me: error: cannot compute sizeof (char), 77
  See \`config.log' for more details." >&2;}
     { (exit 1); exit 1; }; } ;;
  esac
  else
!   if test "$cross_compiling" = yes; then
!   { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
! See \`config.log' for more details." >&5
! echo "$as_me: error: cannot run test program while cross compiling
! See \`config.log' for more details." >&2;}
!    { (exit 1); exit 1; }; }
! else
    cat >conftest.$ac_ext <<_ACEOF
  /* confdefs.h.  */
  _ACEOF
  cat confdefs.h >>conftest.$ac_ext
  cat >>conftest.$ac_ext <<_ACEOF
--- 34030,34046 ----
  echo "$as_me: error: cannot compute sizeof (char), 77
  See \`config.log' for more details." >&2;}
     { (exit 1); exit 1; }; } ;;
  esac
  else
! #  if test "$cross_compiling" = yes; then
! #  { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
! #See \`config.log' for more details." >&5
! #echo "$as_me: error: cannot run test program while cross compiling
! #See \`config.log' for more details." >&2;}
! #   { (exit 1); exit 1; }; }
! #else
    cat >conftest.$ac_ext <<_ACEOF
  /* confdefs.h.  */
  _ACEOF
  cat confdefs.h >>conftest.$ac_ext
  cat >>conftest.$ac_ext <<_ACEOF
***************
*** 34099,34109 ****
  echo "$as_me: error: cannot compute sizeof (char), 77
  See \`config.log' for more details." >&2;}
     { (exit 1); exit 1; }; }
  fi
  rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
! fi
  fi
  rm -f conftest.val
  else
    ac_cv_sizeof_char=0
  fi
--- 34100,34110 ----
  echo "$as_me: error: cannot compute sizeof (char), 77
  See \`config.log' for more details." >&2;}
     { (exit 1); exit 1; }; }
  fi
  rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
! #fi
  fi
  rm -f conftest.val
  else
    ac_cv_sizeof_char=0
  fi
***************
*** 34443,34459 ****
  echo "$as_me: error: cannot compute sizeof (int), 77
  See \`config.log' for more details." >&2;}
     { (exit 1); exit 1; }; } ;;
  esac
  else
!   if test "$cross_compiling" = yes; then
!   { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
! See \`config.log' for more details." >&5
! echo "$as_me: error: cannot run test program while cross compiling
! See \`config.log' for more details." >&2;}
!    { (exit 1); exit 1; }; }
! else
    cat >conftest.$ac_ext <<_ACEOF
  /* confdefs.h.  */
  _ACEOF
  cat confdefs.h >>conftest.$ac_ext
  cat >>conftest.$ac_ext <<_ACEOF
--- 34444,34460 ----
  echo "$as_me: error: cannot compute sizeof (int), 77
  See \`config.log' for more details." >&2;}
     { (exit 1); exit 1; }; } ;;
  esac
  else
! #  if test "$cross_compiling" = yes; then
! #  { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
! #See \`config.log' for more details." >&5
! #echo "$as_me: error: cannot run test program while cross compiling
! #See \`config.log' for more details." >&2;}
! #   { (exit 1); exit 1; }; }
! #else
    cat >conftest.$ac_ext <<_ACEOF
  /* confdefs.h.  */
  _ACEOF
  cat confdefs.h >>conftest.$ac_ext
  cat >>conftest.$ac_ext <<_ACEOF
***************
*** 34513,34523 ****
  echo "$as_me: error: cannot compute sizeof (int), 77
  See \`config.log' for more details." >&2;}
     { (exit 1); exit 1; }; }
  fi
  rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
! fi
  fi
  rm -f conftest.val
  else
    ac_cv_sizeof_int=0
  fi
--- 34514,34524 ----
  echo "$as_me: error: cannot compute sizeof (int), 77
  See \`config.log' for more details." >&2;}
     { (exit 1); exit 1; }; }
  fi
  rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
! #fi
  fi
  rm -f conftest.val
  else
    ac_cv_sizeof_int=0
  fi
***************
*** 34857,34873 ****
  echo "$as_me: error: cannot compute sizeof (long), 77
  See \`config.log' for more details." >&2;}
     { (exit 1); exit 1; }; } ;;
  esac
  else
!   if test "$cross_compiling" = yes; then
!   { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
! See \`config.log' for more details." >&5
! echo "$as_me: error: cannot run test program while cross compiling
! See \`config.log' for more details." >&2;}
!    { (exit 1); exit 1; }; }
! else
    cat >conftest.$ac_ext <<_ACEOF
  /* confdefs.h.  */
  _ACEOF
  cat confdefs.h >>conftest.$ac_ext
  cat >>conftest.$ac_ext <<_ACEOF
--- 34858,34874 ----
  echo "$as_me: error: cannot compute sizeof (long), 77
  See \`config.log' for more details." >&2;}
     { (exit 1); exit 1; }; } ;;
  esac
  else
! #  if test "$cross_compiling" = yes; then
! #  { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
! #See \`config.log' for more details." >&5
! #echo "$as_me: error: cannot run test program while cross compiling
! #See \`config.log' for more details." >&2;}
! #   { (exit 1); exit 1; }; }
! #else
    cat >conftest.$ac_ext <<_ACEOF
  /* confdefs.h.  */
  _ACEOF
  cat confdefs.h >>conftest.$ac_ext
  cat >>conftest.$ac_ext <<_ACEOF
***************
*** 34927,34937 ****
  echo "$as_me: error: cannot compute sizeof (long), 77
  See \`config.log' for more details." >&2;}
     { (exit 1); exit 1; }; }
  fi
  rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
! fi
  fi
  rm -f conftest.val
  else
    ac_cv_sizeof_long=0
  fi
--- 34928,34938 ----
  echo "$as_me: error: cannot compute sizeof (long), 77
  See \`config.log' for more details." >&2;}
     { (exit 1); exit 1; }; }
  fi
  rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
! #fi
  fi
  rm -f conftest.val
  else
    ac_cv_sizeof_long=0
  fi
***************
*** 35271,35287 ****
  echo "$as_me: error: cannot compute sizeof (short), 77
  See \`config.log' for more details." >&2;}
     { (exit 1); exit 1; }; } ;;
  esac
  else
!   if test "$cross_compiling" = yes; then
!   { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
! See \`config.log' for more details." >&5
! echo "$as_me: error: cannot run test program while cross compiling
! See \`config.log' for more details." >&2;}
!    { (exit 1); exit 1; }; }
! else
    cat >conftest.$ac_ext <<_ACEOF
  /* confdefs.h.  */
  _ACEOF
  cat confdefs.h >>conftest.$ac_ext
  cat >>conftest.$ac_ext <<_ACEOF
--- 35272,35288 ----
  echo "$as_me: error: cannot compute sizeof (short), 77
  See \`config.log' for more details." >&2;}
     { (exit 1); exit 1; }; } ;;
  esac
  else
! #  if test "$cross_compiling" = yes; then
! #  { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
! #See \`config.log' for more details." >&5
! #echo "$as_me: error: cannot run test program while cross compiling
! #See \`config.log' for more details." >&2;}
! #   { (exit 1); exit 1; }; }
! #else
    cat >conftest.$ac_ext <<_ACEOF
  /* confdefs.h.  */
  _ACEOF
  cat confdefs.h >>conftest.$ac_ext
  cat >>conftest.$ac_ext <<_ACEOF
***************
*** 35341,35351 ****
  echo "$as_me: error: cannot compute sizeof (short), 77
  See \`config.log' for more details." >&2;}
     { (exit 1); exit 1; }; }
  fi
  rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
! fi
  fi
  rm -f conftest.val
  else
    ac_cv_sizeof_short=0
  fi
--- 35342,35352 ----
  echo "$as_me: error: cannot compute sizeof (short), 77
  See \`config.log' for more details." >&2;}
     { (exit 1); exit 1; }; }
  fi
  rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
! #fi
  fi
  rm -f conftest.val
  else
    ac_cv_sizeof_short=0
  fi
***************
*** 35685,35701 ****
  echo "$as_me: error: cannot compute sizeof (long long), 77
  See \`config.log' for more details." >&2;}
     { (exit 1); exit 1; }; } ;;
  esac
  else
!   if test "$cross_compiling" = yes; then
!   { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
! See \`config.log' for more details." >&5
! echo "$as_me: error: cannot run test program while cross compiling
! See \`config.log' for more details." >&2;}
!    { (exit 1); exit 1; }; }
! else
    cat >conftest.$ac_ext <<_ACEOF
  /* confdefs.h.  */
  _ACEOF
  cat confdefs.h >>conftest.$ac_ext
  cat >>conftest.$ac_ext <<_ACEOF
--- 35686,35702 ----
  echo "$as_me: error: cannot compute sizeof (long long), 77
  See \`config.log' for more details." >&2;}
     { (exit 1); exit 1; }; } ;;
  esac
  else
! #  if test "$cross_compiling" = yes; then
! #  { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
! #See \`config.log' for more details." >&5
! #echo "$as_me: error: cannot run test program while cross compiling
! #See \`config.log' for more details." >&2;}
! #   { (exit 1); exit 1; }; }
! #else
    cat >conftest.$ac_ext <<_ACEOF
  /* confdefs.h.  */
  _ACEOF
  cat confdefs.h >>conftest.$ac_ext
  cat >>conftest.$ac_ext <<_ACEOF
***************
*** 35755,35765 ****
  echo "$as_me: error: cannot compute sizeof (long long), 77
  See \`config.log' for more details." >&2;}
     { (exit 1); exit 1; }; }
  fi
  rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
! fi
  fi
  rm -f conftest.val
  else
    ac_cv_sizeof_long_long=0
  fi
--- 35756,35766 ----
  echo "$as_me: error: cannot compute sizeof (long long), 77
  See \`config.log' for more details." >&2;}
     { (exit 1); exit 1; }; }
  fi
  rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
! #fi
  fi
  rm -f conftest.val
  else
    ac_cv_sizeof_long_long=0
  fi
***************
*** 35975,35985 ****
  if test "$ac_cv_sizeof_ssize_t" = "$ac_cv_sizeof_int"; then
      ssize_t_fmt='#define APR_SSIZE_T_FMT "d"'
  elif test "$ac_cv_sizeof_ssize_t" = "$ac_cv_sizeof_long"; then
      ssize_t_fmt='#define APR_SSIZE_T_FMT "ld"'
  else
!     ssize_t_fmt='#error Can not determine the proper size for ssize_t'
  fi
  
  echo "$as_me:$LINENO: checking size of size_t" >&5
  echo $ECHO_N "checking size of size_t... $ECHO_C" >&6
  if test "${ac_cv_sizeof_size_t+set}" = set; then
--- 35976,35987 ----
  if test "$ac_cv_sizeof_ssize_t" = "$ac_cv_sizeof_int"; then
      ssize_t_fmt='#define APR_SSIZE_T_FMT "d"'
  elif test "$ac_cv_sizeof_ssize_t" = "$ac_cv_sizeof_long"; then
      ssize_t_fmt='#define APR_SSIZE_T_FMT "ld"'
  else
!     ssize_t_fmt='#define APR_SSIZE_T_FMT "d"'
!     #ssize_t_fmt='#error Can not determine the proper size for ssize_t'
  fi
  
  echo "$as_me:$LINENO: checking size of size_t" >&5
  echo $ECHO_N "checking size of size_t... $ECHO_C" >&6
  if test "${ac_cv_sizeof_size_t+set}" = set; then
***************
*** 36039,36049 ****
  if test "$ac_cv_sizeof_size_t" = "$ac_cv_sizeof_int"; then
      size_t_fmt='#define APR_SIZE_T_FMT "d"'
  elif test "$ac_cv_sizeof_size_t" = "$ac_cv_sizeof_long"; then
      size_t_fmt='#define APR_SIZE_T_FMT "ld"'
  else
!     size_t_fmt='#error Can not determine the proper size for size_t'
  fi
  
  echo "$as_me:$LINENO: checking size of off_t" >&5
  echo $ECHO_N "checking size of off_t... $ECHO_C" >&6
  if test "${ac_cv_sizeof_off_t+set}" = set; then
--- 36041,36052 ----
  if test "$ac_cv_sizeof_size_t" = "$ac_cv_sizeof_int"; then
      size_t_fmt='#define APR_SIZE_T_FMT "d"'
  elif test "$ac_cv_sizeof_size_t" = "$ac_cv_sizeof_long"; then
      size_t_fmt='#define APR_SIZE_T_FMT "ld"'
  else
!     size_t_fmt='#define APR_SIZE_T_FMT "d"'
!     #size_t_fmt='#error Can not determine the proper size for size_t'
  fi
  
  echo "$as_me:$LINENO: checking size of off_t" >&5
  echo $ECHO_N "checking size of off_t... $ECHO_C" >&6
  if test "${ac_cv_sizeof_off_t+set}" = set; then
***************
*** 39329,39346 ****
        echo "$as_me:$LINENO: checking for working PROCESS_SHARED locks" >&5
  echo $ECHO_N "checking for working PROCESS_SHARED locks... $ECHO_C" >&6
  if test "${apr_cv_process_shared_works+set}" = set; then
    echo $ECHO_N "(cached) $ECHO_C" >&6
  else
! 
!       if test "$cross_compiling" = yes; then
!   { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
! See \`config.log' for more details." >&5
! echo "$as_me: error: cannot run test program while cross compiling
! See \`config.log' for more details." >&2;}
!    { (exit 1); exit 1; }; }
! else
    cat >conftest.$ac_ext <<_ACEOF
  /* confdefs.h.  */
  _ACEOF
  cat confdefs.h >>conftest.$ac_ext
  cat >>conftest.$ac_ext <<_ACEOF
--- 39332,39348 ----
        echo "$as_me:$LINENO: checking for working PROCESS_SHARED locks" >&5
  echo $ECHO_N "checking for working PROCESS_SHARED locks... $ECHO_C" >&6
  if test "${apr_cv_process_shared_works+set}" = set; then
    echo $ECHO_N "(cached) $ECHO_C" >&6
  else
! #      if test "$cross_compiling" = yes; then
! #  { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
! #See \`config.log' for more details." >&5
! #echo "$as_me: error: cannot run test program while cross compiling
! #See \`config.log' for more details." >&2;}
! #   { (exit 1); exit 1; }; }
! #else
    cat >conftest.$ac_ext <<_ACEOF
  /* confdefs.h.  */
  _ACEOF
  cat confdefs.h >>conftest.$ac_ext
  cat >>conftest.$ac_ext <<_ACEOF
***************
*** 39384,39394 ****
  
  ( exit $ac_status )
  apr_cv_process_shared_works=no
  fi
  rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
! fi
  fi
  echo "$as_me:$LINENO: result: $apr_cv_process_shared_works" >&5
  echo "${ECHO_T}$apr_cv_process_shared_works" >&6
        # Override detection of pthread_mutexattr_setpshared
        ac_cv_func_pthread_mutexattr_setpshared=$apr_cv_process_shared_works
--- 39386,39396 ----
  
  ( exit $ac_status )
  apr_cv_process_shared_works=no
  fi
  rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
! #fi
  fi
  echo "$as_me:$LINENO: result: $apr_cv_process_shared_works" >&5
  echo "${ECHO_T}$apr_cv_process_shared_works" >&6
        # Override detection of pthread_mutexattr_setpshared
        ac_cv_func_pthread_mutexattr_setpshared=$apr_cv_process_shared_works
***************
*** 39403,39419 ****
  echo "$as_me:$LINENO: checking for robust cross-process mutex support" >&5
  echo $ECHO_N "checking for robust cross-process mutex support... $ECHO_C" >&6
  if test "${apr_cv_mutex_robust_shared+set}" = set; then
    echo $ECHO_N "(cached) $ECHO_C" >&6
  else
!   if test "$cross_compiling" = yes; then
!   { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
! See \`config.log' for more details." >&5
! echo "$as_me: error: cannot run test program while cross compiling
! See \`config.log' for more details." >&2;}
!    { (exit 1); exit 1; }; }
! else
    cat >conftest.$ac_ext <<_ACEOF
  /* confdefs.h.  */
  _ACEOF
  cat confdefs.h >>conftest.$ac_ext
  cat >>conftest.$ac_ext <<_ACEOF
--- 39405,39421 ----
  echo "$as_me:$LINENO: checking for robust cross-process mutex support" >&5
  echo $ECHO_N "checking for robust cross-process mutex support... $ECHO_C" >&6
  if test "${apr_cv_mutex_robust_shared+set}" = set; then
    echo $ECHO_N "(cached) $ECHO_C" >&6
  else
! #  if test "$cross_compiling" = yes; then
! #  { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
! #See \`config.log' for more details." >&5
! #echo "$as_me: error: cannot run test program while cross compiling
! #See \`config.log' for more details." >&2;}
! #   { (exit 1); exit 1; }; }
! #else
    cat >conftest.$ac_ext <<_ACEOF
  /* confdefs.h.  */
  _ACEOF
  cat confdefs.h >>conftest.$ac_ext
  cat >>conftest.$ac_ext <<_ACEOF
***************
*** 39465,39475 ****
  
  ( exit $ac_status )
  apr_cv_mutex_robust_shared=no
  fi
  rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
! fi
  fi
  echo "$as_me:$LINENO: result: $apr_cv_mutex_robust_shared" >&5
  echo "${ECHO_T}$apr_cv_mutex_robust_shared" >&6
  
  if test "$apr_cv_mutex_robust_shared" = "yes"; then
--- 39467,39477 ----
  
  ( exit $ac_status )
  apr_cv_mutex_robust_shared=no
  fi
  rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
! #fi
  fi
  echo "$as_me:$LINENO: result: $apr_cv_mutex_robust_shared" >&5
  echo "${ECHO_T}$apr_cv_mutex_robust_shared" >&6
  
  if test "$apr_cv_mutex_robust_shared" = "yes"; then
***************
*** 41526,41542 ****
  echo "$as_me:$LINENO: checking whether TCP_NODELAY and TCP_CORK can both be enabled" >&5
  echo $ECHO_N "checking whether TCP_NODELAY and TCP_CORK can both be enabled... $ECHO_C" >&6
  if test "${apr_cv_tcp_nodelay_with_cork+set}" = set; then
    echo $ECHO_N "(cached) $ECHO_C" >&6
  else
!   if test "$cross_compiling" = yes; then
!   { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
! See \`config.log' for more details." >&5
! echo "$as_me: error: cannot run test program while cross compiling
! See \`config.log' for more details." >&2;}
!    { (exit 1); exit 1; }; }
! else
    cat >conftest.$ac_ext <<_ACEOF
  /* confdefs.h.  */
  _ACEOF
  cat confdefs.h >>conftest.$ac_ext
  cat >>conftest.$ac_ext <<_ACEOF
--- 41528,41544 ----
  echo "$as_me:$LINENO: checking whether TCP_NODELAY and TCP_CORK can both be enabled" >&5
  echo $ECHO_N "checking whether TCP_NODELAY and TCP_CORK can both be enabled... $ECHO_C" >&6
  if test "${apr_cv_tcp_nodelay_with_cork+set}" = set; then
    echo $ECHO_N "(cached) $ECHO_C" >&6
  else
! #  if test "$cross_compiling" = yes; then
! #  { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
! #See \`config.log' for more details." >&5
! #echo "$as_me: error: cannot run test program while cross compiling
! #See \`config.log' for more details." >&2;}
! #   { (exit 1); exit 1; }; }
! #else
    cat >conftest.$ac_ext <<_ACEOF
  /* confdefs.h.  */
  _ACEOF
  cat confdefs.h >>conftest.$ac_ext
  cat >>conftest.$ac_ext <<_ACEOF
***************
*** 41607,41617 ****
  
  ( exit $ac_status )
  apr_cv_tcp_nodelay_with_cork=no
  fi
  rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
! fi
  fi
  echo "$as_me:$LINENO: result: $apr_cv_tcp_nodelay_with_cork" >&5
  echo "${ECHO_T}$apr_cv_tcp_nodelay_with_cork" >&6
  
  if test "$apr_cv_tcp_nodelay_with_cork" = "yes"; then
--- 41609,41619 ----
  
  ( exit $ac_status )
  apr_cv_tcp_nodelay_with_cork=no
  fi
  rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
! #fi
  fi
  echo "$as_me:$LINENO: result: $apr_cv_tcp_nodelay_with_cork" >&5
  echo "${ECHO_T}$apr_cv_tcp_nodelay_with_cork" >&6
  
  if test "$apr_cv_tcp_nodelay_with_cork" = "yes"; then
diff --recursive --context=5 --new-file httpd-original/srclib/apr-util/configure httpd-2.2.4/srclib/apr-util/configure
*** httpd-original/srclib/apr-util/configure    2007-01-05 22:39:35.000000000 -0800
--- httpd-2.2.4/srclib/apr-util/configure       2007-04-25 01:54:18.000000000 -0700
***************
*** 34410,34434 ****
    fi
  
  
    apu_have_mysql=0
  
!   echo "$as_me:$LINENO: checking for dbd/apr_dbd_mysql.c" >&5
! echo $ECHO_N "checking for dbd/apr_dbd_mysql.c... $ECHO_C" >&6
! if test "${ac_cv_file_dbd_apr_dbd_mysql_c+set}" = set; then
!   echo $ECHO_N "(cached) $ECHO_C" >&6
! else
!   test "$cross_compiling" = yes &&
!   { { echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5
! echo "$as_me: error: cannot check for file existence when cross compiling" >&2;}
!    { (exit 1); exit 1; }; }
! if test -r "dbd/apr_dbd_mysql.c"; then
    ac_cv_file_dbd_apr_dbd_mysql_c=yes
! else
!   ac_cv_file_dbd_apr_dbd_mysql_c=no
! fi
! fi
  echo "$as_me:$LINENO: result: $ac_cv_file_dbd_apr_dbd_mysql_c" >&5
  echo "${ECHO_T}$ac_cv_file_dbd_apr_dbd_mysql_c" >&6
  if test $ac_cv_file_dbd_apr_dbd_mysql_c = yes; then
  
  cat >>confdefs.h <<_ACEOF
--- 34410,34434 ----
    fi
  
  
    apu_have_mysql=0
  
! #  echo "$as_me:$LINENO: checking for dbd/apr_dbd_mysql.c" >&5
! #echo $ECHO_N "checking for dbd/apr_dbd_mysql.c... $ECHO_C" >&6
! #if test "${ac_cv_file_dbd_apr_dbd_mysql_c+set}" = set; then
! #  echo $ECHO_N "(cached) $ECHO_C" >&6
! #else
! #  test "$cross_compiling" = yes &&
! #  { { echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5
! #echo "$as_me: error: cannot check for file existence when cross compiling" >&2;}
! #   { (exit 1); exit 1; }; }
! #if test -r "dbd/apr_dbd_mysql.c"; then
    ac_cv_file_dbd_apr_dbd_mysql_c=yes
! #else
! #  ac_cv_file_dbd_apr_dbd_mysql_c=no
! #fi
! #fi
  echo "$as_me:$LINENO: result: $ac_cv_file_dbd_apr_dbd_mysql_c" >&5
  echo "${ECHO_T}$ac_cv_file_dbd_apr_dbd_mysql_c" >&6
  if test $ac_cv_file_dbd_apr_dbd_mysql_c = yes; then
  
  cat >>confdefs.h <<_ACEOF
diff --recursive --context=5 --new-file httpd-original/srclib/pcre/chartables.c httpd-2.2.4/srclib/pcre/chartables.c
*** httpd-original/srclib/pcre/chartables.c     1969-12-31 16:00:00.000000000 -0800
--- httpd-2.2.4/srclib/pcre/chartables.c        2007-04-25 01:53:19.000000000 -0700
***************
*** 0 ****
--- 1,183 ----
+ /*************************************************
+ *      Perl-Compatible Regular Expressions       *
+ *************************************************/
+ 
+ /* This file is automatically written by the dftables auxiliary 
+ program. If you edit it by hand, you might like to edit the Makefile to 
+ prevent its ever being regenerated.
+ 
+ This file is #included in the compilation of pcre.c to build the default
+ character tables which are used when no tables are passed to the compile
+ function. */
+ 
+ static unsigned char pcre_default_tables[] = {
+ 
+ /* This table is a lower casing table. */
+ 
+     0,  1,  2,  3,  4,  5,  6,  7,
+     8,  9, 10, 11, 12, 13, 14, 15,
+    16, 17, 18, 19, 20, 21, 22, 23,
+    24, 25, 26, 27, 28, 29, 30, 31,
+    32, 33, 34, 35, 36, 37, 38, 39,
+    40, 41, 42, 43, 44, 45, 46, 47,
+    48, 49, 50, 51, 52, 53, 54, 55,
+    56, 57, 58, 59, 60, 61, 62, 63,
+    64, 97, 98, 99,100,101,102,103,
+   104,105,106,107,108,109,110,111,
+   112,113,114,115,116,117,118,119,
+   120,121,122, 91, 92, 93, 94, 95,
+    96, 97, 98, 99,100,101,102,103,
+   104,105,106,107,108,109,110,111,
+   112,113,114,115,116,117,118,119,
+   120,121,122,123,124,125,126,127,
+   128,129,130,131,132,133,134,135,
+   136,137,138,139,140,141,142,143,
+   144,145,146,147,148,149,150,151,
+   152,153,154,155,156,157,158,159,
+   160,161,162,163,164,165,166,167,
+   168,169,170,171,172,173,174,175,
+   176,177,178,179,180,181,182,183,
+   184,185,186,187,188,189,190,191,
+   192,193,194,195,196,197,198,199,
+   200,201,202,203,204,205,206,207,
+   208,209,210,211,212,213,214,215,
+   216,217,218,219,220,221,222,223,
+   224,225,226,227,228,229,230,231,
+   232,233,234,235,236,237,238,239,
+   240,241,242,243,244,245,246,247,
+   248,249,250,251,252,253,254,255,
+ 
+ /* This table is a case flipping table. */
+ 
+     0,  1,  2,  3,  4,  5,  6,  7,
+     8,  9, 10, 11, 12, 13, 14, 15,
+    16, 17, 18, 19, 20, 21, 22, 23,
+    24, 25, 26, 27, 28, 29, 30, 31,
+    32, 33, 34, 35, 36, 37, 38, 39,
+    40, 41, 42, 43, 44, 45, 46, 47,
+    48, 49, 50, 51, 52, 53, 54, 55,
+    56, 57, 58, 59, 60, 61, 62, 63,
+    64, 97, 98, 99,100,101,102,103,
+   104,105,106,107,108,109,110,111,
+   112,113,114,115,116,117,118,119,
+   120,121,122, 91, 92, 93, 94, 95,
+    96, 65, 66, 67, 68, 69, 70, 71,
+    72, 73, 74, 75, 76, 77, 78, 79,
+    80, 81, 82, 83, 84, 85, 86, 87,
+    88, 89, 90,123,124,125,126,127,
+   128,129,130,131,132,133,134,135,
+   136,137,138,139,140,141,142,143,
+   144,145,146,147,148,149,150,151,
+   152,153,154,155,156,157,158,159,
+   160,161,162,163,164,165,166,167,
+   168,169,170,171,172,173,174,175,
+   176,177,178,179,180,181,182,183,
+   184,185,186,187,188,189,190,191,
+   192,193,194,195,196,197,198,199,
+   200,201,202,203,204,205,206,207,
+   208,209,210,211,212,213,214,215,
+   216,217,218,219,220,221,222,223,
+   224,225,226,227,228,229,230,231,
+   232,233,234,235,236,237,238,239,
+   240,241,242,243,244,245,246,247,
+   248,249,250,251,252,253,254,255,
+ 
+ /* This table contains bit maps for various character classes.
+ Each map is 32 bytes long and the bits run from the least
+ significant end of each byte. The classes that have their own
+ maps are: space, xdigit, digit, upper, lower, word, graph
+ print, punct, and cntrl. Other classes are built from combinations. */
+ 
+   0x00,0x3e,0x00,0x00,0x01,0x00,0x00,0x00,
+   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 
+   0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x03,
+   0x7e,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,
+   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 
+   0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x03,
+   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 
+   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+   0xfe,0xff,0xff,0x07,0x00,0x00,0x00,0x00,
+   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 
+   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+   0x00,0x00,0x00,0x00,0xfe,0xff,0xff,0x07,
+   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 
+   0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x03,
+   0xfe,0xff,0xff,0x87,0xfe,0xff,0xff,0x07,
+   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 
+   0x00,0x00,0x00,0x00,0xfe,0xff,0xff,0xff,
+   0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,
+   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 
+   0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,
+   0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,
+   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 
+   0x00,0x00,0x00,0x00,0xfe,0xff,0x00,0xfc,
+   0x01,0x00,0x00,0xf8,0x01,0x00,0x00,0x78,
+   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 
+   0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,
+   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
+   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 
+ /* This table identifies various classes of character by individual bits:
+   0x01   white space character
+   0x02   letter
+   0x04   decimal digit
+   0x08   hexadecimal digit
+   0x10   alphanumeric or '_'
+   0x80   regular expression metacharacter or binary zero
+ */
+ 
+   0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*   0-  7 */
+   0x00,0x01,0x01,0x00,0x01,0x01,0x00,0x00, /*   8- 15 */
+   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  16- 23 */
+   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  24- 31 */
+   0x01,0x00,0x00,0x00,0x80,0x00,0x00,0x00, /*    - '  */
+   0x80,0x80,0x80,0x80,0x00,0x00,0x80,0x00, /*  ( - /  */
+   0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c, /*  0 - 7  */
+   0x1c,0x1c,0x00,0x00,0x00,0x00,0x00,0x80, /*  8 - ?  */
+   0x00,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x12, /*  @ - G  */
+   0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, /*  H - O  */
+   0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, /*  P - W  */
+   0x12,0x12,0x12,0x80,0x00,0x00,0x80,0x10, /*  X - _  */
+   0x00,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x12, /*  ` - g  */
+   0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, /*  h - o  */
+   0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, /*  p - w  */
+   0x12,0x12,0x12,0x80,0x80,0x00,0x00,0x00, /*  x -127 */
+   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 128-135 */
+   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 136-143 */
+   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 144-151 */
+   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 152-159 */
+   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 160-167 */
+   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 168-175 */
+   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 176-183 */
+   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 184-191 */
+   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 192-199 */
+   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 200-207 */
+   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 208-215 */
+   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 216-223 */
+   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 224-231 */
+   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 232-239 */
+   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 240-247 */
+   0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};/* 248-255 */
+ 
+ /* End of chartables.c */
diff --recursive --context=5 --new-file httpd-original/srclib/pcre/Makefile.in httpd-2.2.4/srclib/pcre/Makefile.in
*** httpd-original/srclib/pcre/Makefile.in      2005-02-11 04:00:41.000000000 -0800
--- httpd-2.2.4/srclib/pcre/Makefile.in 2007-04-25 01:53:19.000000000 -0700
***************
*** 1,9 ****
  LTLIBRARY_NAME = libpcre.la
  LTLIBRARY_SOURCES = maketables.c get.c study.c pcre.c
  
! CLEAN_TARGETS = dftables chartables.c
  DISTCLEAN_TARGETS = pcre.h pcre-config config.h config.log config.status $(CLEAN_TARGETS)
  
  include $(top_srcdir)/build/ltlib.mk
  
  config.h:
--- 1,9 ----
  LTLIBRARY_NAME = libpcre.la
  LTLIBRARY_SOURCES = maketables.c get.c study.c pcre.c
  
! CLEAN_TARGETS = dftables #chartables.c
  DISTCLEAN_TARGETS = pcre.h pcre-config config.h config.log config.status $(CLEAN_TARGETS)
  
  include $(top_srcdir)/build/ltlib.mk
  
  config.h:
***************
*** 13,20 ****
  
  dftables: dftables.lo
        $(LINK) $(EXTRA_LDFLAGS) dftables.lo $(EXTRA_LIBS)
  
  $(srcdir)/chartables.c: dftables
!       ./dftables $@
  
  pcre.lo: $(srcdir)/chartables.c
--- 13,20 ----
  
  dftables: dftables.lo
        $(LINK) $(EXTRA_LDFLAGS) dftables.lo $(EXTRA_LIBS)
  
  $(srcdir)/chartables.c: dftables
!       #./dftables $@
  
  pcre.lo: $(srcdir)/chartables.c

conf/httpd.conf.in:

#
# ServerRoot: The top of the directory tree under which the server's
# configuration, error, and log files are kept.
#
ServerRoot "@@ServerRoot@@"

#
# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, instead of the default. See also the <VirtualHost>
# directive.
#
Listen @@Port@@

# 
# Determines who the system should run as.
# 
User nobody
Group nobody

#
# Dynamic Shared Object (DSO) Support
#
# To be able to use the functionality of a module which was built as a DSO you
# have to place corresponding `LoadModule' lines at this location so the
# directives contained in it are actually available _before_ they are used.
# Statically compiled modules (those listed by `httpd -l') do not need
# to be loaded here.
#
# Example:
# LoadModule foo_module modules/mod_foo.so
#
@@LoadModule@@

#
# ServerAdmin: Your address, where problems with the server should be
# e-mailed.  This address appears on some server-generated pages, such
# as error documents.  e.g. admin@your-domain.com
#
ServerAdmin root@localhost

#
# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
#
ServerName localhost:80

#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "@exp_htdocsdir@"

#
# Each directory to which Apache has access can be configured with respect
# to which services and features are allowed and/or disabled in that
# directory (and its subdirectories). 
#
# First, we configure the "default" to be a very restrictive set of 
# features.  
#
<Directory />
    Options All MultiViews
    AllowOverride All
    Order deny,allow
    Deny from all
    <IfDefine SSL_ONLY>
        SSLRequire
    </IfDefine>
</Directory>

#
# This should be changed to whatever you set DocumentRoot to.
#
<Directory "@exp_htdocsdir@">
    Options All MultiViews
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

#
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
<IfModule dir_module>
    DirectoryIndex index.php index.html index.htm
</IfModule>

#
# The following lines prevent .htaccess and .htpasswd files from being 
# viewed by Web clients. 
#
<FilesMatch "^\.ht">
    Order allow,deny
    Deny from all
    Satisfy All
</FilesMatch>

#
# ErrorLog: The location of the error log file.
# If you do not specify an ErrorLog directive within a <VirtualHost>
# container, error messages relating to that virtual host will be
# logged here.  If you *do* define an error logfile for a <VirtualHost>
# container, that host's errors will be logged there and not here.
#
ErrorLog /var/log/httpd/error_log

#
# LogLevel: Control the number of messages logged to the error_log.
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
#
LogLevel debug

<IfModule log_config_module>
    LogFormat "%h %l %u %t \"%r\" %>s %b" common
    CustomLog /var/log/httpd/access_log common
</IfModule>

#
# DefaultType: the default MIME type the server will use for a document
# if it cannot otherwise determine one, such as from filename extensions.
# If your server contains mostly text or HTML documents, "text/plain" is
# a good value.  If most of your content is binary, such as applications
# or images, you may want to use "application/octet-stream" instead to
# keep browsers from trying to display binary files as though they are
# text.
#
DefaultType text/plain

<IfModule mime_module>
    #
    # TypesConfig points to the file containing the list of mappings from
    # filename extension to MIME-type.
    #
    TypesConfig @rel_sysconfdir@/mime.types

    #
    # AddType allows you to add to or override the MIME configuration
    # file specified in TypesConfig for specific file types.
    #
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz

    #
    # AddHandler allows you to map certain file extensions to "handlers":
    # actions unrelated to filetype. These can be either built into the server
    # or added with the Action directive (see below)
    #
    # To use CGI scripts outside of ScriptAliased directories:
    # (You will also need to add "ExecCGI" to the "Options" directive.)
    #
    #AddHandler cgi-script .cgi

    #
    # Filters allow you to process content before it is sent to the client.
    #
    # To parse .shtml files for server-side includes (SSI):
    # (You will also need to add "Includes" to the "Options" directive.)
    #
    #AddType text/html .shtml
    #AddOutputFilter INCLUDES .shtml
</IfModule>

#
# Customizable error responses come in three flavors:
# 1) plain text 2) local redirects 3) external redirects
#
# Some examples:
#ErrorDocument 500 "The server made a boo boo."
#ErrorDocument 404 /missing.html
#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
#ErrorDocument 402 http://www.example.com/subscription_info.html
#

# Server-pool management (MPM specific)
Include @rel_sysconfdir@/extra/httpd-mpm.conf

# Secure (SSL/TLS) connections
Include @rel_sysconfdir@/extra/httpd-ssl.conf

conf/httpd-mpm.conf.in:

#
# Server-Pool Management (MPM specific)
# 

#
# PidFile: The file in which the server should record its process
# identification number when it starts.
#
# Note that this is the default PidFile for most MPMs.
#
PidFile @rel_runtimedir@/httpd.pid

# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# MaxClients: maximum number of server processes allowed to start
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule mpm_prefork_module>
    StartServers          2
    MinSpareServers       2
    MaxSpareServers       3
    MaxClients           10
    MaxRequestsPerChild   0
</IfModule>

conf/httpd-ssl.conf.in:

<IfModule ssl_module>

#
# Pseudo Random Number Generator (PRNG):
#
SSLRandomSeed startup file:/dev/urandom 512
SSLRandomSeed connect file:/dev/urandom 512


#
# When we also provide SSL we have to listen to the 
# standard HTTP port (see above) and to the HTTPS port
#
# Note: Configurations that use IPv6 but not IPv4-mapped addresses need two
#       Listen directives: "Listen [::]:443" and "Listen 0.0.0.0:443"
#
Listen 443

##
##  SSL Global Context
##
##  All SSL configuration in this context applies both to
##  the main server and all SSL-enabled virtual hosts.
##

#
#   Some MIME-types for downloading Certificates and CRLs
#
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl    .crl

#   Pass Phrase Dialog:
#   Configure the pass phrase gathering process.
#   The filtering dialog program (`builtin' is a internal
#   terminal dialog) has to provide the pass phrase on stdout.
SSLPassPhraseDialog  builtin

#   Inter-Process Session Cache:
#   Configure the SSL Session Cache: First the mechanism 
#   to use and second the expiring timeout (in seconds).
#SSLSessionCache         dbm:@exp_runtimedir@/ssl_scache
SSLSessionCache        shmcb:@exp_runtimedir@/ssl_scache(512000)
SSLSessionCacheTimeout  300

#   Semaphore:
#   Configure the path to the mutual exclusion semaphore the
#   SSL engine uses internally for inter-process synchronization. 
SSLMutex  default

##
## SSL Virtual Host Context
##

<VirtualHost _default_:443>
        ErrorLog @exp_logfiledir@/error_log
        TransferLog @exp_logfiledir@/access_log
        
        #   SSL Engine Switch:
        #   Enable/Disable SSL for this virtual host.
        SSLEngine on
        
        #   SSL Protocol support:
        #   List the enable protocol levels with which clients will be able to
        #   connect.  Disable SSLv2 access by default:
        SSLProtocol all -SSLv2
        
        #   SSL Cipher Suite:
        #   List the ciphers that the client is permitted to negotiate.
        #   See the mod_ssl documentation for a complete list.
        SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
        
        #   Server Certificate:
        #   Point SSLCertificateFile at a PEM encoded certificate.  If
        #   the certificate is encrypted, then you will be prompted for a
        #   pass phrase.  Note that a kill -HUP will prompt again.  Keep
        #   in mind that if you have both an RSA and a DSA certificate you
        #   can configure both in parallel (to also allow the use of DSA
        #   ciphers, etc.)
        SSLCertificateFile @exp_sysconfdir@/server.crt
        
        #   Server Private Key:
        #   If the key is not combined with the certificate, use this
        #   directive to point at the key file.  Keep in mind that if
        #   you've both a RSA and a DSA private key you can configure
        #   both in parallel (to also allow the use of DSA ciphers, etc.)
        SSLCertificateKeyFile @exp_sysconfdir@/server.key
        
        #   SSL Engine Options:
        #   Set various options for the SSL engine.
        #   o FakeBasicAuth:
        #     Translate the client X.509 into a Basic Authorisation.  This means that
        #     the standard Auth/DBMAuth methods can be used for access control.  The
        #     user name is the `one line' version of the client's X.509 certificate.
        #     Note that no password is obtained from the user. Every entry in the user
        #     file needs this password: `xxj31ZMTZzkVA'.
        #   o ExportCertData:
        #     This exports two additional environment variables: SSL_CLIENT_CERT and
        #     SSL_SERVER_CERT. These contain the PEM-encoded certificates of the
        #     server (always existing) and the client (only existing when client
        #     authentication is used). This can be used to import the certificates
        #     into CGI scripts.
        #   o StdEnvVars:
        #     This exports the standard SSL/TLS related `SSL_*' environment variables.
        #     Per default this exportation is switched off for performance reasons,
        #     because the extraction step is an expensive operation and is usually
        #     useless for serving static content. So one usually enables the
        #     exportation for CGI and SSI requests only.
        #   o StrictRequire:
        #     This denies access when "SSLRequireSSL" or "SSLRequire" applied even
        #     under a "Satisfy any" situation, i.e. when it applies access is denied
        #     and no other module can change it.
        #   o OptRenegotiate:
        #     This enables optimized SSL connection renegotiation handling when SSL
        #     directives are used in per-directory context. 
        #SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
        <FilesMatch "\.(cgi|shtml|phtml|php)$">
            SSLOptions +StdEnvVars
        </FilesMatch>
        <Directory "@exp_cgidir@">
            SSLOptions +StdEnvVars
        </Directory>
        
        #   SSL Protocol Adjustments:
        #   The safe and default but still SSL/TLS standard compliant shutdown
        #   approach is that mod_ssl sends the close notify alert but doesn't wait for
        #   the close notify alert from client. When you need a different shutdown
        #   approach you can use one of the following variables:
        #   o ssl-unclean-shutdown:
        #     This forces an unclean shutdown when the connection is closed, i.e. no
        #     SSL close notify alert is send or allowed to received.  This violates
        #     the SSL/TLS standard but is needed for some brain-dead browsers. Use
        #     this when you receive I/O errors because of the standard approach where
        #     mod_ssl sends the close notify alert.
        #   o ssl-accurate-shutdown:
        #     This forces an accurate shutdown when the connection is closed, i.e. a
        #     SSL close notify alert is send and mod_ssl waits for the close notify
        #     alert of the client. This is 100% SSL/TLS standard compliant, but in
        #     practice often causes hanging connections with brain-dead browsers. Use
        #     this only for browsers where you know that their SSL implementation
        #     works correctly. 
        #   Notice: Most problems of broken clients are also related to the HTTP
        #   keep-alive facility, so you usually additionally want to disable
        #   keep-alive for those clients, too. Use variable "nokeepalive" for this.
        #   Similarly, one has to force some clients to use HTTP/1.0 to workaround
        #   their broken HTTP/1.1 implementation. Use variables "downgrade-1.0" and
        #   "force-response-1.0" for this.
        BrowserMatch ".*MSIE.*" \
                 nokeepalive ssl-unclean-shutdown \
                 downgrade-1.0 force-response-1.0
        
        #   Per-Server Logging:
        #   The home of a custom SSL log file. Use this when you want a
        #   compact non-error SSL logfile on a virtual host basis.
        CustomLog @exp_logfiledir@/ssl_request_log \
                  "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>

The compile takes approximately 15 minutes on a 1.12 GHz build host. If you have any problems, feel free to e-mail me at axis-dev@headnut.org - Chris Verges, 21 May 2007 08:50 PST

PHP 5.2.2

Steps:

  1. Create the directory $(AXIS_TOP_DIR)/apps/php-5.2.2
  2. Place the Makefile file below into that directory
  3. Download the php-5.2.2.tar.gz tarball
  4. Extract the php-5.2.2.tar.gz tarball to the $(AXIS_TOP_DIR)/apps/php-5.2.2/src directory
  5. Change to the $(AXIS_TOP_DIR)/apps/php-5.2.2 directory
  6. Run the SDK's “make crisv32-axis-linux-gnu” (or the appropriate command for your architecture)
  7. Run “make” to build PHP
  8. Run “make install” to install PHP

Makefile:

AXIS_USABLE_LIBS = UCLIBC GLIBC
include $(AXIS_TOP_DIR)/tools/build/Rules.axis

SRCDIR    = src
LDFLAGS  += -L$(prefix)/usr/lib
CPPFLAGS += -I$(prefix)/usr/include
CFLAGS   += -I$(prefix)/usr/include

INST_PROG = $(AXIS_TOP_DIR)/tools/build/bin/$(shell echo $(INSTALL)|sed 's/^ *//')

CONFIG_VARS_FILE=$(prefix)/usr/local/apache2/build/config_vars.mk
APR_1_CONFIG=$(prefix)/usr/local/apache2/bin/apr-1-config
APXS=$(prefix)/usr/local/apache2/bin/apxs

$(SRCDIR)/Makefile:
        @echo "Modifying Apache's config_vars.mk file"
        @cat $(CONFIG_VARS_FILE) | \
        sed "s%/usr%$(prefix)/usr%g" | \
        sed "s%apr-1-config%apr-1-config-$(AXIS_BUILDTYPE)%g" > \
                $(CONFIG_VARS_FILE)-$(AXIS_BUILDTYPE)
        
        @echo "Modifying Apache's apr-1-config file"
        @cat $(APR_1_CONFIG) | \
        sed "s%prefix=\"%prefix=\"$(prefix)%g" | \
        sed "s%libdir=\"%libdir=\"$(prefix)%g" | \
        sed "s%datadir=\"%datadir=\"$(prefix)%g" | \
        sed "s%includedir=\"%includedir=\"$(prefix)%g" > \
                $(APR_1_CONFIG)-$(AXIS_BUILDTYPE) && \
                chmod ug+rwx $(APR_1_CONFIG)-$(AXIS_BUILDTYPE)
        
        @echo "Modifying Apache's apxs file"
        @cat $(APXS) | \
        sed "s%installbuilddir = \"%installbuilddir = \"$(prefix)%g" | \
        sed "s%grep /mod_so/, [^)]*%1 == 1%g" | \
        sed "s%installbuilddir/config_vars\.mk%installbuilddir/config_vars\.mk-$(AXIS_BUILDTYPE)%g" > \
                $(APXS)-$(AXIS_BUILDTYPE) && \
                chmod ug+rwx $(APXS)-$(AXIS_BUILDTYPE)
        
        cd $(SRCDIR) && \
        RANLIB="$(RANLIB)" AR="$(AR)" STRIP="$(STRIP)" \
        INSTALL="$(INST_PROG)" RM="$(RM)" CC="$(CC)" \
        CFLAGS="$(CFLAGS) -I$(prefix)/include -I$(prefix)/include/openssl" \
        LDFLAGS="$(LDFLAGS)" \
        ./configure \
                --target=$(AXIS_BUILDTYPE) \
                --host=$(AXIS_BUILDTYPE) \
                --disable-all \
                --disable-json \
                --disable-pdo \
                --disable-reflection \
                --disable-short-tags \
                --enable-bcmath \
                --enable-calendar \
                --disable-embedded-mysqli \
                --enable-ftp \
                --disable-mbstring \
                --disable-pcntl \
                --disable-sockets \
                --disable-zip \
                --with-apxs2=$(prefix)/usr/local/apache2/bin/apxs-$(AXIS_BUILDTYPE) \
                --with-config-file-path=/etc \
                --with-inifile \
                --without-iconv \
                --without-openssl \
                --without-pear \
                --without-snmp \
                --without-x \
                --without-zlib
                --disable-zip \
                --with-apxs2=$(prefix)/usr/local/apache2/bin/apxs-$(AXIS_BUILDTYPE) \
                --with-config-file-path=/etc \
                --with-inifile \
                --without-iconv \
                --without-openssl \
                --without-pear \
                --without-snmp \
                --without-x \
                --without-zlib

$(SRCDIR)/Makefile-$(AXIS_BUILDTYPE): $(SRCDIR)/Makefile
        cat $< | \
                sed "s%-I/usr/include%%g" | \
                sed "s%\$$(INSTALL_ROOT)$(prefix)%$(prefix)%g" > $@

all install: $(SRCDIR)/Makefile-$(AXIS_BUILDTYPE)
        $(MAKE) INSTALL_ROOT=$(prefix) -C $(SRCDIR) -f Makefile-$(AXIS_BUILDTYPE) $@
# We do not want man files in the image. Perhaps there is a better way of
# achieving this?
        if [ $@ = install ]; then \
                metafiles --prefix $(prefix) ignore man; \
        fi

# We need to do distclean if we change target (the most common reason for
# doing clean?)  If no Makefile exist we assume that this package is clean.
clean distclean:
        @rm -f $(SRCDIR)/Makefile-$(AXIS_BUILDTYPE)
        @if test -f $(SRCDIR)/Makefile; then \
                $(MAKE) -C $(SRCDIR) distclean; \
        fi

The compile takes approximately 15 minutes on a 2 GHz build host. If you have any problems, feel free to e-mail me at axis-dev@headnut.org - Chris Verges, 5 June 2007 16:08 PST

Net-SNMP

Steps:

  1. Create the directory $(AXIS_TOP_DIR)/apps/net-snmp-5.4
  2. Place the Makefile file below into that directory
  3. Place the snmpd-conf file below into that directory
  4. Place the snmpd-init file below into that directory
  5. Download the net-snmp-5.4.tar.gz tarball
  6. Extract the net-snmp-5.4.tar.gz tarball to the $(AXIS_TOP_DIR)/apps/net-snmp-5.4/src directory
  7. Change to the $(AXIS_TOP_DIR)/apps/net-snmp-5.4 directory
  8. Run the SDK's “make crisv32-axis-linux-gnu” (or the appropriate command for your architecture)
  9. Run “make” to build Net-SNMP
  10. Run “make install” to install Net-SNMP

Makefile:

AXIS_USABLE_LIBS = UCLIBC GLIBC
include $(AXIS_TOP_DIR)/tools/build/Rules.axis

SRCDIR    = src
LDFLAGS  += -L$(prefix)/usr/lib
CPPFLAGS += -I$(prefix)/usr/include
CFLAGS   += -I$(prefix)/usr/include

INST_PROG = $(AXIS_TOP_DIR)/tools/build/bin/$(shell echo $(INSTALL)|sed 's/^ *//')

test:
        @echo "CC:     $(CC)"
        @echo "CFLAGS: $(CFLAGS)"

$(SRCDIR)/Makefile:
        cd $(SRCDIR) && \
        ./configure \
                --target=$(AXIS_BUILDTYPE) \
                --host=$(AXIS_BUILDTYPE) \
                --prefix=/usr \
                --with-ar="$(AR)" \
                --with-cc="$(CC)" \
                --with-cflags="$(CFLAGS)" \
                --with-ld="$(LD)" \
                --with-ldflags="$(LDFLAGS)" \
                --with-ranlib="$(RANLIB)" \
                --with-install-prefix=$(prefix) \
                --disable-applications \
                --disable-debugging \
                --disable-embedded-perl \
                --disable-manuals \
                --disable-mibs \
                --disable-mib-loading \
                --disable-scripts \
                --disable-snmpv1 \
                --enable-mini-agent \
                --enable-reentrant \
                --enable-shared \
                --with-default-snmp-version=3 \
                --with-endianness=little \
                --with-logfile="/var/log/snmpd.log" \
                --with-openssl=$(prefix) \
                --with-mib-modules="mibII ip-mib tcp-mib" \
                --with-persistent-directory="/var/net-snmp" \
                --without-perl-modules \
                --without-root-access \
                --without-rpm \
                RANLIB="$(RANLIB)" AR="$(AR)" STRIP="$(STRIP)" \
                INSTALL="$(INST_PROG)" RM="$(RM)" \
                CC="$(CC)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)"

all install: $(SRCDIR)/Makefile
        $(MAKE) DESTDIR="$(prefix)" -C $(SRCDIR) $@
# We do not want man files in the image. Perhaps there is a better way of
# achieving this?
        if [ $@ = install ]; then \
                mkdir -p $(prefix)/etc/init.d; \
                cp snmpd-init $(prefix)/etc/init.d/snmpd; \
                cp snmpd-conf $(prefix)/etc/conf.d/snmpd; \
                cd $(prefix)/etc/rc3.d && \
                        ln -sf ../init.d/snmpd S36snmpd; \
        fi

# We need to do distclean if we change target (the most common reason for
# doing clean?)  If no Makefile exist we assume that this package is clean.
clean distclean:
        @if test -f $(SRCDIR)/Makefile; then \
                $(MAKE) -C $(SRCDIR) distclean; \
        fi

snmpd-conf:

SNMPD_OPTIONS=

snmpd-init:

#!/bin/sh -e

. /etc/init.d/functions.sh
[ -f /etc/conf.d/snmpd ] && . /etc/conf.d/snmpd

case "$1" in
        start)
                begin "Starting snmpd"
                start_daemon /usr/sbin/snmpd $SNMPD_OPTIONS
                end $?
                ;;
        stop)
                begin "Stopping snmpd"
                stop_daemon /usr/sbin/snmpd
                end $?
                ;;
        restart)
                $0 stop
                $0 start
                ;;
        *)
                error "Usage: $0 start|stop|restart"
                ;;
esac

exit 0

The compile takes approximately 15 minutes on a 2 GHz build host. If you have any problems, feel free to e-mail me at axis-dev@headnut.org - Chris Verges, 5 June 2007 16:14 PST

minicom

Steps:

  1. Create the directory $(AXIS_TOP_DIR)/apps/minicom-2.2
  2. Place the Makefile file below into that directory
  3. Create the directory $(AXIS_TOP_DIR)/apps/minicom-2.2/minicom-2.2
  4. Download the minicom-2.2.tar.gz tarball
  5. Extract the minicom-2.2.tar.gz tarball to the $(AXIS_TOP_DIR)/apps/minicom-2.2/minicom-2.2 directory. (Yes, the minicom package shall be put into a subdirectory also named minicom-2.2. This directory is pointed out by PACKAGE_DIR in the Makefile.)
  6. Change to the $(AXIS_TOP_DIR)/apps/minicom-2.2 directory
  7. Run the SDK's “make crisv32-axis-linux-gnu” (or the appropriate command for your architecture)
  8. Run “make” to build minicom
  9. Run “make install” to install minicom

Makefile:

AXIS_USABLE_LIBS = GLIBC UCLIBC
include $(AXIS_TOP_DIR)/tools/build/rules/common.mak

PACKAGE_DIR = minicom-2.2

CONFIG_FLAGS = \
	--prefix="$(prefix)$(INST_DIR)" \
	--enable-cfg-dir="/etc"

include $(AXIS_TOP_DIR)/tools/build/rules/autoconf.mak

ncurses

Steps:

  1. Create the directory $(AXIS_TOP_DIR)/apps/ncurses-5.5
  2. Place the Makefile file below into that directory
  3. Change to the $(AXIS_TOP_DIR)/apps/ncurses-5.5 directory
  4. Run the SDK's “make crisv32-axis-linux-gnu” (or the appropriate command for your architecture)
  5. Run “make” to build ncurses-5.5 (tar is downloaded in the makefile)
  6. Run “make install” to install ncurses-5.5

Makefile:

AXIS_USABLE_LIBS = GLIBC UCLIBC
include $(AXIS_TOP_DIR)/tools/build/rules/common.mak

NAM = ncurses-5.5
TAR = $(NAM).tar.gz
DWN = http://ftp.gnu.org/pub/gnu/ncurses/$(TAR)

PACKAGE_DIR = $(NAM)

CONFIG_FLAGS =              \
	--prefix="$(prefix)"\
	
INCLUDE_FILES =             \
	/usr/lib            \

IGNORE_FILES =              \
	/usr/include        \
	/usr/info           \
	/usr/man            \

$(TAR):
	wget $(DWN)

$(NAM): $(TAR)
	tar xfm $(TAR)

ncurses-5.5/configure: $(NAM)

clean:
	rm -rf $(NAM) $(TAR)

include $(AXIS_TOP_DIR)/tools/build/rules/autoconf.mak
 
tips_on_how_to_cross_compile_various_programs.txt · Last modified: 2011/11/24 08:31 by admin
 
All text is available under the terms of the GNU Free Documentation License (see Copyrights for details).