You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@httpd.apache.org by Lawrence Stefani <LS...@fortresstech.com> on 2006/09/12 20:18:06 UTC

[users@httpd] Cross-compilation problem with Apache 2.2.3

Hello,

I've researched this problem online but have not found an acceptable
solution.

When cross-compiling Apache 2.2.3 on Linux, the build fails:

	./gen_test_char > test_char.h
	/bin/sh: ./gen_test_char: cannot execute binary file
	make[2]: *** [test_char.h] Error 126

I'm using a MIPS GCC 3.3.2/GLIBC 2.3.2 cross-compiler on an x86 host
machine, but believe this problem
exists for ARM, PowerPC, etc.

>From various postings, this appears to be a well known failure where
despite adding CC_FOR_BUILD and/or HOST_CC
on the ./configure line, server/gen_test_char.c is always compiled using
the target compiler, not the host compiler.

Note: A similar problem exists with srclib/pcre/dftables.c, but by
downloading and building a standard PCRE 5.0
distribution separately, you can avoid that failure.

The only workarounds I've found for gen_test_char are:

	Option 1 - Install the toolchain and all of the source code to
the target system and build natively.
	Option 2 - Copy the gen_test_char executable (along with
dependent share libraries, if necessary) to the target,
	                create the test_char.h file, copy it back to the
host system, then resume make.
	Option 3 - Build Apache first natively on the host system,
saving the test_char.h file for Option 2.

Since I'm trying to automate the build, are there alternative solutions
that don't involve a working target and allow the configure
and make process to run cleanly?

Thanks,

Larry Stefani
lstefani@fortresstech.com