Hi all,
as some of you might have seen I did already some time back work on getting gen_test_char compiled with the build instead of the host compiler (I did this mainly for the NetWare builds since before it was a real pain to build httpd with gen_test_char built for host). Also the demand for general cross compilation comes up every now and then, and the only thing which is in the way is the compilation of gen_test_char ...
Please take a look at gen_test_char.c in current httpd-HEAD;
the only thing which relies on APR is this part:

#define apr_isalnum(c) (isalnum(((unsigned char)(c))))
#define apr_isalpha(c) (isalpha(((unsigned char)(c))))
#define apr_iscntrl(c) (iscntrl(((unsigned char)(c))))
#define apr_isprint(c) (isprint(((unsigned char)(c))))
#include <ctype.h>
#define APR_HAVE_STDIO_H 1
#define APR_HAVE_STRING_H 1

that means that gen_test_char.c includes:
#include "apr.h"
#include "apr_lib.h"
only to get those defines above from apr_lib.h + the three macros:
APR_HAVE_CTYPE_H
APR_HAVE_STDIO_H
APR_HAVE_STRING_H

for all platforms these three macros are most likely set to 1; these are standard C headers, and I cant imagine of a platform which doesnt have these. The other four defines for apr_is* are also unconditional in apr_lib.h so every platform uses them, thus every platform must have them in ctype.h.

Therefore I believe that its safe to always compile gen_test_char.c with the build compiler without APR and without libtool; just like:
$(CC_FOR_BUILD) gen_test_char.c -o gen_test_char

If we would agree to this then we wouldnt need any special handling in the server/Makefile and would always set in configure CC_FOR_BUILD=$(CC) unless cross compilation is detected.

Therefore I would like to simplify compilation of gen_test_char this way; please give a vote about this change, and if you disagree please explain your concerns! Thanks!

Vote:
[ ] change gen_test_char.c to always compile without APR
[ ] leave it as it is because ...

Reply via email to