Hi,

I have noted a APR question in TC user list, if what is said is true then we
have to arrange build/apr_common.m4

Any hints?

Cheers

Jean-frederic
--- Begin Message ---
Hi all.

This is more for developers, but here goes. OS is Tru64 UNIX 4.0F (a.k.a. 
Digital UNIX (a.k.a. DEC OSF/1)). I'm using native CC of Tru64. "configure" 
script in APR erroneously detects the presence of <stdint.h> on the system and 
that consequently bugs the whole mod_webapp.so.

mod_webapp.so, although built wouldn't load with a message:

Legba:/usr/local/apache/conf# /usr/local/apache/bin/apachectl configtest
Syntax error on line 218 of /usr/local/apache/conf/httpd.conf:
Cannot load /usr/local/apache/libexec/mod_webapp.so into server: Unresolved 
symbol in /usr/local/apache/libexec/mod_webapp.so: INT64_C

I have run the portion which detects "INT64_C in stdint.h" of the "configure" 
manually and it produces a wrong conclusion.

THE PROBLEM is in this:

    cat >conftest.$ac_ext <<_ACEOF
#line 18159 "configure"
#include "confdefs.h"

    #include <stdint.h>
    #ifdef INT64_C
    YES_IS_DEFINED
    #endif

_ACEOF

Please note that the portion of CPP directives (those three in the middle) is 
*indented*.

Well, this is not supported in Tru64's CC and frankly I don't know of a C 
language specification which allows it. To make myself perfectly clear, all C 
language specifications I've seen (K&R C and ANSI C), insist on "#" sign of the 
CPP directive being in the first column or the first character on the line. You 
can indent the directive itself, but the "#" MUST be in the first column. DEC 
CC insists on this and ignores lines that have whitespace before "#". So, 
something like this would be correct:

    cat >conftest.$ac_ext <<_ACEOF
#line 18159 "configure"
#include "confdefs.h"

#    include <stdint.h>
#    ifdef INT64_C
     YES_IS_DEFINED
#    endif

_ACEOF

I'm guessing that GCC allows for indentation of CPP lines, but I still think it 
is against the specification. Reasoning like "GCC is the major CC in the world, 
comply with it" is something I would expect from Microsoft - and not from GCC, 
Apache or Tomcat supporters.

I know I could build GCC for Tru64 UNIX and "save myself a lot of trouble in 
the future", but that would be 50-th "meander" in building some final-stage 
product on my machine, which is not only time-, but also nerve-consuming, as 
well.

For the time being I'll manually "weed out all of you non-hackers, who are not 
fit to serve in my beloved corps" ("Full metal jacket"-Stanley Kubrick). Of 
course, untaring sources from scratch...

Nix.

Attachment: smime.p7s
Description: S/MIME cryptographic signature


--- End Message ---
Index: apr_common.m4
===================================================================
RCS file: /home/cvs/apache/apr/build/apr_common.m4,v
retrieving revision 1.21
diff -u -r1.21 apr_common.m4
--- apr_common.m4       2001/07/24 10:05:36     1.21
+++ apr_common.m4       2001/10/03 15:59:01
@@ -208,10 +208,10 @@
     for curhdr in $2
     do
       AC_EGREP_CPP(YES_IS_DEFINED, [
-      #include <$curhdr>
-      #ifdef $1
+#include <$curhdr>
+#ifdef $1
       YES_IS_DEFINED
-      #endif
+#endif
       ], ac_cv_define_$1=yes)
     done
   ])
@@ -227,10 +227,10 @@
 AC_DEFUN(APR_CHECK_DEFINE,[
   AC_CACHE_CHECK([for $1 in $2],ac_cv_define_$1,[
     AC_EGREP_CPP(YES_IS_DEFINED, [
-    #include <$2>
-    #ifdef $1
+#include <$2>
+#ifdef $1
     YES_IS_DEFINED
-    #endif
+#endif
     ], ac_cv_define_$1=yes, ac_cv_define_$1=no)
   ])
   if test "$ac_cv_define_$1" = "yes"; then
@@ -243,10 +243,10 @@
 dnl
 AC_DEFUN(APR_CHECK_APR_DEFINE,[
     AC_EGREP_CPP(YES_IS_DEFINED, [
-    #include "$2/include/apr.h"
-    #if $1
+#include "$2/include/apr.h"
+#if $1
     YES_IS_DEFINED
-    #endif
+#endif
     ], ac_cv_define_$1=yes, ac_cv_define_$1=no)
 ])
 
@@ -437,8 +437,8 @@
 AC_MSG_CHECKING(for type of inbuf parameter to iconv)
 if test "x$apr_iconv_inbuf_const" = "x"; then
     APR_TRY_COMPILE_NO_WARNING([
-    #include <stddef.h>
-    #include <iconv.h>
+#include <stddef.h>
+#include <iconv.h>
     ],[
     iconv(0,(char **)0,(size_t *)0,(char **)0,(size_t *)0);
     ], apr_iconv_inbuf_const="0", apr_iconv_inbuf_const="1")

Reply via email to