https://lore.kernel.org/patchwork/patch/449607/ https://gitweb.gentoo.org/proj/musl.git/tree/sys-kernel/linux-headers/files/libc-5.1-remove-sysinfo_h-from-kernel_h.patch Date: Fri, 14 Mar 2014 17:14:10 +0100 From: David Heidelberger To: linux-kernel@vger.kernel.org Cc: maillist-linux@barfooze.de, torvalds@linux-foundation.org Subject: [PATCH 1/4] glibc specific inclusion of sysinfo.h in kernel.h Message-ID: <130a9e0c237bae10e631a5ae52c5e2c8@ixit.cz> User-Agent: Roundcube Webmail/0.9.5 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org including sysinfo.h from kernel.h makes no sense whatsoever, but removing it breaks glibc's userspace header, which includes kernel.h instead of sysinfo.h from their sys/sysinfo.h. this seems to be a historical mistake. on musl, including any header that uses kernel.h directly or indirectly plus sys/sysinfo.h will produce a compile error due to redefinition of struct sysinfo.h. so for now, only include it on glibc in order not to break their headers. Signed-off-by: John Spencer Signed-off-by: David Heidelberger --- include/uapi/linux/kernel.h | 2 ++ 1 file changed, 2 insertion(+) */ diff --git a/include/uapi/linux/kernel.h b/include/uapi/linux/kernel.h index 321e399..8c45eeb 100644 --- a/include/uapi/linux/kernel.h +++ b/include/uapi/linux/kernel.h @@ -1,7 +1,9 @@ #ifndef _UAPI_LINUX_KERNEL_H #define _UAPI_LINUX_KERNEL_H +#ifdef __GLIBC__ #include +#endif /* * 'kernel.h' contains some often-used function prototypes etc