Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752559AbdI0Qrn (ORCPT ); Wed, 27 Sep 2017 12:47:43 -0400 Received: from mx2.suse.de ([195.135.220.15]:36028 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751878AbdI0Qrm (ORCPT ); Wed, 27 Sep 2017 12:47:42 -0400 From: Lee Duncan To: linux-kernel@vger.kernel.org, netdev@vger.kernel.org Cc: "Dmitry V. Levin" , "David Miller" , Lee Duncan Subject: Re: [PATCH 2/2] uapi: add a compatibility layer between linux/uio.h and glibc Date: Wed, 27 Sep 2017 09:46:02 -0700 Message-Id: <20170927164602.2914-1-lduncan@suse.com> X-Mailer: git-send-email 2.12.3 In-reply-to: <20170221201914.GA28360@altlinux.org> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2060 Lines: 74 Ping? I never saw any response to this. On Wed, 22 Feb 2017 05:29:47 +0300, Dmitry V Levin wrote: > Do not define struct iovec in linux/uio.h when or > is already included and provides these definitions. > > This fixes the following compilation error when or > is included before : > > /usr/include/linux/uio.h:16:8: error: redefinition of 'struct iovec' > > Signed-off-by: Dmitry V. Levin > --- > include/uapi/linux/libc-compat.h | 10 ++++++++++ > include/uapi/linux/uio.h | 3 +++ > 2 files changed, 13 insertions(+) > > diff --git a/include/uapi/linux/libc-compat.h b/include/uapi/linux/libc-compat.h > index 481e3b1..9b88586 100644 > --- a/include/uapi/linux/libc-compat.h > +++ b/include/uapi/linux/libc-compat.h > @@ -205,6 +205,13 @@ > #define __UAPI_DEF_TIMEZONE 1 > #endif > > +/* Coordinate with glibc bits/uio.h header. */ > +#if defined(_SYS_UIO_H) || defined(_FCNTL_H) > +#define __UAPI_DEF_IOVEC 0 > +#else > +#define __UAPI_DEF_IOVEC 1 > +#endif > + > /* Definitions for xattr.h */ > #if defined(_SYS_XATTR_H) > #define __UAPI_DEF_XATTR 0 > @@ -261,6 +268,9 @@ > #define __UAPI_DEF_TIMEVAL 1 > #define __UAPI_DEF_TIMEZONE 1 > > +/* Definitions for uio.h */ > +#define __UAPI_DEF_IOVEC 1 > + > /* Definitions for xattr.h */ > #define __UAPI_DEF_XATTR 1 > > diff --git a/include/uapi/linux/uio.h b/include/uapi/linux/uio.h > index 2731d56..e6e12cf 100644 > --- a/include/uapi/linux/uio.h > +++ b/include/uapi/linux/uio.h > @@ -9,15 +9,18 @@ > #ifndef _UAPI__LINUX_UIO_H > #define _UAPI__LINUX_UIO_H > > +#include > #include > #include > > > +#if __UAPI_DEF_IOVEC > struct iovec > { > void __user *iov_base; /* BSD uses caddr_t (1003.1g requires void *) */ > __kernel_size_t iov_len; /* Must be size_t (1003.1g) */ > }; > +#endif /* __UAPI_DEF_IOVEC */ > > /* > * UIO_MAXIOV shall be at least 16 1003.1g (5.4.1.1) > -- > ldv -- Lee Duncan SUSE Labs