kumquat-buildroot/package/ltp-testsuite/0001-lapi-Add-sysinfo.h-to-fix-build-with-MUSL-libc.patch
Petr Vorel 3d867408b0 package/ltp-testsuite: bump version to 20220527
Add 2 patches from upstream which are required to fix compilation,
Remove patch accepted upstream.

Update list of broken tests under musl (confstr01.c was fixed).

Refresh 0001-lapi-Add-sysinfo.h-to-fix-build-with-MUSL-libc.patch
(still carry it case there is somebody using old musl based toolchain).

Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022-07-22 23:13:14 +02: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 20220527 ]
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 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
index 81c4b0844..a8c02d7df 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 a5b6bc504..87d922a92 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 0d20bb17c..21a3a5ba0 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 fb991ce8b..0fccd5405 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 6d218801c..8af11a030 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"
#define CHUNK_SZ (400*1024*1024L)
diff --git a/testcases/kernel/syscalls/sysinfo/sysinfo01.c b/testcases/kernel/syscalls/sysinfo/sysinfo01.c
index 2ea44a2be..a237345ef 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 7ad0e8bdc..61fa1ab75 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 af7cb6421..dc5ae65e3 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 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
#include "../testfrmw/testfrmw.h"
--
2.36.1