Buildroot Archive on 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox