buildroot/package/ltp-testsuite/0002-lapi-Add-sysinfo.h-to-fix-build-with-MUSL-libc.patch
Petr Vorel adb6287442 package/ltp-testsuite: bump to version 20200930
Drop patch form this version add 2 new patches for fixing build.

Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2020-10-08 22:00:59 +02:00

204 lines
6.3 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 ac3e262cba81889c0bb04ce87a50a1709f2726e7 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/ ]
---
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 +-
9 files changed, 30 insertions(+), 8 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 053c3bcf9..61ea2076d 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 4f48d7529..d8ee03dae 100644
--- 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"
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
index f134d90c9..647db951e 100644
--- a/lib/tst_memutils.c
+++ b/lib/tst_memutils.c
@@ -5,11 +5,11 @@
#include <unistd.h>
#include <limits.h>
-#include <sys/sysinfo.h>
#include <stdlib.h>
#define TST_NO_DEFAULT_MAIN
#include "tst_test.h"
+#include "lapi/sysinfo.h"
#define BLOCKSIZE (16 * 1024 * 1024)
diff --git a/testcases/kernel/mem/mtest01/mtest01.c b/testcases/kernel/mem/mtest01/mtest01.c
index f08d3943f..9b4d856f8 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 f76f3f6aa..b2613670b 100644
--- a/testcases/kernel/syscalls/madvise/madvise06.c
+++ b/testcases/kernel/syscalls/madvise/madvise06.c
@@ -24,8 +24,8 @@
#include <errno.h>
#include <stdio.h>
#include <sys/mount.h>
-#include <sys/sysinfo.h>
#include "tst_test.h"
+#include "lapi/sysinfo.h"
#define CHUNK_SZ (400*1024*1024L)
#define CHUNK_PAGES (CHUNK_SZ / pg_sz)
diff --git a/testcases/kernel/syscalls/sysinfo/sysinfo01.c b/testcases/kernel/syscalls/sysinfo/sysinfo01.c
index 2ea44a2be..a95066bf5 100644
--- a/testcases/kernel/syscalls/sysinfo/sysinfo01.c
+++ b/testcases/kernel/syscalls/sysinfo/sysinfo01.c
@@ -69,9 +69,9 @@
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/signal.h>
-#include <sys/sysinfo.h>
#include "test.h"
+#include "lapi/sysinfo.h"
void setup();
void cleanup();
diff --git a/testcases/kernel/syscalls/sysinfo/sysinfo02.c b/testcases/kernel/syscalls/sysinfo/sysinfo02.c
index 678b8f1d3..5ce65d20e 100644
--- a/testcases/kernel/syscalls/sysinfo/sysinfo02.c
+++ b/testcases/kernel/syscalls/sysinfo/sysinfo02.c
@@ -65,10 +65,10 @@
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/signal.h>
-#include <sys/sysinfo.h>
#include <stdint.h>
#include "test.h"
+#include "lapi/sysinfo.h"
#define INVALID_ADDRESS ((uintptr_t)-1)
diff --git a/testcases/kernel/syscalls/sysinfo/sysinfo03.c b/testcases/kernel/syscalls/sysinfo/sysinfo03.c
index af7cb6421..3b61a05b1 100644
--- a/testcases/kernel/syscalls/sysinfo/sysinfo03.c
+++ b/testcases/kernel/syscalls/sysinfo/sysinfo03.c
@@ -13,9 +13,9 @@
*/
-#include <sys/sysinfo.h>
#include "lapi/namespaces_constants.h"
#include "lapi/posix_clocks.h"
+#include "lapi/sysinfo.h"
#include "tst_test.h"
static int offsets[] = {
--
2.28.0