apr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Brad Nicholes" <BNICHO...@novell.com>
Subject rev:421075 - Define struct iovec for mingw - causes redefinition problems...
Date Wed, 12 Jul 2006 16:58:32 GMT
  The patch
http://svn.apache.org/viewvc/apr/apr/trunk/include/apr_want.h?r1=151412&r2=421075
which adds a hard coded definition of struct iovec causes redefinition
problems at least on the NetWare platform and I would imagine others as
well.  The problem is that both the definitions of struct iovec found in
sys/uio.h as well as the hard coded definition found in apr_want.h will
be included under certain circumstances.  

  There are several places throughout both apr and apr-util where
sys/uio.h is being included explicitly rather than included through
apr_want.h (ie. apr_file_info.h, apr_arch_file_io.h,
apr_arch_networkio.h, apr_brigade.c, apr_buckets.h).  If one of these
explicit inclusions of sys/uio.h is hit during compilation as well as
the inclusion of apr_want.h without APR_WANT_IOVEC being defined (which
is the case in apr_xml.c), both definitions of struct iovec will be
included which causes a redefinition error.  Currently this is happening
on the NetWare platform when compiling apr_xml.c.  If this redefinition
of struct iovec in apr_want.h is only necessary for mingw, shouldn't it
be #ifdef'ed appropriately?  Alternatively or in addition, shouldn't all
explicit inclusions of sys/uio.h be replaced with:

#define APR_WANT_IOVEC
#include "apr_want.h"


Brad

Mime
View raw message