Bump buildroot to 2020.11-rc1 (#985)

* Update buildroot-patches for 2020.11-rc1 buildroot

* Update buildroot to 2020.11-rc1

Signed-off-by: Stefan Agner <stefan@agner.ch>

* Don't rely on sfdisk --list-free output

The --list-free (-F) argument does not allow machine readable mode. And
it seems that the output format changes over time (different spacing,
using size postfixes instead of raw blocks).

Use sfdisk json output and calculate free partition space ourselfs. This
works for 2.35 and 2.36 and is more robust since we rely on output which
is meant for scripts to parse.

* Migrate defconfigs for Buildroot 2020.11-rc1

In particular, rename BR2_TARGET_UBOOT_BOOT_SCRIPT(_SOURCE) to
BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT(_SOURCE).

* Rebase/remove systemd patches for systemd 246

* Drop apparmor/libapparmor from buildroot-external

* hassos-persists: use /run as directory for lockfiles

The U-Boot tools use /var/lock by default which is not created any more
by systemd by default (it is under tmpfiles legacy.conf, which we no
longer install).

* Disable systemd-update-done.service

The service is not suited for pure read-only systems. In particular the
service needs to be able to write a file in /etc and /var. Remove the
service. Note: This is a static service and cannot be removed using
systemd-preset.

* Disable apparmor.service for now

The service loads all default profiles. Some might actually cause
problems. E.g. the profile for ping seems not to match our setup for
/etc/resolv.conf:
[85503.634653] audit: type=1400 audit(1605286002.684:236): apparmor="DENIED" operation="open" profile="ping" name="/run/resolv.conf" pid=27585 comm="ping" requested_mask="r" denied_mask="r" fsuid=0 ouid=0
This commit is contained in:
Stefan Agner
2020-11-13 18:25:44 +01:00
committed by GitHub
parent 25a0dd3082
commit a0871be6c0
4024 changed files with 68095 additions and 47900 deletions

View File

@@ -0,0 +1,225 @@
From 48edd768850825a4d01e5e5e737122333fc55cdf Mon Sep 17 00:00:00 2001
From: Petr Vorel <petr.vorel@gmail.com>
Date: Fri, 2 Oct 2020 21:29:58 +0200
Subject: [PATCH] cacheflush01: Rewrite into new API
This syscall is currently (v5.9) supported on these architectures:
arc, csky, mips, m68k, nds32, sh
constants are missing for m68k, not sure if the testcase is valid for it.
Untested.
Test for __LTP__NR_INVALID_SYSCALL saves adding autotools check for
<asm/cachectl.h>.
Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
---
[ upstream status: https://patchwork.ozlabs.org/project/ltp/patch/20201002202416.28972-1-petr.vorel@gmail.com/ ]
.../kernel/syscalls/cacheflush/cacheflush01.c | 173 ++++--------------
1 file changed, 40 insertions(+), 133 deletions(-)
diff --git a/testcases/kernel/syscalls/cacheflush/cacheflush01.c b/testcases/kernel/syscalls/cacheflush/cacheflush01.c
index 29cf2014a..6ad8b953a 100644
--- a/testcases/kernel/syscalls/cacheflush/cacheflush01.c
+++ b/testcases/kernel/syscalls/cacheflush/cacheflush01.c
@@ -1,157 +1,64 @@
-/******************************************************************************/
-/* Copyright (c) Maxin John <maxin.john@gmail.com>, 2009 */
-/* LKML Reference: http://lkml.org/lkml/2009/4/9/203 */
-/* This program is free software; you can redistribute it and/or modify */
-/* it under the terms of the GNU General Public License as published by */
-/* the Free Software Foundation; either version 2 of the License, or */
-/* (at your option) any later version. */
-/* */
-/* This program is distributed in the hope that it will be useful, */
-/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
-/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See */
-/* the GNU General Public License for more details. */
-/* */
-/* You should have received a copy of the GNU General Public License */
-/* along with this program; if not, write to the Free Software */
-/* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */
-/* */
-/******************************************************************************/
-/******************************************************************************/
-/* */
-/* File: cacheflush01.c */
-/* */
-/* Description: The cacheflush_check() syscall */
-/* Tests EINVAL error of cacheflush system call. */
-/* Its expected behaviour is cacheflush() should return -EINVAL */
-/* when cache parameter is not one of ICACHE, DCACHE, or BCACHE. */
-/* */
-/* Usage: <for command-line> */
-/* cacheflush01 [-c n] [-e][-i n] [-I x] [-p x] [-t] */
-/* where, -c n : Run n copies concurrently. */
-/* -e : Turn on errno logging. */
-/* -i n : Execute test n times. */
-/* -I x : Execute test for x seconds. */
-/* -P x : Pause for x seconds between iterations. */
-/* -t : Turn on syscall timing. */
-/* */
-/* Total Tests: 1 */
-/* */
-/* Test Name: cacheflush01 */
-/******************************************************************************/
+// SPDX-License-Identifier: GPL-2.0-or-later
-#include <unistd.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-
-#include "test.h"
+#include "tst_test.h"
#include "lapi/syscalls.h"
#if __NR_cacheflush != __LTP__NR_INVALID_SYSCALL
+
#include <asm/cachectl.h>
-#else
+
+/*
+ * m68k does not have these constants
+ */
+
#ifndef ICACHE
-#define ICACHE (1<<0) /* flush instruction cache */
+# define ICACHE (1<<0)
#endif
+
#ifndef DCACHE
-#define DCACHE (1<<1) /* writeback and flush data cache */
+# define DCACHE (1<<1)
#endif
+
#ifndef BCACHE
-#define BCACHE (ICACHE|DCACHE) /* flush both caches */
-#endif
+# define BCACHE (ICACHE|DCACHE)
#endif
-char *TCID = "cacheflush01";
-int TST_TOTAL = 1;
+#define CACHE_DESC(x) .cache = x, .desc = #x
-/* Extern Global Functions */
-/******************************************************************************/
-/* */
-/* Function: cleanup */
-/* */
-/* Description: Performs all one time clean up for this test on successful */
-/* completion, premature exit or failure. Closes all temporary */
-/* files, removes all temporary directories exits the test with */
-/* appropriate return code by calling tst_exit() function. */
-/* */
-/* Input: None. */
-/* */
-/* Output: None. */
-/* */
-/* Return: On failure - Exits calling tst_exit(). Non '0' return code. */
-/* On success - Exits calling tst_exit(). With '0' return code. */
-/* */
-/******************************************************************************/
-void cleanup(void)
-{
+static struct test_case_t {
+ int cache;
+ const char *desc;
+} test_cases[] = {
+ { CACHE_DESC(ICACHE) },
+ { CACHE_DESC(DCACHE) },
+ { CACHE_DESC(BCACHE) },
+};
- tst_rmdir();
-}
+static char *addr;
-/* Local Functions */
-/******************************************************************************/
-/* */
-/* Function: setup */
-/* */
-/* Description: Performs all one time setup for this test. This function is */
-/* typically used to capture signals, create temporary dirs */
-/* and temporary files that may be used in the course of this */
-/* test. */
-/* */
-/* Input: None. */
-/* */
-/* Output: None. */
-/* */
-/* Return: On failure - Exits by calling cleanup(). */
-/* On success - returns 0. */
-/* */
-/******************************************************************************/
-void setup(void)
+static void setup(void)
{
- /* Capture signals if any */
- /* Create temporary directories */
- TEST_PAUSE;
- tst_tmpdir();
+ addr = SAFE_MALLOC(getpagesize());
}
-int main(int ac, char **av)
+static void test_cacheflush(unsigned int i)
{
+ struct test_case_t *tc = &test_cases[i];
- char *addr = NULL;
-
- tst_parse_opts(ac, av, NULL, NULL);
-
- setup();
-
- tst_count = 0;
- /* Create some user address range */
- addr = malloc(getpagesize());
- if (addr == NULL) {
- tst_brkm(TFAIL | TTERRNO, cleanup, "malloc failed");
- }
-
- /* Invokes cacheflush() with proper parameters */
- TEST(ltp_syscall(__NR_cacheflush, addr, getpagesize(), ICACHE));
- if (TEST_RETURN == 0) {
- tst_resm(TPASS, "passed with no errno");
- } else {
- tst_resm(TFAIL, "failed with unexpected errno");
- }
-
- TEST(ltp_syscall(__NR_cacheflush, addr, getpagesize(), DCACHE));
- if (TEST_RETURN == 0) {
- tst_resm(TPASS, "passed with no errno");
+ TEST(tst_syscall(__NR_cacheflush, addr, getpagesize(), tc->cache));
+ if (TST_RET == 0) {
+ tst_res(TPASS, "%s passed", tc->desc);
} else {
- tst_resm(TFAIL, "failed with unexpected errno");
+ tst_res(TFAIL | TTERRNO, "%s failed", tc->desc);
}
+}
- TEST(ltp_syscall(__NR_cacheflush, addr, getpagesize(), BCACHE));
- if (TEST_RETURN == 0) {
- tst_resm(TPASS, "passed with no errno");
- } else {
- tst_resm(TFAIL, "failed with unexpected errno");
- }
+static struct tst_test test = {
+ .setup = setup,
+ .test = test_cacheflush,
+ .tcnt = ARRAY_SIZE(test_cases),
+};
- cleanup();
- tst_exit();
-}
+#else
+ TST_TEST_TCONF("system doesn't support cacheflush()");
+#endif
--
2.28.0

View File

@@ -0,0 +1,203 @@
From ac3e262cba81889c0bb04ce87a50a1709f2726e7 Mon Sep 17 00:00:00 2001
From: Petr Vorel <petr.vorel@gmail.com>
Date: Thu, 1 Oct 2020 23:28:39 +0200
Subject: [PATCH] lapi: Add sysinfo.h to fix build with MUSL libc
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The reason is to avoid indirect <linux/sysinfo.h> include when using
some network headers: <linux/netlink.h> or others -> <linux/kernel.h>
-> <linux/sysinfo.h>
This indirect include causes on MUSL redefinition of struct sysinfo when
included both <sys/sysinfo.h> and some of UAPI headers:
In file included from x86_64-buildroot-linux-musl/sysroot/usr/include/linux/kernel.h:5,
from x86_64-buildroot-linux-musl/sysroot/usr/include/linux/netlink.h:5,
from ../include/tst_netlink.h:14,
from tst_crypto.c:13:
x86_64-buildroot-linux-musl/sysroot/usr/include/linux/sysinfo.h:8:8: error: redefinition of struct sysinfo
struct sysinfo {
^~~~~~~
In file included from ../include/tst_safe_macros.h:15,
from ../include/tst_test.h:93,
from tst_crypto.c:11:
x86_64-buildroot-linux-musl/sysroot/usr/include/sys/sysinfo.h:10:8: note: originally defined here
Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
[ upstream status: https://patchwork.ozlabs.org/project/ltp/patch/20201001231256.6930-1-petr.vorel@gmail.com/ ]
---
include/lapi/sysinfo.h | 22 +++++++++++++++++++
include/tst_safe_macros.h | 2 +-
lib/safe_macros.c | 2 +-
lib/tst_memutils.c | 2 +-
testcases/kernel/mem/mtest01/mtest01.c | 2 +-
testcases/kernel/syscalls/madvise/madvise06.c | 2 +-
testcases/kernel/syscalls/sysinfo/sysinfo01.c | 2 +-
testcases/kernel/syscalls/sysinfo/sysinfo02.c | 2 +-
testcases/kernel/syscalls/sysinfo/sysinfo03.c | 2 +-
9 files changed, 30 insertions(+), 8 deletions(-)
create mode 100644 include/lapi/sysinfo.h
diff --git a/include/lapi/sysinfo.h b/include/lapi/sysinfo.h
new file mode 100644
index 000000000..d0e0e93d7
--- /dev/null
+++ b/include/lapi/sysinfo.h
@@ -0,0 +1,22 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (c) 2020 Petr Vorel <petr.vorel@gmail.com>
+ */
+
+#ifndef SYSINFO_H__
+
+/*
+ * Don't use <sys/sysinfo.h> as it breaks build MUSL toolchain.
+ * Use <linux/sysinfo.h> instead.
+ *
+ * Some kernel UAPI headers do indirect <linux/sysinfo.h> include:
+ * <linux/netlink.h> or others -> <linux/kernel.h> -> <linux/sysinfo.h>
+ *
+ * This indirect include causes on MUSL redefinition of struct sysinfo when
+ * included both <sys/sysinfo.h> and some of UAPI headers:
+ */
+#include <linux/sysinfo.h>
+
+#define SYSINFO_H__
+
+#endif /* SYSINFO_H__ */
diff --git a/include/tst_safe_macros.h b/include/tst_safe_macros.h
index 053c3bcf9..61ea2076d 100644
--- a/include/tst_safe_macros.h
+++ b/include/tst_safe_macros.h
@@ -12,7 +12,7 @@
#include <sys/resource.h>
#include <sys/stat.h>
#include <sys/vfs.h>
-#include <sys/sysinfo.h>
+#include <linux/sysinfo.h>
#include <fcntl.h>
#include <libgen.h>
#include <signal.h>
diff --git a/lib/safe_macros.c b/lib/safe_macros.c
index 4f48d7529..d8ee03dae 100644
--- a/lib/safe_macros.c
+++ b/lib/safe_macros.c
@@ -11,7 +11,6 @@
#include <sys/wait.h>
#include <sys/mount.h>
#include <sys/xattr.h>
-#include <sys/sysinfo.h>
#include <errno.h>
#include <fcntl.h>
#include <libgen.h>
@@ -23,6 +22,7 @@
#include <malloc.h>
#include "test.h"
#include "safe_macros.h"
+#include "lapi/sysinfo.h"
char *safe_basename(const char *file, const int lineno,
void (*cleanup_fn) (void), char *path)
diff --git a/lib/tst_memutils.c b/lib/tst_memutils.c
index f134d90c9..647db951e 100644
--- a/lib/tst_memutils.c
+++ b/lib/tst_memutils.c
@@ -5,11 +5,11 @@
#include <unistd.h>
#include <limits.h>
-#include <sys/sysinfo.h>
#include <stdlib.h>
#define TST_NO_DEFAULT_MAIN
#include "tst_test.h"
+#include "lapi/sysinfo.h"
#define BLOCKSIZE (16 * 1024 * 1024)
diff --git a/testcases/kernel/mem/mtest01/mtest01.c b/testcases/kernel/mem/mtest01/mtest01.c
index f08d3943f..9b4d856f8 100644
--- a/testcases/kernel/mem/mtest01/mtest01.c
+++ b/testcases/kernel/mem/mtest01/mtest01.c
@@ -20,7 +20,6 @@
*/
#include <sys/types.h>
-#include <sys/sysinfo.h>
#include <sys/wait.h>
#include <limits.h>
#include <signal.h>
@@ -29,6 +28,7 @@
#include <unistd.h>
#include "lapi/abisize.h"
+#include "lapi/sysinfo.h"
#include "tst_test.h"
#define FIVE_HUNDRED_MB (500ULL*1024*1024)
diff --git a/testcases/kernel/syscalls/madvise/madvise06.c b/testcases/kernel/syscalls/madvise/madvise06.c
index f76f3f6aa..b2613670b 100644
--- a/testcases/kernel/syscalls/madvise/madvise06.c
+++ b/testcases/kernel/syscalls/madvise/madvise06.c
@@ -24,8 +24,8 @@
#include <errno.h>
#include <stdio.h>
#include <sys/mount.h>
-#include <sys/sysinfo.h>
#include "tst_test.h"
+#include "lapi/sysinfo.h"
#define CHUNK_SZ (400*1024*1024L)
#define CHUNK_PAGES (CHUNK_SZ / pg_sz)
diff --git a/testcases/kernel/syscalls/sysinfo/sysinfo01.c b/testcases/kernel/syscalls/sysinfo/sysinfo01.c
index 2ea44a2be..a95066bf5 100644
--- a/testcases/kernel/syscalls/sysinfo/sysinfo01.c
+++ b/testcases/kernel/syscalls/sysinfo/sysinfo01.c
@@ -69,9 +69,9 @@
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/signal.h>
-#include <sys/sysinfo.h>
#include "test.h"
+#include "lapi/sysinfo.h"
void setup();
void cleanup();
diff --git a/testcases/kernel/syscalls/sysinfo/sysinfo02.c b/testcases/kernel/syscalls/sysinfo/sysinfo02.c
index 678b8f1d3..5ce65d20e 100644
--- a/testcases/kernel/syscalls/sysinfo/sysinfo02.c
+++ b/testcases/kernel/syscalls/sysinfo/sysinfo02.c
@@ -65,10 +65,10 @@
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/signal.h>
-#include <sys/sysinfo.h>
#include <stdint.h>
#include "test.h"
+#include "lapi/sysinfo.h"
#define INVALID_ADDRESS ((uintptr_t)-1)
diff --git a/testcases/kernel/syscalls/sysinfo/sysinfo03.c b/testcases/kernel/syscalls/sysinfo/sysinfo03.c
index af7cb6421..3b61a05b1 100644
--- a/testcases/kernel/syscalls/sysinfo/sysinfo03.c
+++ b/testcases/kernel/syscalls/sysinfo/sysinfo03.c
@@ -13,9 +13,9 @@
*/
-#include <sys/sysinfo.h>
#include "lapi/namespaces_constants.h"
#include "lapi/posix_clocks.h"
+#include "lapi/sysinfo.h"
#include "tst_test.h"
static int offsets[] = {
--
2.28.0

View File

@@ -1,4 +1,4 @@
# From: https://github.com/linux-test-project/ltp/releases/download/20200120/ltp-full-20200120.tar.xz.sha1
sha1 8f622383907e2e64e60b69fd305fecb34311d6b6 ltp-full-20200120.tar.xz
# From: https://github.com/linux-test-project/ltp/releases/download/20200930/ltp-full-20200930.tar.xz.sha1
sha1 f380c7afe71e03eabb1de668c0399267042cb0f7 ltp-full-20200930.tar.xz
# Locally computed
sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 COPYING

View File

@@ -4,7 +4,7 @@
#
################################################################################
LTP_TESTSUITE_VERSION = 20200120
LTP_TESTSUITE_VERSION = 20200930
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)
LTP_TESTSUITE_LICENSE = GPL-2.0, GPL-2.0+
@@ -69,23 +69,15 @@ LTP_TESTSUITE_UNSUPPORTED_TEST_CASES = \
testcases/misc/math/float/float_bessel.c
else ifeq ($(BR2_TOOLCHAIN_USES_MUSL),y)
LTP_TESTSUITE_UNSUPPORTED_TEST_CASES = \
testcases/kernel/pty/pty01.c \
testcases/kernel/pty/pty02.c \
testcases/kernel/pty/ptem01.c \
testcases/kernel/sched/process_stress/process.c \
testcases/kernel/syscalls/accept4/accept4_01.c \
testcases/kernel/syscalls/confstr/confstr01.c \
testcases/kernel/syscalls/fmtmsg/fmtmsg01.c \
testcases/kernel/syscalls/getcontext/getcontext01.c \
testcases/kernel/syscalls/getdents/getdents01.c \
testcases/kernel/syscalls/getdents/getdents02.c \
testcases/kernel/syscalls/ioctl/ioctl01.c \
testcases/kernel/syscalls/ioctl/ioctl02.c \
testcases/kernel/syscalls/rt_tgsigqueueinfo/rt_tgsigqueueinfo01.c \
testcases/kernel/syscalls/sched_getaffinity/sched_getaffinity01.c \
testcases/kernel/syscalls/timer_create/timer_create01.c \
testcases/kernel/syscalls/timer_create/timer_create03.c \
testcases/misc/crash/crash01.c \
utils/benchmark/ebizzy-0.3
endif