From: Mikko Rapeli <hidden> Date: 2015-02-16 23:48:20
On Mon, Feb 16, 2015 at 06:32:54PM -0500, Mike Snitzer wrote:
On Mon, Feb 16 2015 at 6:05pm -0500,
Mikko Rapeli [off-list ref] wrote:
quoted
Fixes compilation error:
linux/dm-log-userspace.h:416:2: error: unknown type name ‘uint64_t’
What userspace code are you compiling? Do you have a feel for when this
stopped working?
See Message-Id: [off-list ref]
or https://lkml.org/lkml/2015/2/16/521
The failure comes from a test which tries to compile each exported header file
in userspace one at a time.
-Mikko
The normal way to do this in kernel headers is to use linux/types.h
but change the data structures to use __u64 instead of uint64_t
to avoid the build error.
It's possible that the maintainers of this code have a strong opinion
on this matter, but try doing that first.
Arnd
From: Alasdair G Kergon <agk@redhat.com> Date: 2015-02-17 13:38:27
On Tue, Feb 17, 2015 at 10:08:56AM +0100, Arnd Bergmann wrote:
The normal way to do this in kernel headers is to use linux/types.h
but change the data structures to use __u64 instead of uint64_t
to avoid the build error.
That's what happened to dm-ioctl.h.
(Or someone could adjust linux/types.h to include these as standard.)
Alasdair
On Tuesday 17 February 2015 13:38:06 Alasdair G Kergon wrote:
On Tue, Feb 17, 2015 at 10:08:56AM +0100, Arnd Bergmann wrote:
quoted
The normal way to do this in kernel headers is to use linux/types.h
but change the data structures to use __u64 instead of uint64_t
to avoid the build error.
That's what happened to dm-ioctl.h.
Ah, indeed. It turns out that it was my own change that did this:
commit 9adfbfb611307060db54691bc7e6d53fdc12312b
Author: Arnd Bergmann [off-list ref]
Date: Thu Feb 26 00:51:40 2009 +0100
make most exported headers use strict integer types
This takes care of all files that have only a small number
of non-strict integer type uses.
(Or someone could adjust linux/types.h to include these as standard.)
No, that wouldn't work. The C user space headers are not meant to
be included implicitly by any standard headers, which might pull
in linux/types.h implicitly.
I think it would be best to change all patches in the new series
in the same way for consistency and try to avoid using stdint.h
as much as we can.
Arnd
From: Mikko Rapeli <hidden> Date: 2015-03-10 22:48:07
On Tue, Feb 17, 2015 at 02:55:49PM +0100, Arnd Bergmann wrote:
On Tuesday 17 February 2015 13:38:06 Alasdair G Kergon wrote:
quoted
On Tue, Feb 17, 2015 at 10:08:56AM +0100, Arnd Bergmann wrote:
quoted
The normal way to do this in kernel headers is to use linux/types.h
but change the data structures to use __u64 instead of uint64_t
to avoid the build error.
That's what happened to dm-ioctl.h.
Ah, indeed. It turns out that it was my own change that did this:
commit 9adfbfb611307060db54691bc7e6d53fdc12312b
Author: Arnd Bergmann [off-list ref]
Date: Thu Feb 26 00:51:40 2009 +0100
make most exported headers use strict integer types
This takes care of all files that have only a small number
of non-strict integer type uses.
quoted
(Or someone could adjust linux/types.h to include these as standard.)
No, that wouldn't work. The C user space headers are not meant to
be included implicitly by any standard headers, which might pull
in linux/types.h implicitly.
I think it would be best to change all patches in the new series
in the same way for consistency and try to avoid using stdint.h
as much as we can.
Ok, I'll change all patches to use __u8 etc types instead of uint8_t etc via
stdint.h.
-Mikko