Re: [PATCH v4 71/79] include/uapi/linux/fuse.h: use linux/types.h also in userspace

From: Miklos Szeredi
Date: Thu Oct 15 2015 - 14:32:51 EST


On Thu, Oct 15, 2015 at 7:41 PM, Mikko Rapeli <mikko.rapeli@xxxxxx> wrote:
> On Thu, Oct 15, 2015 at 05:20:24PM +0200, Miklos Szeredi wrote:
>> On Thu, Oct 15, 2015 at 7:56 AM, Mikko Rapeli <mikko.rapeli@xxxxxx> wrote:
>> > Kernel headers should not use stdint.h.
>>
>> Including <linux/types.h> breaks compile of library on non-Linux
>> archs. Allowing this patch would mean having a different header in
>> the fuse lib as the one in the kernel. This is useless complexity and
>> a source of bugs. We've already been there, and much prefer the
>> current state.
>
> Hmm. Why should Linux uapi header care about non-Linux platforms?
>
> If fuse lib already has an embedded copy of this header, why should
> this change break anything fuse lib?

It has a copy, but that copy is often updated with new features taken
from the kernel. There's no reason to have two different versions of
the header file for no good reason.

> In my other patches I got review comments that kernel headers should not
> use <stdint.h> and also Documentation/CodingStyle section 5 says:
>
> (e) Types safe for use in userspace.
>
> In certain structures which are visible to userspace, we cannot
> require C99 types and cannot use the 'u32' form above. Thus, we
> use __u32 and similar types in all structures which are shared
> with userspace.

Ok, if you cannot require C99, then the __uXX types are the way to go.
But for the fuse API we *can* use C99 types, nothing preventing us
from doing it.

Thanks,
Miklos
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/