2021-09-30 21:00:35 +02:00
|
|
|
|
From bee452dfa2a34ba7df7db677e5673cbdcd23f61e Mon Sep 17 00:00:00 2001
|
2020-10-03 00:10:32 +02:00
|
|
|
|
From: Petr Vorel <petr.vorel@gmail.com>
|
|
|
|
|
Date: Thu, 1 Oct 2020 23:28:39 +0200
|
|
|
|
|
Subject: [PATCH] lapi: Add sysinfo.h to fix build with MUSL libc
|
|
|
|
|
MIME-Version: 1.0
|
|
|
|
|
Content-Type: text/plain; charset=UTF-8
|
|
|
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
|
|
|
|
|
|
The reason is to avoid indirect <linux/sysinfo.h> include when using
|
|
|
|
|
some network headers: <linux/netlink.h> or others -> <linux/kernel.h>
|
|
|
|
|
-> <linux/sysinfo.h>
|
|
|
|
|
|
|
|
|
|
This indirect include causes on MUSL redefinition of struct sysinfo when
|
|
|
|
|
included both <sys/sysinfo.h> and some of UAPI headers:
|
|
|
|
|
|
|
|
|
|
In file included from x86_64-buildroot-linux-musl/sysroot/usr/include/linux/kernel.h:5,
|
|
|
|
|
from x86_64-buildroot-linux-musl/sysroot/usr/include/linux/netlink.h:5,
|
|
|
|
|
from ../include/tst_netlink.h:14,
|
|
|
|
|
from tst_crypto.c:13:
|
|
|
|
|
x86_64-buildroot-linux-musl/sysroot/usr/include/linux/sysinfo.h:8:8: error: redefinition of ‘struct sysinfo’
|
|
|
|
|
struct sysinfo {
|
|
|
|
|
^~~~~~~
|
|
|
|
|
In file included from ../include/tst_safe_macros.h:15,
|
|
|
|
|
from ../include/tst_test.h:93,
|
|
|
|
|
from tst_crypto.c:11:
|
|
|
|
|
x86_64-buildroot-linux-musl/sysroot/usr/include/sys/sysinfo.h:10:8: note: originally defined here
|
|
|
|
|
|
|
|
|
|
Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
|
2021-01-21 20:12:07 +01:00
|
|
|
|
|
2021-09-30 21:00:35 +02:00
|
|
|
|
[ upstream status:
|
|
|
|
|
https://patchwork.ozlabs.org/project/ltp/patch/20201001231256.6930-1-petr.vorel@gmail.com/,
|
|
|
|
|
rebased for 20210927 ]
|
2021-01-21 20:12:07 +01:00
|
|
|
|
|
|
|
|
|
But this patch is not going to get upstreamed because it got fixed in Linux kernel:
|
|
|
|
|
a85cbe6159ff "uapi: move constants from <linux/kernel.h> to <linux/const.h>"
|
|
|
|
|
|
|
|
|
|
This patch was also backported to stable and LTS versions,
|
|
|
|
|
which we use since buildroot 54584d233b "{linux, linux-headers}: bump
|
|
|
|
|
5.{4, 10}.x 4.{4, 9, 14, 19} series".
|
|
|
|
|
We just wait for all musl based toolchains to be rebuilt. ]
|
2021-09-30 21:00:35 +02:00
|
|
|
|
|
|
|
|
|
Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
|
2020-10-03 00:10:32 +02:00
|
|
|
|
---
|
|
|
|
|
include/lapi/sysinfo.h | 22 +++++++++++++++++++
|
|
|
|
|
include/tst_safe_macros.h | 2 +-
|
|
|
|
|
lib/safe_macros.c | 2 +-
|
|
|
|
|
lib/tst_memutils.c | 2 +-
|
|
|
|
|
testcases/kernel/mem/mtest01/mtest01.c | 2 +-
|
|
|
|
|
testcases/kernel/syscalls/madvise/madvise06.c | 2 +-
|
|
|
|
|
testcases/kernel/syscalls/sysinfo/sysinfo01.c | 2 +-
|
|
|
|
|
testcases/kernel/syscalls/sysinfo/sysinfo02.c | 2 +-
|
|
|
|
|
testcases/kernel/syscalls/sysinfo/sysinfo03.c | 2 +-
|
2021-09-30 21:00:35 +02:00
|
|
|
|
.../interfaces/pthread_cond_broadcast/1-2.c | 2 +-
|
|
|
|
|
10 files changed, 31 insertions(+), 9 deletions(-)
|
2020-10-03 00:10:32 +02:00
|
|
|
|
create mode 100644 include/lapi/sysinfo.h
|
|
|
|
|
|
|
|
|
|
diff --git a/include/lapi/sysinfo.h b/include/lapi/sysinfo.h
|
|
|
|
|
new file mode 100644
|
|
|
|
|
index 000000000..d0e0e93d7
|
|
|
|
|
--- /dev/null
|
|
|
|
|
+++ b/include/lapi/sysinfo.h
|
|
|
|
|
@@ -0,0 +1,22 @@
|
|
|
|
|
+// SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
|
+/*
|
|
|
|
|
+ * Copyright (c) 2020 Petr Vorel <petr.vorel@gmail.com>
|
|
|
|
|
+ */
|
|
|
|
|
+
|
|
|
|
|
+#ifndef SYSINFO_H__
|
|
|
|
|
+
|
|
|
|
|
+/*
|
|
|
|
|
+ * Don't use <sys/sysinfo.h> as it breaks build MUSL toolchain.
|
|
|
|
|
+ * Use <linux/sysinfo.h> instead.
|
|
|
|
|
+ *
|
|
|
|
|
+ * Some kernel UAPI headers do indirect <linux/sysinfo.h> include:
|
|
|
|
|
+ * <linux/netlink.h> or others -> <linux/kernel.h> -> <linux/sysinfo.h>
|
|
|
|
|
+ *
|
|
|
|
|
+ * This indirect include causes on MUSL redefinition of struct sysinfo when
|
|
|
|
|
+ * included both <sys/sysinfo.h> and some of UAPI headers:
|
|
|
|
|
+ */
|
|
|
|
|
+#include <linux/sysinfo.h>
|
|
|
|
|
+
|
|
|
|
|
+#define SYSINFO_H__
|
|
|
|
|
+
|
|
|
|
|
+#endif /* SYSINFO_H__ */
|
|
|
|
|
diff --git a/include/tst_safe_macros.h b/include/tst_safe_macros.h
|
2021-09-30 21:00:35 +02:00
|
|
|
|
index d99441c86..0d26e9d45 100644
|
2020-10-03 00:10:32 +02:00
|
|
|
|
--- a/include/tst_safe_macros.h
|
|
|
|
|
+++ b/include/tst_safe_macros.h
|
|
|
|
|
@@ -12,7 +12,7 @@
|
|
|
|
|
#include <sys/resource.h>
|
|
|
|
|
#include <sys/stat.h>
|
|
|
|
|
#include <sys/vfs.h>
|
|
|
|
|
-#include <sys/sysinfo.h>
|
|
|
|
|
+#include <linux/sysinfo.h>
|
|
|
|
|
#include <fcntl.h>
|
|
|
|
|
#include <libgen.h>
|
|
|
|
|
#include <signal.h>
|
|
|
|
|
diff --git a/lib/safe_macros.c b/lib/safe_macros.c
|
2021-01-21 20:12:08 +01:00
|
|
|
|
index a5b6bc504..20d01d304 100644
|
2020-10-03 00:10:32 +02:00
|
|
|
|
--- a/lib/safe_macros.c
|
|
|
|
|
+++ b/lib/safe_macros.c
|
|
|
|
|
@@ -11,7 +11,6 @@
|
|
|
|
|
#include <sys/wait.h>
|
|
|
|
|
#include <sys/mount.h>
|
|
|
|
|
#include <sys/xattr.h>
|
|
|
|
|
-#include <sys/sysinfo.h>
|
|
|
|
|
#include <errno.h>
|
|
|
|
|
#include <fcntl.h>
|
|
|
|
|
#include <libgen.h>
|
|
|
|
|
@@ -23,6 +22,7 @@
|
|
|
|
|
#include <malloc.h>
|
|
|
|
|
#include "test.h"
|
|
|
|
|
#include "safe_macros.h"
|
|
|
|
|
+#include "lapi/sysinfo.h"
|
2021-01-21 20:12:08 +01:00
|
|
|
|
|
2020-10-03 00:10:32 +02:00
|
|
|
|
char *safe_basename(const char *file, const int lineno,
|
|
|
|
|
void (*cleanup_fn) (void), char *path)
|
|
|
|
|
diff --git a/lib/tst_memutils.c b/lib/tst_memutils.c
|
2021-09-30 21:00:35 +02:00
|
|
|
|
index 69077861f..ae1cad29b 100644
|
2020-10-03 00:10:32 +02:00
|
|
|
|
--- a/lib/tst_memutils.c
|
|
|
|
|
+++ b/lib/tst_memutils.c
|
|
|
|
|
@@ -5,11 +5,11 @@
|
2021-01-21 20:12:08 +01:00
|
|
|
|
|
2020-10-03 00:10:32 +02:00
|
|
|
|
#include <unistd.h>
|
|
|
|
|
#include <limits.h>
|
|
|
|
|
-#include <sys/sysinfo.h>
|
|
|
|
|
#include <stdlib.h>
|
2021-01-21 20:12:08 +01:00
|
|
|
|
|
2020-10-03 00:10:32 +02:00
|
|
|
|
#define TST_NO_DEFAULT_MAIN
|
|
|
|
|
#include "tst_test.h"
|
|
|
|
|
+#include "lapi/sysinfo.h"
|
2021-01-21 20:12:08 +01:00
|
|
|
|
|
2020-10-03 00:10:32 +02:00
|
|
|
|
#define BLOCKSIZE (16 * 1024 * 1024)
|
2021-01-21 20:12:08 +01:00
|
|
|
|
|
2020-10-03 00:10:32 +02:00
|
|
|
|
diff --git a/testcases/kernel/mem/mtest01/mtest01.c b/testcases/kernel/mem/mtest01/mtest01.c
|
2021-01-21 20:12:08 +01:00
|
|
|
|
index 9676ea4b5..33b2ac822 100644
|
2020-10-03 00:10:32 +02:00
|
|
|
|
--- a/testcases/kernel/mem/mtest01/mtest01.c
|
|
|
|
|
+++ b/testcases/kernel/mem/mtest01/mtest01.c
|
|
|
|
|
@@ -20,7 +20,6 @@
|
|
|
|
|
*/
|
2021-01-21 20:12:08 +01:00
|
|
|
|
|
2020-10-03 00:10:32 +02:00
|
|
|
|
#include <sys/types.h>
|
|
|
|
|
-#include <sys/sysinfo.h>
|
|
|
|
|
#include <sys/wait.h>
|
|
|
|
|
#include <limits.h>
|
|
|
|
|
#include <signal.h>
|
|
|
|
|
@@ -29,6 +28,7 @@
|
|
|
|
|
#include <unistd.h>
|
2021-01-21 20:12:08 +01:00
|
|
|
|
|
2020-10-03 00:10:32 +02:00
|
|
|
|
#include "lapi/abisize.h"
|
|
|
|
|
+#include "lapi/sysinfo.h"
|
|
|
|
|
#include "tst_test.h"
|
2021-01-21 20:12:08 +01:00
|
|
|
|
|
2020-10-03 00:10:32 +02:00
|
|
|
|
#define FIVE_HUNDRED_MB (500ULL*1024*1024)
|
|
|
|
|
diff --git a/testcases/kernel/syscalls/madvise/madvise06.c b/testcases/kernel/syscalls/madvise/madvise06.c
|
2021-09-30 21:00:35 +02:00
|
|
|
|
index 263b8e78b..4fa52e6ea 100644
|
2020-10-03 00:10:32 +02:00
|
|
|
|
--- a/testcases/kernel/syscalls/madvise/madvise06.c
|
|
|
|
|
+++ b/testcases/kernel/syscalls/madvise/madvise06.c
|
2021-09-30 21:00:35 +02:00
|
|
|
|
@@ -46,7 +46,7 @@
|
2020-10-03 00:10:32 +02:00
|
|
|
|
#include <errno.h>
|
|
|
|
|
#include <stdio.h>
|
|
|
|
|
#include <sys/mount.h>
|
|
|
|
|
-#include <sys/sysinfo.h>
|
|
|
|
|
+#include "lapi/sysinfo.h"
|
2021-01-21 20:12:08 +01:00
|
|
|
|
#include "tst_test.h"
|
2021-09-30 21:00:35 +02:00
|
|
|
|
#include "tst_cgroup.h"
|
2021-01-21 20:12:08 +01:00
|
|
|
|
|
2020-10-03 00:10:32 +02:00
|
|
|
|
diff --git a/testcases/kernel/syscalls/sysinfo/sysinfo01.c b/testcases/kernel/syscalls/sysinfo/sysinfo01.c
|
2021-09-30 21:00:35 +02:00
|
|
|
|
index 2ea44a2be..a237345ef 100644
|
2020-10-03 00:10:32 +02:00
|
|
|
|
--- a/testcases/kernel/syscalls/sysinfo/sysinfo01.c
|
|
|
|
|
+++ b/testcases/kernel/syscalls/sysinfo/sysinfo01.c
|
2021-09-30 21:00:35 +02:00
|
|
|
|
@@ -69,7 +69,7 @@
|
2020-10-03 00:10:32 +02:00
|
|
|
|
#include <sys/types.h>
|
|
|
|
|
#include <sys/stat.h>
|
|
|
|
|
#include <sys/signal.h>
|
|
|
|
|
-#include <sys/sysinfo.h>
|
2021-09-30 21:00:35 +02:00
|
|
|
|
+#include "lapi/sysinfo.h"
|
2021-01-21 20:12:08 +01:00
|
|
|
|
|
2020-10-03 00:10:32 +02:00
|
|
|
|
#include "test.h"
|
2021-01-21 20:12:08 +01:00
|
|
|
|
|
2020-10-03 00:10:32 +02:00
|
|
|
|
diff --git a/testcases/kernel/syscalls/sysinfo/sysinfo02.c b/testcases/kernel/syscalls/sysinfo/sysinfo02.c
|
2021-09-30 21:00:35 +02:00
|
|
|
|
index 7ad0e8bdc..61fa1ab75 100644
|
2020-10-03 00:10:32 +02:00
|
|
|
|
--- a/testcases/kernel/syscalls/sysinfo/sysinfo02.c
|
|
|
|
|
+++ b/testcases/kernel/syscalls/sysinfo/sysinfo02.c
|
2021-09-30 21:00:35 +02:00
|
|
|
|
@@ -65,7 +65,7 @@
|
2020-10-03 00:10:32 +02:00
|
|
|
|
#include <sys/types.h>
|
|
|
|
|
#include <sys/stat.h>
|
|
|
|
|
#include <sys/signal.h>
|
|
|
|
|
-#include <sys/sysinfo.h>
|
2021-09-30 21:00:35 +02:00
|
|
|
|
+#include "lapi/sysinfo.h"
|
2020-10-03 00:10:32 +02:00
|
|
|
|
#include <stdint.h>
|
2021-01-21 20:12:08 +01:00
|
|
|
|
|
2020-10-03 00:10:32 +02:00
|
|
|
|
#include "test.h"
|
|
|
|
|
diff --git a/testcases/kernel/syscalls/sysinfo/sysinfo03.c b/testcases/kernel/syscalls/sysinfo/sysinfo03.c
|
2021-09-30 21:00:35 +02:00
|
|
|
|
index af7cb6421..dc5ae65e3 100644
|
2020-10-03 00:10:32 +02:00
|
|
|
|
--- a/testcases/kernel/syscalls/sysinfo/sysinfo03.c
|
|
|
|
|
+++ b/testcases/kernel/syscalls/sysinfo/sysinfo03.c
|
2021-09-30 21:00:35 +02:00
|
|
|
|
@@ -13,7 +13,7 @@
|
2021-01-21 20:12:08 +01:00
|
|
|
|
|
2020-10-03 00:10:32 +02:00
|
|
|
|
*/
|
2021-01-21 20:12:08 +01:00
|
|
|
|
|
2020-10-03 00:10:32 +02:00
|
|
|
|
-#include <sys/sysinfo.h>
|
2021-09-30 21:00:35 +02:00
|
|
|
|
+#include "lapi/sysinfo.h"
|
2020-10-03 00:10:32 +02:00
|
|
|
|
#include "lapi/namespaces_constants.h"
|
|
|
|
|
#include "lapi/posix_clocks.h"
|
|
|
|
|
#include "tst_test.h"
|
2021-09-30 21:00:35 +02:00
|
|
|
|
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_broadcast/1-2.c b/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_broadcast/1-2.c
|
|
|
|
|
index 22e7c3638..572701f9f 100644
|
|
|
|
|
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_broadcast/1-2.c
|
|
|
|
|
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_broadcast/1-2.c
|
|
|
|
|
@@ -43,7 +43,7 @@
|
|
|
|
|
#include <sys/wait.h>
|
|
|
|
|
#include <semaphore.h>
|
|
|
|
|
#ifdef __linux__
|
|
|
|
|
-#include <sys/sysinfo.h>
|
|
|
|
|
+#include "lapi/sysinfo.h"
|
|
|
|
|
#endif
|
2021-01-21 20:12:08 +01:00
|
|
|
|
|
2021-09-30 21:00:35 +02:00
|
|
|
|
#include "../testfrmw/testfrmw.h"
|
2021-01-21 20:12:08 +01:00
|
|
|
|
--
|
2021-09-30 21:00:35 +02:00
|
|
|
|
2.33.0
|
2020-10-03 00:10:32 +02:00
|
|
|
|
|