kumquat-buildroot/package/ltp-testsuite/0001-lapi-Add-sysinfo.h-to-fix-build-with-MUSL-libc.patch
Petr Vorel 85af8e22c6 package/ltp-testsuite: bump version to 20220121
LTP now builds metadata directory for the host. It supports
cross-compilation, we just need to pass HOST_CFLAGS and HOST_LDFLAGS in
addition to the target flags. They have to be passed to make, adding
them to configure does not work. Without this, on some architectures the
-mlongcalls and -mauto-litpools get passed to the host compile, but
they're not valid there.

Drop patches from this release.

Refresh 0001-lapi-Add-sysinfo.h-to-fix-build-with-MUSL-libc.patch
(still safe to carry it).

Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
2022-02-05 23:55:53 +01:00

212 lines
7.0 KiB
Diff
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

From f34c6ca3d543968e900d6327d8b5900db63f08ad Mon Sep 17 00:00:00 2001
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>
[ upstream status:
https://patchwork.ozlabs.org/project/ltp/patch/20201001231256.6930-1-petr.vorel@gmail.com/,
rebased for 20210927 ]
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. ]
Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
---
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 +-
.../interfaces/pthread_cond_broadcast/1-2.c | 2 +-
10 files changed, 31 insertions(+), 9 deletions(-)
create mode 100644 include/lapi/sysinfo.h
diff --git a/include/lapi/sysinfo.h b/include/lapi/sysinfo.h
new file mode 100644
index 0000000000..d0e0e93d7f
--- /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
index d99441c86f..0d26e9d455 100644
--- 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
index a5b6bc5047..87d922a928 100644
--- a/lib/safe_macros.c
+++ b/lib/safe_macros.c
@@ -11,7 +11,7 @@
#include <sys/wait.h>
#include <sys/mount.h>
#include <sys/xattr.h>
-#include <sys/sysinfo.h>
+#include "lapi/sysinfo.h"
#include <errno.h>
#include <fcntl.h>
#include <libgen.h>
diff --git a/lib/tst_memutils.c b/lib/tst_memutils.c
index 4a49747613..000688f5a3 100644
--- a/lib/tst_memutils.c
+++ b/lib/tst_memutils.c
@@ -6,7 +6,7 @@
#include <stdio.h>
#include <unistd.h>
#include <limits.h>
-#include <sys/sysinfo.h>
+#include "lapi/sysinfo.h"
#include <stdlib.h>
#define TST_NO_DEFAULT_MAIN
diff --git a/testcases/kernel/mem/mtest01/mtest01.c b/testcases/kernel/mem/mtest01/mtest01.c
index 20cb95191d..3462dc3f82 100644
--- a/testcases/kernel/mem/mtest01/mtest01.c
+++ b/testcases/kernel/mem/mtest01/mtest01.c
@@ -20,7 +20,6 @@
*/
#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>
#include "lapi/abisize.h"
+#include "lapi/sysinfo.h"
#include "tst_test.h"
#define FIVE_HUNDRED_MB (500ULL*1024*1024)
diff --git a/testcases/kernel/syscalls/madvise/madvise06.c b/testcases/kernel/syscalls/madvise/madvise06.c
index 263b8e78bf..4fa52e6eae 100644
--- a/testcases/kernel/syscalls/madvise/madvise06.c
+++ b/testcases/kernel/syscalls/madvise/madvise06.c
@@ -46,7 +46,7 @@
#include <errno.h>
#include <stdio.h>
#include <sys/mount.h>
-#include <sys/sysinfo.h>
+#include "lapi/sysinfo.h"
#include "tst_test.h"
#include "tst_cgroup.h"
diff --git a/testcases/kernel/syscalls/sysinfo/sysinfo01.c b/testcases/kernel/syscalls/sysinfo/sysinfo01.c
index 2ea44a2beb..a237345ef7 100644
--- a/testcases/kernel/syscalls/sysinfo/sysinfo01.c
+++ b/testcases/kernel/syscalls/sysinfo/sysinfo01.c
@@ -69,7 +69,7 @@
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/signal.h>
-#include <sys/sysinfo.h>
+#include "lapi/sysinfo.h"
#include "test.h"
diff --git a/testcases/kernel/syscalls/sysinfo/sysinfo02.c b/testcases/kernel/syscalls/sysinfo/sysinfo02.c
index 7ad0e8bdcf..61fa1ab757 100644
--- a/testcases/kernel/syscalls/sysinfo/sysinfo02.c
+++ b/testcases/kernel/syscalls/sysinfo/sysinfo02.c
@@ -65,7 +65,7 @@
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/signal.h>
-#include <sys/sysinfo.h>
+#include "lapi/sysinfo.h"
#include <stdint.h>
#include "test.h"
diff --git a/testcases/kernel/syscalls/sysinfo/sysinfo03.c b/testcases/kernel/syscalls/sysinfo/sysinfo03.c
index af7cb6421e..dc5ae65e35 100644
--- a/testcases/kernel/syscalls/sysinfo/sysinfo03.c
+++ b/testcases/kernel/syscalls/sysinfo/sysinfo03.c
@@ -13,7 +13,7 @@
*/
-#include <sys/sysinfo.h>
+#include "lapi/sysinfo.h"
#include "lapi/namespaces_constants.h"
#include "lapi/posix_clocks.h"
#include "tst_test.h"
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 22e7c36386..572701f9fd 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
#include "../testfrmw/testfrmw.h"
--
2.34.1