You are viewing a plain text version of this content. The canonical link for it is here.
Posted to bugs@httpd.apache.org by bu...@apache.org on 2002/05/21 23:53:22 UTC

DO NOT REPLY [Bug 9295] New: - Can't compile perchild.c under Solaris 8

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=9295>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=9295

Can't compile perchild.c under Solaris 8

           Summary: Can't compile perchild.c under Solaris 8
           Product: Apache httpd-2.0
           Version: 2.0.36
          Platform: Sun
        OS/Version: Solaris
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: perchild
        AssignedTo: bugs@httpd.apache.org
        ReportedBy: apachebugs@louisiana.edu


I've tried using configure with both gcc 2.95.2 and Sun's Forte cc 6.2
compilers, and I
get this sort of compilation failure under Solaris 8 (ultraSparc):

Making all in experimental/perchild
/bin/ksh /extra/httpd-2.0.36/srclib/apr/libtool --silent --mode=compile cc  -g -
mt -DNO_DBM_REWRITEMAP    -DSOLARIS2=8 -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT  
  -I. -I/extra/httpd-2.0.36/os/unix -I/extra/httpd-2.0.36/server/mpm/experimenta
l/perchild -I/extra/httpd-2.0.36/modules/http -I/extra/httpd-2.0.36/modules/prox
y -I/extra/httpd-2.0.36/include -I/extra/httpd-2.0.36/srclib/apr/include -I/extr
a/httpd-2.0.36/srclib/apr-util/include -I/opt/usl/openssl-0.9.6c/include/openssl
 -I/opt/usl/openssl-0.9.6c/include -I/extra/httpd-2.0.36/modules/dav/main -I/ext
ra/httpd-2.0.36/srclib/apr-util/xml/expat/lib -prefer-non-pic -static -c perchil
d.c && touch perchild.lo
"perchild.c", line 668: undefined struct/union member: msg_control
"perchild.c", line 668: warning: improper pointer/integer combination: op "="
"perchild.c", line 669: undefined struct/union member: msg_controllen
"perchild.c", line 670: undefined struct/union member: msg_flags
"perchild.c", line 674: warning: improper pointer/integer combination: arg #2
"perchild.c", line 849: cannot recover from previous errors
cc: acomp failed for perchild.c
*** Error code 1



The problem seems to be caused by this Solaris 8 include: sys/socket.h
which contains the following for the msghdr structure:
/*
 * Message header for recvmsg and sendmsg calls.
 */
struct msghdr {
        void            *msg_name;              /* optional address */
        socklen_t       msg_namelen;            /* size of address */
        struct iovec    *msg_iov;               /* scatter/gather array */
        int             msg_iovlen;             /* # elements in msg_iov */

#if defined(_XPG4_2) || defined(_KERNEL)
        void            *msg_control;           /* ancillary data */
        socklen_t       msg_controllen;         /* ancillary data buffer len */
        int             msg_flags;              /* flags on received message */
#else
        caddr_t         msg_accrights;  /* access rights sent/received */
        int             msg_accrightslen;
#endif  /* defined(_XPG4_2) || defined(_KERNEL) */
};



Obviously the posix flag wasn't ever set.  This is an area I don't understand
in Solaris...man standards(5) talks about 6 different levels of posix standards.
Heck, I even retried with the c89 workshop 6.2 compiler, and it barfed over
not recognizing a 64 bit integer could be a long long.  If configure would
produce the proper #define, and include the proper link libs and options to
go with posix compatibility, we could then use gcc or cc (presumably) for the
perchild MPM building...where do I go from here?

---------------------------------------------------------------------
To unsubscribe, e-mail: bugs-unsubscribe@httpd.apache.org
For additional commands, e-mail: bugs-help@httpd.apache.org