Re: [PATCH v06 30/36] uapi rdma/rdma_user_rxe.h: include in.h and in6.h
From: Jason Gunthorpe
Date: Thu Aug 10 2017 - 12:19:38 EST
On Thu, Aug 10, 2017 at 05:47:48AM +0300, Dmitry V. Levin wrote:
> On Wed, Aug 09, 2017 at 09:52:41AM -0600, Jason Gunthorpe wrote:
> > On Wed, Aug 09, 2017 at 04:48:08PM +0300, Moni Shoua wrote:
> > > >
> > > > I'm not sure this is a good idea, linux/in.h should not be included in
> > > > userspace users of this file, 'sockaddr_in' needs to come from glibc's
> > > > 'netinet/in.h' instead..
> >
> > > Is it wrong to include include/uapi/linux/in.h from userspace?
> >
> > Generally speaking userspace should always use the glibc version of
> > the headers and not headers from under linux/
>
> Sorry? Isn't the main idea of UAPI in providing the Linux interface for
> userspace, unlike glibc headers that provide other more or less standard
> interfaces like GNU, POSIX, etc?
The issue is when glibc and linux provide the same standards based API
(eg in.h) - then the uapi version of in.h is really only for
consumption by glibc and other very special cases.
Forcing apps that need to access the rdma uapi that is not implemented
in glibc to deal with that mess is what is problematic. The uapi
system has a number of issues like this :|
If you make it so I cannot include rdma_user_rxe.h and netinet/in.h,
(for instance) in the same file then you broke user space use of the
header and things are worse off..
Jason