Mailing List Archive

[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