diff mbox series

[1/2] package/ltp-testsuite: bump version to 20230127

Message ID 20230405201403.1410075-1-pevik@seznam.cz
State Changes Requested
Headers show
Series [1/2] package/ltp-testsuite: bump version to 20230127 | expand

Commit Message

Petr Vorel April 5, 2023, 8:14 p.m. UTC
From: Petr Vorel <petr.vorel@gmail.com>

Remove musl related sysinfo.h patch. This Buildroot specific workaround
is not needed any more (kernel got fixed in a85cbe6159ff ("uapi: move
constants from <linux/kernel.h> to <linux/const.h>") in v5.11, some time
took to rebuilt Buildroot toolchains, but even that was more than year
ago).

Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
---
The same as v1.
Was there anything missing in v1 [1]? Or could this please be merged
without runltp-ng being postponed for some time later? I don't have much
time for implementing it now and V1 was waiting for 2 months.

Kind regards,
Petr

[1] https://lore.kernel.org/buildroot/20230127223256.132401-1-pevik@seznam.cz/

 ...ysinfo.h-to-fix-build-with-MUSL-libc.patch | 211 ------------------
 package/ltp-testsuite/ltp-testsuite.hash      |   5 +-
 package/ltp-testsuite/ltp-testsuite.mk        |   2 +-
 3 files changed, 3 insertions(+), 215 deletions(-)
 delete mode 100644 package/ltp-testsuite/0001-lapi-Add-sysinfo.h-to-fix-build-with-MUSL-libc.patch

Comments

Petr Vorel April 5, 2023, 8:27 p.m. UTC | #1
Hi,

I'm sorry, this patchset was supposed to be v2.

Kind regards,
Petr
Yann E. MORIN April 10, 2023, 5:24 p.m. UTC | #2
On 2023-04-05 22:14 +0200, Petr Vorel spake thusly:
> From: Petr Vorel <petr.vorel@gmail.com>
> 
> Remove musl related sysinfo.h patch. This Buildroot specific workaround
> is not needed any more (kernel got fixed in a85cbe6159ff ("uapi: move
> constants from <linux/kernel.h> to <linux/const.h>") in v5.11, some time

So what about people building with a toolchain that uses kernel headers
older than 5.11 or, as I understand it, any of the stable versions the
fix was back-ported to?

Regards,
Yann E. MORIN.

> took to rebuilt Buildroot toolchains, but even that was more than year
> ago).
> 
> Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
> ---
> The same as v1.
> Was there anything missing in v1 [1]? Or could this please be merged
> without runltp-ng being postponed for some time later? I don't have much
> time for implementing it now and V1 was waiting for 2 months.
> 
> Kind regards,
> Petr
> 
> [1] https://lore.kernel.org/buildroot/20230127223256.132401-1-pevik@seznam.cz/
> 
>  ...ysinfo.h-to-fix-build-with-MUSL-libc.patch | 211 ------------------
>  package/ltp-testsuite/ltp-testsuite.hash      |   5 +-
>  package/ltp-testsuite/ltp-testsuite.mk        |   2 +-
>  3 files changed, 3 insertions(+), 215 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/ltp-testsuite.hash b/package/ltp-testsuite/ltp-testsuite.hash
> index 8b411a8ffe..59ba5d0045 100644
> --- a/package/ltp-testsuite/ltp-testsuite.hash
> +++ b/package/ltp-testsuite/ltp-testsuite.hash
> @@ -1,5 +1,4 @@
> -# From: https://github.com/linux-test-project/ltp/releases/download/20220527/ltp-full-20220527.tar.bz2.sha1
> -sha1  c8d658cd3ab1f5a5c7b5bf56398d3a9525012c6b  ltp-full-20220930.tar.xz
> +# From: https://github.com/linux-test-project/ltp/releases/download/20230127/ltp-full-20230127.tar.xz.sha256
> +sha256  254412a52c7238f35a247337da186f485e76fb64c6549ed849b3442fc7a417ef  ltp-full-20230127.tar.xz
>  # Locally computed
>  sha256  8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643  COPYING
> -sha256  533ab63915b916640667ecce17ee4998006d80d394d4b1f1d105a7aa1df50d38  ltp-full-20220930.tar.xz
> diff --git a/package/ltp-testsuite/ltp-testsuite.mk b/package/ltp-testsuite/ltp-testsuite.mk
> index 34412d562f..78271b0730 100644
> --- a/package/ltp-testsuite/ltp-testsuite.mk
> +++ b/package/ltp-testsuite/ltp-testsuite.mk
> @@ -4,7 +4,7 @@
>  #
>  ################################################################################
>  
> -LTP_TESTSUITE_VERSION = 20220930
> +LTP_TESTSUITE_VERSION = 20230127
>  LTP_TESTSUITE_SOURCE = ltp-full-$(LTP_TESTSUITE_VERSION).tar.xz
>  LTP_TESTSUITE_SITE = https://github.com/linux-test-project/ltp/releases/download/$(LTP_TESTSUITE_VERSION)
>  
> -- 
> 2.40.0
> 
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
Petr Vorel April 12, 2023, 6:12 p.m. UTC | #3
Hi Yann,

On Mon, 10 Apr 2023 at 19:24, Yann E. MORIN <yann.morin.1998@free.fr> wrote:
>
> On 2023-04-05 22:14 +0200, Petr Vorel spake thusly:
> > From: Petr Vorel <petr.vorel@gmail.com>
> >
> > Remove musl related sysinfo.h patch. This Buildroot specific workaround
> > is not needed any more (kernel got fixed in a85cbe6159ff ("uapi: move
> > constants from <linux/kernel.h> to <linux/const.h>") in v5.11, some time
>
> So what about people building with a toolchain that uses kernel headers
> older than 5.11 or, as I understand it, any of the stable versions the
> fix was back-ported to?

Yes, it was backported to all stable branches, including v4.14.214 (as
b732e14e6218bd925e15c539165f037081ae5176), therefore it should be
really safe to remove this workaround. And if not, it'll be trivial to
rebase the patch to newer LTP (reintroduce the patch).

Also the second patch (backport) fixes long standing issue on some
toolchains, thus it'd be good to merge the patchset.

Kind regards,
Petr

>
> Regards,
> Yann E. MORIN.
>
> > took to rebuilt Buildroot toolchains, but even that was more than year
> > ago).
> >
> > Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
> > ---
> > The same as v1.
> > Was there anything missing in v1 [1]? Or could this please be merged
> > without runltp-ng being postponed for some time later? I don't have much
> > time for implementing it now and V1 was waiting for 2 months.
> >
> > Kind regards,
> > Petr
> >
> > [1] https://lore.kernel.org/buildroot/20230127223256.132401-1-pevik@seznam.cz/
> >
> >  ...ysinfo.h-to-fix-build-with-MUSL-libc.patch | 211 ------------------
> >  package/ltp-testsuite/ltp-testsuite.hash      |   5 +-
> >  package/ltp-testsuite/ltp-testsuite.mk        |   2 +-
> >  3 files changed, 3 insertions(+), 215 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/ltp-testsuite.hash b/package/ltp-testsuite/ltp-testsuite.hash
> > index 8b411a8ffe..59ba5d0045 100644
> > --- a/package/ltp-testsuite/ltp-testsuite.hash
> > +++ b/package/ltp-testsuite/ltp-testsuite.hash
> > @@ -1,5 +1,4 @@
> > -# From: https://github.com/linux-test-project/ltp/releases/download/20220527/ltp-full-20220527.tar.bz2.sha1
> > -sha1  c8d658cd3ab1f5a5c7b5bf56398d3a9525012c6b  ltp-full-20220930.tar.xz
> > +# From: https://github.com/linux-test-project/ltp/releases/download/20230127/ltp-full-20230127.tar.xz.sha256
> > +sha256  254412a52c7238f35a247337da186f485e76fb64c6549ed849b3442fc7a417ef  ltp-full-20230127.tar.xz
> >  # Locally computed
> >  sha256  8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643  COPYING
> > -sha256  533ab63915b916640667ecce17ee4998006d80d394d4b1f1d105a7aa1df50d38  ltp-full-20220930.tar.xz
> > diff --git a/package/ltp-testsuite/ltp-testsuite.mk b/package/ltp-testsuite/ltp-testsuite.mk
> > index 34412d562f..78271b0730 100644
> > --- a/package/ltp-testsuite/ltp-testsuite.mk
> > +++ b/package/ltp-testsuite/ltp-testsuite.mk
> > @@ -4,7 +4,7 @@
> >  #
> >  ################################################################################
> >
> > -LTP_TESTSUITE_VERSION = 20220930
> > +LTP_TESTSUITE_VERSION = 20230127
> >  LTP_TESTSUITE_SOURCE = ltp-full-$(LTP_TESTSUITE_VERSION).tar.xz
> >  LTP_TESTSUITE_SITE = https://github.com/linux-test-project/ltp/releases/download/$(LTP_TESTSUITE_VERSION)
> >
> > --
> > 2.40.0
> >
> > _______________________________________________
> > buildroot mailing list
> > buildroot@buildroot.org
> > https://lists.buildroot.org/mailman/listinfo/buildroot
>
> --
> .-----------------.--------------------.------------------.--------------------.
> |  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
Yann E. MORIN April 14, 2023, 7:01 p.m. UTC | #4
Petr, All,

On 2023-04-12 20:12 +0200, Petr Vorel spake thusly:
> On Mon, 10 Apr 2023 at 19:24, Yann E. MORIN <yann.morin.1998@free.fr> wrote:
> >
> > On 2023-04-05 22:14 +0200, Petr Vorel spake thusly:
> > > From: Petr Vorel <petr.vorel@gmail.com>
> > >
> > > Remove musl related sysinfo.h patch. This Buildroot specific workaround
> > > is not needed any more (kernel got fixed in a85cbe6159ff ("uapi: move
> > > constants from <linux/kernel.h> to <linux/const.h>") in v5.11, some time
> >
> > So what about people building with a toolchain that uses kernel headers
> > older than 5.11 or, as I understand it, any of the stable versions the
> > fix was back-ported to?
> 
> Yes, it was backported to all stable branches, including v4.14.214 (as
> b732e14e6218bd925e15c539165f037081ae5176), therefore it should be
> really safe to remove this workaround.

The problem is for people who do use toolchains with *older* kernel
headers. Those toolchains do exist and they do not have the fixed
headers. So the build will fail for those people.

> And if not, it'll be trivial to
> rebase the patch to newer LTP (reintroduce the patch).

Unless the upstream ltp has provision for supporting both kind of
headers, with or without the fix, then yes, I think this should be
rebased and kept. And re-submit upstream to explain it will support
older, existing toolchains.

Regards,
Yann E. MORIN.

> Also the second patch (backport) fixes long standing issue on some
> toolchains, thus it'd be good to merge the patchset.
> 
> Kind regards,
> Petr
> 
> >
> > Regards,
> > Yann E. MORIN.
> >
> > > took to rebuilt Buildroot toolchains, but even that was more than year
> > > ago).
> > >
> > > Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
> > > ---
> > > The same as v1.
> > > Was there anything missing in v1 [1]? Or could this please be merged
> > > without runltp-ng being postponed for some time later? I don't have much
> > > time for implementing it now and V1 was waiting for 2 months.
> > >
> > > Kind regards,
> > > Petr
> > >
> > > [1] https://lore.kernel.org/buildroot/20230127223256.132401-1-pevik@seznam.cz/
> > >
> > >  ...ysinfo.h-to-fix-build-with-MUSL-libc.patch | 211 ------------------
> > >  package/ltp-testsuite/ltp-testsuite.hash      |   5 +-
> > >  package/ltp-testsuite/ltp-testsuite.mk        |   2 +-
> > >  3 files changed, 3 insertions(+), 215 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/ltp-testsuite.hash b/package/ltp-testsuite/ltp-testsuite.hash
> > > index 8b411a8ffe..59ba5d0045 100644
> > > --- a/package/ltp-testsuite/ltp-testsuite.hash
> > > +++ b/package/ltp-testsuite/ltp-testsuite.hash
> > > @@ -1,5 +1,4 @@
> > > -# From: https://github.com/linux-test-project/ltp/releases/download/20220527/ltp-full-20220527.tar.bz2.sha1
> > > -sha1  c8d658cd3ab1f5a5c7b5bf56398d3a9525012c6b  ltp-full-20220930.tar.xz
> > > +# From: https://github.com/linux-test-project/ltp/releases/download/20230127/ltp-full-20230127.tar.xz.sha256
> > > +sha256  254412a52c7238f35a247337da186f485e76fb64c6549ed849b3442fc7a417ef  ltp-full-20230127.tar.xz
> > >  # Locally computed
> > >  sha256  8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643  COPYING
> > > -sha256  533ab63915b916640667ecce17ee4998006d80d394d4b1f1d105a7aa1df50d38  ltp-full-20220930.tar.xz
> > > diff --git a/package/ltp-testsuite/ltp-testsuite.mk b/package/ltp-testsuite/ltp-testsuite.mk
> > > index 34412d562f..78271b0730 100644
> > > --- a/package/ltp-testsuite/ltp-testsuite.mk
> > > +++ b/package/ltp-testsuite/ltp-testsuite.mk
> > > @@ -4,7 +4,7 @@
> > >  #
> > >  ################################################################################
> > >
> > > -LTP_TESTSUITE_VERSION = 20220930
> > > +LTP_TESTSUITE_VERSION = 20230127
> > >  LTP_TESTSUITE_SOURCE = ltp-full-$(LTP_TESTSUITE_VERSION).tar.xz
> > >  LTP_TESTSUITE_SITE = https://github.com/linux-test-project/ltp/releases/download/$(LTP_TESTSUITE_VERSION)
> > >
> > > --
> > > 2.40.0
> > >
> > > _______________________________________________
> > > buildroot mailing list
> > > buildroot@buildroot.org
> > > https://lists.buildroot.org/mailman/listinfo/buildroot
> >
> > --
> > .-----------------.--------------------.------------------.--------------------.
> > |  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
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
Petr Vorel April 14, 2023, 8:54 p.m. UTC | #5
On Fri, 14 Apr 2023 at 21:01, Yann E. MORIN <yann.morin.1998@free.fr> wrote:
>
> Petr, All,
>
> On 2023-04-12 20:12 +0200, Petr Vorel spake thusly:
> > On Mon, 10 Apr 2023 at 19:24, Yann E. MORIN <yann.morin.1998@free.fr> wrote:
> > >
> > > On 2023-04-05 22:14 +0200, Petr Vorel spake thusly:
> > > > From: Petr Vorel <petr.vorel@gmail.com>
> > > >
> > > > Remove musl related sysinfo.h patch. This Buildroot specific workaround
> > > > is not needed any more (kernel got fixed in a85cbe6159ff ("uapi: move
> > > > constants from <linux/kernel.h> to <linux/const.h>") in v5.11, some time
> > >
> > > So what about people building with a toolchain that uses kernel headers
> > > older than 5.11 or, as I understand it, any of the stable versions the
> > > fix was back-ported to?
> >
> > Yes, it was backported to all stable branches, including v4.14.214 (as
> > b732e14e6218bd925e15c539165f037081ae5176), therefore it should be
> > really safe to remove this workaround.
>
> The problem is for people who do use toolchains with *older* kernel
> headers. Those toolchains do exist and they do not have the fixed
> headers. So the build will fail for those people.
>
> > And if not, it'll be trivial to
> > rebase the patch to newer LTP (reintroduce the patch).
>
> Unless the upstream ltp has provision for supporting both kind of
> headers, with or without the fix, then yes, I think this should be
> rebased and kept. And re-submit upstream to explain it will support
> older, existing toolchains.

I'll verify again support/config-fragments/autobuild/toolchain-configs.csv, if
there are tests which will fail.  Or are these toolchains elsewhere? I'm asking
to give some proof to upstream that there are toolchains with older kernel
headers. Because upstream expects that old distros are being tested with old
version and if people want new software they are able to update their
toolchain. They will see a real example than just claiming "it's needed".
Also have a way to check in the future that workaround can be removed.

Kind regards,
Petr

> Regards,
> Yann E. MORIN.
>
> > Also the second patch (backport) fixes long standing issue on some
> > toolchains, thus it'd be good to merge the patchset.
> >
> > Kind regards,
> > Petr
> >
> > >
> > > Regards,
> > > Yann E. MORIN.
> > >
> > > > took to rebuilt Buildroot toolchains, but even that was more than year
> > > > ago).
> > > >
> > > > Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
> > > > ---
> > > > The same as v1.
> > > > Was there anything missing in v1 [1]? Or could this please be merged
> > > > without runltp-ng being postponed for some time later? I don't have much
> > > > time for implementing it now and V1 was waiting for 2 months.
> > > >
> > > > Kind regards,
> > > > Petr
> > > >
> > > > [1] https://lore.kernel.org/buildroot/20230127223256.132401-1-pevik@seznam.cz/
> > > >
> > > >  ...ysinfo.h-to-fix-build-with-MUSL-libc.patch | 211 ------------------
> > > >  package/ltp-testsuite/ltp-testsuite.hash      |   5 +-
> > > >  package/ltp-testsuite/ltp-testsuite.mk        |   2 +-
> > > >  3 files changed, 3 insertions(+), 215 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/ltp-testsuite.hash b/package/ltp-testsuite/ltp-testsuite.hash
> > > > index 8b411a8ffe..59ba5d0045 100644
> > > > --- a/package/ltp-testsuite/ltp-testsuite.hash
> > > > +++ b/package/ltp-testsuite/ltp-testsuite.hash
> > > > @@ -1,5 +1,4 @@
> > > > -# From: https://github.com/linux-test-project/ltp/releases/download/20220527/ltp-full-20220527.tar.bz2.sha1
> > > > -sha1  c8d658cd3ab1f5a5c7b5bf56398d3a9525012c6b  ltp-full-20220930.tar.xz
> > > > +# From: https://github.com/linux-test-project/ltp/releases/download/20230127/ltp-full-20230127.tar.xz.sha256
> > > > +sha256  254412a52c7238f35a247337da186f485e76fb64c6549ed849b3442fc7a417ef  ltp-full-20230127.tar.xz
> > > >  # Locally computed
> > > >  sha256  8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643  COPYING
> > > > -sha256  533ab63915b916640667ecce17ee4998006d80d394d4b1f1d105a7aa1df50d38  ltp-full-20220930.tar.xz
> > > > diff --git a/package/ltp-testsuite/ltp-testsuite.mk b/package/ltp-testsuite/ltp-testsuite.mk
> > > > index 34412d562f..78271b0730 100644
> > > > --- a/package/ltp-testsuite/ltp-testsuite.mk
> > > > +++ b/package/ltp-testsuite/ltp-testsuite.mk
> > > > @@ -4,7 +4,7 @@
> > > >  #
> > > >  ################################################################################
> > > >
> > > > -LTP_TESTSUITE_VERSION = 20220930
> > > > +LTP_TESTSUITE_VERSION = 20230127
> > > >  LTP_TESTSUITE_SOURCE = ltp-full-$(LTP_TESTSUITE_VERSION).tar.xz
> > > >  LTP_TESTSUITE_SITE = https://github.com/linux-test-project/ltp/releases/download/$(LTP_TESTSUITE_VERSION)
> > > >
> > > > --
> > > > 2.40.0
> > > >
> > > > _______________________________________________
> > > > buildroot mailing list
> > > > buildroot@buildroot.org
> > > > https://lists.buildroot.org/mailman/listinfo/buildroot
> > >
> > > --
> > > .-----------------.--------------------.------------------.--------------------.
> > > |  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
> > _______________________________________________
> > buildroot mailing list
> > buildroot@buildroot.org
> > https://lists.buildroot.org/mailman/listinfo/buildroot
>
> --
> .-----------------.--------------------.------------------.--------------------.
> |  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.  |
> '------------------------------^-------^------------------^--------------------'
Yann E. MORIN April 15, 2023, 8:05 a.m. UTC | #6
Petr, All,

On 2023-04-14 22:54 +0200, Petr Vorel spake thusly:
> On Fri, 14 Apr 2023 at 21:01, Yann E. MORIN <yann.morin.1998@free.fr> wrote:
[--SNIP--]
> > Unless the upstream ltp has provision for supporting both kind of
> > headers, with or without the fix, then yes, I think this should be
> > rebased and kept. And re-submit upstream to explain it will support
> > older, existing toolchains.
> 
> I'll verify again support/config-fragments/autobuild/toolchain-configs.csv, if
> there are tests which will fail.  Or are these toolchains elsewhere? I'm asking
> to give some proof to upstream that there are toolchains with older kernel
> headers. Because upstream expects that old distros are being tested with old
> version and if people want new software they are able to update their
> toolchain. They will see a real example than just claiming "it's needed".
> Also have a way to check in the future that workaround can be removed.

I looked at toolchain/toolchain-external/toolchain-external-arm-aarch64/
which is the first external toolchain in the list of toolchain Buildroot
knows of.

That one is using kernel headers 4.20.13:

    https://developer.arm.com/downloads/-/gnu-a
    https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-a/10.3-2021.07/srcrel/gcc-arm-src-snapshot-10.3-2021.07-manifest.txt

    Excerpt:
        [linux]
        type=git
        url=git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
        version=v4.20.13

It's the last toolchain from ARM that is not impacted by:
    https://bugs.linaro.org/show_bug.cgi?id=5825#c34

Even the release from 2020-12 still has kernel headers 4.20.13:
    https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads
    https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu/12.2.rel1/srcrel/arm-gnu-toolchain-src-snapshot-12.2.rel1-manifest.txt

    Excerpt:
        [linux]
        type=git
        url=git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
        version=v4.20.13

So, whether impacted or not by the abovementioned bug, people using
official tolchains from ARM use kernel headers 4.20.13, which I
understand do not have that fix.

And that's only by looking at one of the few toolchains Buildroot knows
of. There are countless such toolchains that have been built over the
years, and that they can't update (e.g. because they are using the
official toolchain provided by their chipco vendor, or because the
kernel they are using for their board is a fork by some vendor and does
not have that fix, and so on...).

Regards,
Yann E. MORIN.
Yann E. MORIN April 15, 2023, 8:40 a.m. UTC | #7
Petr, All,

On 2023-04-15 10:05 +0200, Yann E. MORIN spake thusly:
> On 2023-04-14 22:54 +0200, Petr Vorel spake thusly:
> > On Fri, 14 Apr 2023 at 21:01, Yann E. MORIN <yann.morin.1998@free.fr> wrote:
> [--SNIP--]
> > > Unless the upstream ltp has provision for supporting both kind of
> > > headers, with or without the fix, then yes, I think this should be
> > > rebased and kept. And re-submit upstream to explain it will support
> > > older, existing toolchains.
> > I'll verify again support/config-fragments/autobuild/toolchain-configs.csv, if
> > there are tests which will fail.  Or are these toolchains elsewhere? I'm asking
> > to give some proof to upstream that there are toolchains with older kernel
> > headers. Because upstream expects that old distros are being tested with old
> > version and if people want new software they are able to update their
> > toolchain. They will see a real example than just claiming "it's needed".
> > Also have a way to check in the future that workaround can be removed.
> 
> I looked at toolchain/toolchain-external/toolchain-external-arm-aarch64/
> which is the first external toolchain in the list of toolchain Buildroot
> knows of.

So, that's a glibc toolchain, right, so it is not impacted by the bug.

Still, the reasonging stands: in the wilde, there are toolchains that
have been built before that fix existed, and people are not updating
their toolchains for various reasons, the most prominent one being "it
is suplied by the chipco, so we use it".

It is not just about the toolchains we know of in Buildroot. by the way.

Now, we could also very well decide that ltp-testsuite depends on kernel
headers >= 5.11 for musl toolchains, which would probably be the actual
solution, if upstream really does not want to fix that situation.

Regards,
Yann E. MORIN.
Petr Vorel April 15, 2023, 11:21 p.m. UTC | #8
Hi Yann,

On Sat, 15 Apr 2023 at 10:41, Yann E. MORIN <yann.morin.1998@free.fr> wrote:
>
> Petr, All,
>
> On 2023-04-15 10:05 +0200, Yann E. MORIN spake thusly:
> > On 2023-04-14 22:54 +0200, Petr Vorel spake thusly:
> > > On Fri, 14 Apr 2023 at 21:01, Yann E. MORIN <yann.morin.1998@free.fr> wrote:
> > [--SNIP--]
> > > > Unless the upstream ltp has provision for supporting both kind of
> > > > headers, with or without the fix, then yes, I think this should be
> > > > rebased and kept. And re-submit upstream to explain it will support
> > > > older, existing toolchains.
> > > I'll verify again support/config-fragments/autobuild/toolchain-configs.csv, if
> > > there are tests which will fail.  Or are these toolchains elsewhere? I'm asking
> > > to give some proof to upstream that there are toolchains with older kernel
> > > headers. Because upstream expects that old distros are being tested with old
> > > version and if people want new software they are able to update their
> > > toolchain. They will see a real example than just claiming "it's needed".
> > > Also have a way to check in the future that workaround can be removed.
> >
> > I looked at toolchain/toolchain-external/toolchain-external-arm-aarch64/
> > which is the first external toolchain in the list of toolchain Buildroot
> > knows of.
>
> So, that's a glibc toolchain, right, so it is not impacted by the bug.
>
> Still, the reasonging stands: in the wilde, there are toolchains that
> have been built before that fix existed, and people are not updating
> their toolchains for various reasons, the most prominent one being "it
> is suplied by the chipco, so we use it".
>
> It is not just about the toolchains we know of in Buildroot. by the way.
>
> Now, we could also very well decide that ltp-testsuite depends on kernel
> headers >= 5.11 for musl toolchains, which would probably be the actual
> solution, if upstream really does not want to fix that situation.

Thanks for a suggestion, I'd really try to add the dependency for musl:
depends on !BR2_TOOLCHAIN_USES_MUSL || BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_11
I'll put the change in a separate commit, with removal of the patch
and explaining
the reason (leaving the actual upgrade in a separate commit), so that
it's easier
for people to find the reason. If people complain, we can ask upstream
to reconsider
or reintroduce the patch. But I'd like to avoid extra work in case
nobody bothers.

Kind regards,
Petr
>
> Regards,
> Yann E. MORIN.
>
> --
> .-----------------.--------------------.------------------.--------------------.
> |  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.  |
> '------------------------------^-------^------------------^--------------------'
Yann E. MORIN April 16, 2023, 7:45 a.m. UTC | #9
Petr, All,

On 2023-04-16 01:21 +0200, Petr Vorel spake thusly:
> On Sat, 15 Apr 2023 at 10:41, Yann E. MORIN <yann.morin.1998@free.fr> wrote:
> > On 2023-04-15 10:05 +0200, Yann E. MORIN spake thusly:
[--SNIP--]
> > Now, we could also very well decide that ltp-testsuite depends on kernel
> > headers >= 5.11 for musl toolchains, which would probably be the actual
> > solution, if upstream really does not want to fix that situation.
> Thanks for a suggestion, I'd really try to add the dependency for musl:
> depends on !BR2_TOOLCHAIN_USES_MUSL || BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_11
> I'll put the change in a separate commit, with removal of the patch
> and explaining
> the reason (leaving the actual upgrade in a separate commit), so that
> it's easier
> for people to find the reason. If people complain, we can ask upstream
> to reconsider
> or reintroduce the patch. But I'd like to avoid extra work in case
> nobody bothers.

That sounds like a good plan, indeed.

Also, as I understand it, patch 2, which fixes mount_attr detection,
should come first, because it already applies to the current version,
no? If not, then it should be squashed into the version bump.

So, probably, the series should go like:

    package/ltp-testsuite: backport mount_attr fix on older glibc
    package/ltp-testsuite: disable for musl with kernel headers < 5.11
    package/ltp-testsuite: bump to 20230127

Thanks!

Regards,
Yann E. MORIN.
Petr Vorel April 16, 2023, 3:08 p.m. UTC | #10
On Sun, 16 Apr 2023 at 09:45, Yann E. MORIN <yann.morin.1998@free.fr> wrote:
>
> Petr, All,
>
> On 2023-04-16 01:21 +0200, Petr Vorel spake thusly:
> > On Sat, 15 Apr 2023 at 10:41, Yann E. MORIN <yann.morin.1998@free.fr> wrote:
> > > On 2023-04-15 10:05 +0200, Yann E. MORIN spake thusly:
> [--SNIP--]
> > > Now, we could also very well decide that ltp-testsuite depends on kernel
> > > headers >= 5.11 for musl toolchains, which would probably be the actual
> > > solution, if upstream really does not want to fix that situation.
> > Thanks for a suggestion, I'd really try to add the dependency for musl:
> > depends on !BR2_TOOLCHAIN_USES_MUSL || BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_11
> > I'll put the change in a separate commit, with removal of the patch
> > and explaining
> > the reason (leaving the actual upgrade in a separate commit), so that
> > it's easier
> > for people to find the reason. If people complain, we can ask upstream
> > to reconsider
> > or reintroduce the patch. But I'd like to avoid extra work in case
> > nobody bothers.
>
> That sounds like a good plan, indeed.
>
> Also, as I understand it, patch 2, which fixes mount_attr detection,
> should come first, because it already applies to the current version,
> no? If not, then it should be squashed into the version bump.

It's from upcoming LTP (not yet released) => I'll squashed it into version bump.
Thanks!

Petr

>
> So, probably, the series should go like:
>
>     package/ltp-testsuite: backport mount_attr fix on older glibc
>     package/ltp-testsuite: disable for musl with kernel headers < 5.11
>     package/ltp-testsuite: bump to 20230127
>
> Thanks!
>
> Regards,
> Yann E. MORIN.
>
> --
> .-----------------.--------------------.------------------.--------------------.
> |  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.  |
> '------------------------------^-------^------------------^--------------------'
diff mbox series

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/ltp-testsuite.hash b/package/ltp-testsuite/ltp-testsuite.hash
index 8b411a8ffe..59ba5d0045 100644
--- a/package/ltp-testsuite/ltp-testsuite.hash
+++ b/package/ltp-testsuite/ltp-testsuite.hash
@@ -1,5 +1,4 @@ 
-# From: https://github.com/linux-test-project/ltp/releases/download/20220527/ltp-full-20220527.tar.bz2.sha1
-sha1  c8d658cd3ab1f5a5c7b5bf56398d3a9525012c6b  ltp-full-20220930.tar.xz
+# From: https://github.com/linux-test-project/ltp/releases/download/20230127/ltp-full-20230127.tar.xz.sha256
+sha256  254412a52c7238f35a247337da186f485e76fb64c6549ed849b3442fc7a417ef  ltp-full-20230127.tar.xz
 # Locally computed
 sha256  8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643  COPYING
-sha256  533ab63915b916640667ecce17ee4998006d80d394d4b1f1d105a7aa1df50d38  ltp-full-20220930.tar.xz
diff --git a/package/ltp-testsuite/ltp-testsuite.mk b/package/ltp-testsuite/ltp-testsuite.mk
index 34412d562f..78271b0730 100644
--- a/package/ltp-testsuite/ltp-testsuite.mk
+++ b/package/ltp-testsuite/ltp-testsuite.mk
@@ -4,7 +4,7 @@ 
 #
 ################################################################################
 
-LTP_TESTSUITE_VERSION = 20220930
+LTP_TESTSUITE_VERSION = 20230127
 LTP_TESTSUITE_SOURCE = ltp-full-$(LTP_TESTSUITE_VERSION).tar.xz
 LTP_TESTSUITE_SITE = https://github.com/linux-test-project/ltp/releases/download/$(LTP_TESTSUITE_VERSION)