All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Yann E. MORIN" <yann.morin.1998@free.fr>
To: Petr Vorel <pevik@seznam.cz>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>,
	Anders Roxell <anders.roxell@linaro.org>,
	buildroot@buildroot.org
Subject: Re: [Buildroot] [PATCH v3 1/2] package/ltp-testsuite: require 5.11 headers for musl
Date: Sun, 16 Apr 2023 22:45:03 +0200	[thread overview]
Message-ID: <20230416204503.GI2819@scaer> (raw)
In-Reply-To: <20230416201705.2294430-2-pevik@seznam.cz>

Petr, All,

On 2023-04-16 22:17 +0200, Petr Vorel spake thusly:
> From: Petr Vorel <petr.vorel@gmail.com>
> 
> Remove sysinfo.h out of tree workaround for musl. Kernel headers were
> fixed in a85cbe6159ff ("uapi: move constants from <linux/kernel.h> to
> <linux/const.h>") in v5.11, and got backported to stable/LTS kernels.
> 
> There might unfixed toolchains being used, if users complain, we can
> carry on rebasing the patch or try to ask upstream to include it.

I've reworded the commit log in a more logical fashion (I believe), and
applied to master, thanks.

Regards,
Yann E. MORIN.

> Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
> ---
> New in v3
> Change is in separate commit to be more visible.
> 
> Kind regards,
> Petr
> 
>  ...ysinfo.h-to-fix-build-with-MUSL-libc.patch | 211 ------------------
>  package/ltp-testsuite/Config.in               |   1 +
>  2 files changed, 1 insertion(+), 211 deletions(-)
>  delete mode 100644 package/ltp-testsuite/0001-lapi-Add-sysinfo.h-to-fix-build-with-MUSL-libc.patch
> 
> diff --git a/package/ltp-testsuite/0001-lapi-Add-sysinfo.h-to-fix-build-with-MUSL-libc.patch b/package/ltp-testsuite/0001-lapi-Add-sysinfo.h-to-fix-build-with-MUSL-libc.patch
> deleted file mode 100644
> index 1553908cf8..0000000000
> --- a/package/ltp-testsuite/0001-lapi-Add-sysinfo.h-to-fix-build-with-MUSL-libc.patch
> +++ /dev/null
> @@ -1,211 +0,0 @@
> -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
> -
> diff --git a/package/ltp-testsuite/Config.in b/package/ltp-testsuite/Config.in
> index 272c2ede37..b42082e2cc 100644
> --- a/package/ltp-testsuite/Config.in
> +++ b/package/ltp-testsuite/Config.in
> @@ -12,6 +12,7 @@ config BR2_PACKAGE_LTP_TESTSUITE
>  	bool "ltp-testsuite"
>  	depends on BR2_USE_MMU # fork()
>  	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
> +	depends on !BR2_TOOLCHAIN_USES_MUSL || BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_11
>  	depends on BR2_PACKAGE_LTP_TESTSUITE_ARCH_SUPPORTS
>  	select BR2_PACKAGE_LIBTIRPC if !BR2_TOOLCHAIN_HAS_NATIVE_RPC
>  	select BR2_PACKAGE_MUSL_FTS if !BR2_TOOLCHAIN_USES_GLIBC
> -- 
> 2.40.0
> 

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

  reply	other threads:[~2023-04-16 20:45 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-04-16 20:17 [Buildroot] [PATCH v3 0/2] Update LTP to 20230127, fixes Petr Vorel
2023-04-16 20:17 ` [Buildroot] [PATCH v3 1/2] package/ltp-testsuite: require 5.11 headers for musl Petr Vorel
2023-04-16 20:45   ` Yann E. MORIN [this message]
2023-04-16 20:17 ` [Buildroot] [PATCH v3 2/2] package/ltp-testsuite: bump version to 20230127 Petr Vorel
2023-04-16 20:45   ` Yann E. MORIN

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230416204503.GI2819@scaer \
    --to=yann.morin.1998@free.fr \
    --cc=anders.roxell@linaro.org \
    --cc=buildroot@buildroot.org \
    --cc=pevik@seznam.cz \
    --cc=thomas.petazzoni@free-electrons.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.