Discussion:
[PATCH] uapi: fix linux/kexec.h userspace compilation errors
Dmitry V. Levin
2017-02-22 22:46:46 UTC
Permalink
Include <stddef.h> (guarded by #ifndef __KERNEL__) to fix the following
linux/kexec.h userspace compilation errors:

/usr/include/linux/kexec.h:53:2: error: unknown type name 'size_t'
size_t bufsz;
/usr/include/linux/kexec.h:55:2: error: unknown type name 'size_t'
size_t memsz;

Signed-off-by: Dmitry V. Levin <***@altlinux.org>
---
include/uapi/linux/kexec.h | 3 +++
1 file changed, 3 insertions(+)

diff --git a/include/uapi/linux/kexec.h b/include/uapi/linux/kexec.h
index aae5ebf..7def5f5 100644
--- a/include/uapi/linux/kexec.h
+++ b/include/uapi/linux/kexec.h
@@ -45,6 +45,9 @@
#define KEXEC_SEGMENT_MAX 16

#ifndef __KERNEL__
+
+#include <stddef.h> /* For size_t. */
+
/*
* This structure is used to hold the arguments that are used when
* loading kernel binaries.
--
ldv
Eric W. Biederman
2017-02-23 01:37:46 UTC
Permalink
Post by Dmitry V. Levin
Include <stddef.h> (guarded by #ifndef __KERNEL__) to fix the following
/usr/include/linux/kexec.h:53:2: error: unknown type name 'size_t'
size_t bufsz;
/usr/include/linux/kexec.h:55:2: error: unknown type name 'size_t'
size_t memsz;
Were these failures generated with a static checker?

What changed that you are seeing new failures in old essentially static
headers?

Eric
Post by Dmitry V. Levin
---
include/uapi/linux/kexec.h | 3 +++
1 file changed, 3 insertions(+)
diff --git a/include/uapi/linux/kexec.h b/include/uapi/linux/kexec.h
index aae5ebf..7def5f5 100644
--- a/include/uapi/linux/kexec.h
+++ b/include/uapi/linux/kexec.h
@@ -45,6 +45,9 @@
#define KEXEC_SEGMENT_MAX 16
#ifndef __KERNEL__
+
+#include <stddef.h> /* For size_t. */
+
/*
* This structure is used to hold the arguments that are used when
* loading kernel binaries.
Dmitry V. Levin
2017-02-23 02:07:02 UTC
Permalink
Post by Eric W. Biederman
Post by Dmitry V. Levin
Include <stddef.h> (guarded by #ifndef __KERNEL__) to fix the following
/usr/include/linux/kexec.h:53:2: error: unknown type name 'size_t'
size_t bufsz;
/usr/include/linux/kexec.h:55:2: error: unknown type name 'size_t'
size_t memsz;
Were these failures generated with a static checker?
Yes, with
gcc -S -o/dev/null -xc /dev/null -include /usr/include/linux/kexec.h
Post by Eric W. Biederman
What changed that you are seeing new failures in old essentially static
headers?
Every uapi header file should be standalone, i.e. it must include,
directly or indirectly, every definition it uses, so that no user
should have to guess header dependencies.

It's not the first time I'm seeing this compilation error,
but now I've got some time to submit a fix. Better late than never.
--
ldv
Loading...