diff options
Diffstat (limited to 'meta/recipes-extended/mdadm')
19 files changed, 395 insertions, 256 deletions
diff --git a/meta/recipes-extended/mdadm/files/0001-Compute-abs-diff-in-a-standard-compliant-way.patch b/meta/recipes-extended/mdadm/files/0001-Compute-abs-diff-in-a-standard-compliant-way.patch deleted file mode 100644 index 803a59b3ec..0000000000 --- a/meta/recipes-extended/mdadm/files/0001-Compute-abs-diff-in-a-standard-compliant-way.patch +++ /dev/null @@ -1,31 +0,0 @@ -From b273e892bd6aaafe448f84356abb78a6d463e784 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Fri, 7 Dec 2018 17:22:39 -0800 -Subject: [PATCH] Compute abs diff in a standard compliant way - -This make it a bit less implementation defined and silences clang -warning -Wabsolute-value - -| super-intel.c:2822:20: error: taking the absolute value of unsigned type 'unsi -gned long long' has no effect [-Werror,-Wabsolute-value] - -Upstream-Status: Pending - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - super-intel.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/super-intel.c b/super-intel.c -index 6438987..10d7218 100644 ---- a/super-intel.c -+++ b/super-intel.c -@@ -2819,7 +2819,7 @@ static unsigned long long calc_component_size(struct imsm_map *map, - * 2048 blocks per each device. If the difference is higher it means - * that array size was expanded and num_data_stripes was not updated. - */ -- if ((unsigned int)abs(calc_dev_size - dev_size) > -+ if ((unsigned int)abs((int)calc_dev_size - (int)dev_size) > - (1 << SECT_PER_MB_SHIFT) * member_disks) { - component_size = dev_size / member_disks; - dprintf("Invalid num_data_stripes in metadata; expected=%llu, found=%llu\n", diff --git a/meta/recipes-extended/mdadm/files/0001-Fix-the-path-of-corosync-and-dlm-header-files-check.patch b/meta/recipes-extended/mdadm/files/0001-Fix-the-path-of-corosync-and-dlm-header-files-check.patch index 298f276cd6..fa1f0aa520 100644 --- a/meta/recipes-extended/mdadm/files/0001-Fix-the-path-of-corosync-and-dlm-header-files-check.patch +++ b/meta/recipes-extended/mdadm/files/0001-Fix-the-path-of-corosync-and-dlm-header-files-check.patch @@ -1,4 +1,4 @@ -From a9166bf422da1001bac9cc819386bf39b7cd1b73 Mon Sep 17 00:00:00 2001 +From 76856a34a4e339e4a53b09d028f89fcc520e3127 Mon Sep 17 00:00:00 2001 From: "Maxin B. John" <maxin.john@intel.com> Date: Tue, 9 Feb 2016 11:44:01 +0200 Subject: [PATCH] Fix the path of corosync and dlm header files check @@ -9,16 +9,15 @@ Fix it. Upstream-Status: Inappropriate [Yocto specific] Signed-off-by: Maxin B. John <maxin.john@intel.com> - --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile -index 2767ac6..46bf57b 100644 +index cbdba49..7bfd336 100644 --- a/Makefile +++ b/Makefile -@@ -91,8 +91,8 @@ FAILED_SLOTS_DIR = $(RUN_DIR)/failed-slots +@@ -109,8 +109,8 @@ FAILED_SLOTS_DIR = $(RUN_DIR)/failed-slots SYSTEMD_DIR=/lib/systemd/system LIB_DIR=/usr/libexec/mdadm diff --git a/meta/recipes-extended/mdadm/files/0001-Makefile-install-mdcheck.patch b/meta/recipes-extended/mdadm/files/0001-Makefile-install-mdcheck.patch new file mode 100644 index 0000000000..a4be1aa8a1 --- /dev/null +++ b/meta/recipes-extended/mdadm/files/0001-Makefile-install-mdcheck.patch @@ -0,0 +1,27 @@ +From 0be066d57a7dd1aead5488d0a095863608f2e559 Mon Sep 17 00:00:00 2001 +From: Chen Qi <Qi.Chen@windriver.com> +Date: Tue, 25 Jan 2022 16:25:01 +0800 +Subject: [PATCH] Makefile: install mdcheck + +The mdcheck_xxx.service files use mdcheck, but it's not installed. +We need to install this script. + +Upstream-Status: Submitted [Sent patch to maintainer] + +Signed-off-by: Chen Qi <Qi.Chen@windriver.com> +--- + Makefile | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/Makefile b/Makefile +index 1141971..f4059e2 100644 +--- a/Makefile ++++ b/Makefile +@@ -325,6 +325,7 @@ install-systemd: systemd/mdmon@.service + install-bin: mdadm mdmon + $(INSTALL) -D $(STRIP) -m 755 mdadm $(DESTDIR)$(BINDIR)/mdadm + $(INSTALL) -D $(STRIP) -m 755 mdmon $(DESTDIR)$(BINDIR)/mdmon ++ $(INSTALL) -D -m 755 misc/mdcheck $(DESTDIR)/usr/share/mdadm/mdcheck + + uninstall: + rm -f $(DESTDIR)$(MAN8DIR)/mdadm.8 $(DESTDIR)$(MAN8DIR)/mdmon.8 $(DESTDIR)$(MAN4DIR)/md.4 $(DESTDIR)$(MAN5DIR)/mdadm.conf.5 $(DESTDIR)$(BINDIR)/mdadm diff --git a/meta/recipes-extended/mdadm/files/0001-Revert-tests-wait-for-complete-rebuild-in-integrity-.patch b/meta/recipes-extended/mdadm/files/0001-Revert-tests-wait-for-complete-rebuild-in-integrity-.patch deleted file mode 100644 index b196084a5c..0000000000 --- a/meta/recipes-extended/mdadm/files/0001-Revert-tests-wait-for-complete-rebuild-in-integrity-.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 02a41c3fd560fb5250186dd6b3cff6b21daa2e2b Mon Sep 17 00:00:00 2001 -From: Mingli Yu <Mingli.Yu@windriver.com> -Date: Mon, 15 Jul 2019 14:12:24 +0800 -Subject: [PATCH] Revert "tests: wait for complete rebuild in integrity checks" - -This reverts commit e2a8e9dcf67a28bc722fa5ab2c49b0bc452d4d74 -as the logic "check state 'U*'" will make the test enters -infinite loop especially in qemu env, so revert it to -use the previous logic "check wait" which also used -commonly by other tests such as tests/02r5grow, tests/07revert-grow -and etc. - -Upstream-Status: Submitted[https://marc.info/?l=linux-raid&m=156317157314030&w=2] - -Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com> ---- - tests/01r5integ | 2 +- - tests/01raid6integ | 4 ++-- - 2 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/tests/01r5integ b/tests/01r5integ -index 48676a2..ffb30ce 100644 ---- a/tests/01r5integ -+++ b/tests/01r5integ -@@ -27,7 +27,7 @@ do - exit 1 - fi - mdadm $md0 -a $i -- while ! (check state 'U*'); do check wait; sleep 0.2; done -+ check wait - done - mdadm -S $md0 - done -diff --git a/tests/01raid6integ b/tests/01raid6integ -index 12f4d81..c6fcdae 100644 ---- a/tests/01raid6integ -+++ b/tests/01raid6integ -@@ -47,10 +47,10 @@ do - exit 1 - fi - mdadm $md0 -a $first -- while ! (check state 'U*_U*'); do check wait; sleep 0.2; done -+ check wait - done - mdadm $md0 -a $second -- while ! (check state 'U*'); do check wait; sleep 0.2; done -+ check wait - totest="$totest $second" - done - mdadm -S $md0 --- -2.7.4 - diff --git a/meta/recipes-extended/mdadm/files/0001-Use-CC-to-check-for-implicit-fallthrough-warning-sup.patch b/meta/recipes-extended/mdadm/files/0001-Use-CC-to-check-for-implicit-fallthrough-warning-sup.patch index 12bf6a5920..16fdefbbd1 100644 --- a/meta/recipes-extended/mdadm/files/0001-Use-CC-to-check-for-implicit-fallthrough-warning-sup.patch +++ b/meta/recipes-extended/mdadm/files/0001-Use-CC-to-check-for-implicit-fallthrough-warning-sup.patch @@ -1,4 +1,4 @@ -From 37c35f94d9d95dbd2b5f8a919f5478be51453590 Mon Sep 17 00:00:00 2001 +From c29d086714b49a6d76ccca83b4a6fa2f139bad6e Mon Sep 17 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Fri, 13 Oct 2017 10:27:34 -0700 Subject: [PATCH] Use CC to check for implicit-fallthrough warning support @@ -10,19 +10,35 @@ cross compile used for compiling mdadm is < version 7 Signed-off-by: Khem Raj <raj.khem@gmail.com> Upstream-Status: Pending --- - Makefile | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) + Makefile | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile -index 46bf57b..a075912 100644 +index 7bfd336..9ab6a65 100644 --- a/Makefile +++ b/Makefile -@@ -53,7 +53,7 @@ ifdef WARN_UNUSED - CWFLAGS += -Wp,-D_FORTIFY_SOURCE=2 -O3 +@@ -56,21 +56,21 @@ CWFLAGS += -Wp -O3 endif --FALLTHROUGH := $(shell gcc -v --help 2>&1 | grep "implicit-fallthrough" | wc -l) -+FALLTHROUGH := $(shell ${CC} -v --help 2>&1 | grep "implicit-fallthrough" | wc -l) - ifneq "$(FALLTHROUGH)" "0" - CWFLAGS += -Wimplicit-fallthrough=0 + ifeq ($(origin FALLTHROUGH), undefined) +- FALLTHROUGH := $(shell gcc -Q --help=warnings 2>&1 | grep "implicit-fallthrough" | wc -l) ++ FALLTHROUGH := $(shell ${CC} -Q --help=warnings 2>&1 | grep "implicit-fallthrough" | wc -l) + ifneq "$(FALLTHROUGH)" "0" + CWFLAGS += -Wimplicit-fallthrough=0 + endif endif + + ifeq ($(origin FORMATOVERFLOW), undefined) +- FORMATOVERFLOW := $(shell gcc -Q --help=warnings 2>&1 | grep "format-overflow" | wc -l) ++ FORMATOVERFLOW := $(shell ${CC} -Q --help=warnings 2>&1 | grep "format-overflow" | wc -l) + ifneq "$(FORMATOVERFLOW)" "0" + CWFLAGS += -Wformat-overflow + endif + endif + + ifeq ($(origin STRINGOPOVERFLOW), undefined) +- STRINGOPOVERFLOW := $(shell gcc -Q --help=warnings 2>&1 | grep "stringop-overflow" | wc -l) ++ STRINGOPOVERFLOW := $(shell ${CC} -Q --help=warnings 2>&1 | grep "stringop-overflow" | wc -l) + ifneq "$(STRINGOPOVERFLOW)" "0" + CWFLAGS += -Wstringop-overflow + endif diff --git a/meta/recipes-extended/mdadm/files/0001-fix-gcc-8-format-truncation-warning.patch b/meta/recipes-extended/mdadm/files/0001-fix-gcc-8-format-truncation-warning.patch index fa9c8cc835..3cf295106f 100644 --- a/meta/recipes-extended/mdadm/files/0001-fix-gcc-8-format-truncation-warning.patch +++ b/meta/recipes-extended/mdadm/files/0001-fix-gcc-8-format-truncation-warning.patch @@ -1,4 +1,4 @@ -From 3158d3788c2e0fb75ace2c89840bd8a977fb4cb0 Mon Sep 17 00:00:00 2001 +From 78e5bb08971a5644a56af60d51ef35e13522e811 Mon Sep 17 00:00:00 2001 From: Hongxu Jia <hongxu.jia@windriver.com> Date: Fri, 14 Dec 2018 15:12:31 +0800 Subject: [PATCH] fix gcc-8 format-truncation warning @@ -22,7 +22,7 @@ Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/super0.c b/super0.c -index 756cab5..12c28da 100644 +index a7c5f81..a79b6bd 100644 --- a/super0.c +++ b/super0.c @@ -229,7 +229,7 @@ static void examine_super0(struct supertype *st, char *homehost) @@ -34,6 +34,3 @@ index 756cab5..12c28da 100644 int wonly, failfast; if (d>=0) dp = &sb->disks[d]; else dp = &sb->this_disk; --- -2.7.4 - diff --git a/meta/recipes-extended/mdadm/files/0001-include-libgen.h-for-basename-API.patch b/meta/recipes-extended/mdadm/files/0001-include-libgen.h-for-basename-API.patch new file mode 100644 index 0000000000..70be43c15e --- /dev/null +++ b/meta/recipes-extended/mdadm/files/0001-include-libgen.h-for-basename-API.patch @@ -0,0 +1,56 @@ +From 7759ceda978aba38861d4846d0c1657465b72f04 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sun, 24 Mar 2024 23:13:32 -0700 +Subject: [PATCH] include libgen.h for basename API + +Musl does no more provide it via string.h therefore builds with newer +compilers e.g. clang-18 fails due to missing prototype for basename +therefore add libgen.h to included headers list + +Upstream-Status: Submitted [https://lore.kernel.org/linux-raid/20240325061537.275811-1-raj.khem@gmail.com/T/#u] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + Monitor.c | 1 + + platform-intel.c | 1 + + super-intel.c | 1 + + 3 files changed, 3 insertions(+) + +diff --git a/Monitor.c b/Monitor.c +index 824a69f..e3942e1 100644 +--- a/Monitor.c ++++ b/Monitor.c +@@ -26,6 +26,7 @@ + #include "udev.h" + #include "md_p.h" + #include "md_u.h" ++#include <libgen.h> + #include <sys/wait.h> + #include <limits.h> + #include <syslog.h> +diff --git a/platform-intel.c b/platform-intel.c +index ac282bc..5d6687d 100644 +--- a/platform-intel.c ++++ b/platform-intel.c +@@ -19,6 +19,7 @@ + #include "mdadm.h" + #include "platform-intel.h" + #include "probe_roms.h" ++#include <libgen.h> + #include <stdio.h> + #include <stdlib.h> + #include <string.h> +diff --git a/super-intel.c b/super-intel.c +index dbea235..881dbda 100644 +--- a/super-intel.c ++++ b/super-intel.c +@@ -23,6 +23,7 @@ + #include "dlink.h" + #include "sha1.h" + #include "platform-intel.h" ++#include <libgen.h> + #include <values.h> + #include <scsi/sg.h> + #include <ctype.h> +-- +2.44.0 + diff --git a/meta/recipes-extended/mdadm/files/0001-mdadm-add-option-y-for-use-syslog-to-recive-event-re.patch b/meta/recipes-extended/mdadm/files/0001-mdadm-add-option-y-for-use-syslog-to-recive-event-re.patch index e00287cab1..f224d0008d 100644 --- a/meta/recipes-extended/mdadm/files/0001-mdadm-add-option-y-for-use-syslog-to-recive-event-re.patch +++ b/meta/recipes-extended/mdadm/files/0001-mdadm-add-option-y-for-use-syslog-to-recive-event-re.patch @@ -1,4 +1,4 @@ -From 5fdc0173cb4fcf8656f0889ad364d2549795607f Mon Sep 17 00:00:00 2001 +From c27e128fdc062ec3fcdf7b48a8c5078615c538df Mon Sep 17 00:00:00 2001 From: Changqing Li <changqing.li@windriver.com> Date: Mon, 1 Jul 2019 11:34:49 +0800 Subject: [PATCH] mdadm: add option -y for use syslog to recive event report @@ -14,15 +14,12 @@ Signed-off-by: Changqing Li <changqing.li@windriver.com> 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/systemd/mdmonitor.service b/systemd/mdmonitor.service -index 46f7b88..3fc4687 100644 +index 9c36478..d289846 100644 --- a/systemd/mdmonitor.service +++ b/systemd/mdmonitor.service -@@ -13,4 +13,4 @@ DefaultDependencies=no +@@ -14,4 +14,4 @@ Documentation=man:mdadm(8) Environment= MDADM_MONITOR_ARGS=--scan EnvironmentFile=-/run/sysconfig/mdadm ExecStartPre=-/usr/lib/mdadm/mdadm_env.sh -ExecStart=BINDIR/mdadm --monitor $MDADM_MONITOR_ARGS +ExecStart=BINDIR/mdadm --monitor -y $MDADM_MONITOR_ARGS --- -2.7.4 - diff --git a/meta/recipes-extended/mdadm/files/0001-mdadm-skip-test-11spare-migration.patch b/meta/recipes-extended/mdadm/files/0001-mdadm-skip-test-11spare-migration.patch deleted file mode 100644 index 3a192cc95c..0000000000 --- a/meta/recipes-extended/mdadm/files/0001-mdadm-skip-test-11spare-migration.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 1b83afa7c3121f819e72ea74883f8b6d61d6548e Mon Sep 17 00:00:00 2001 -From: Changqing Li <changqing.li@windriver.com> -Date: Fri, 6 Sep 2019 10:59:02 +0800 -Subject: [PATCH] mdadm: skip test 11spare-migration - -11spare-migration is a test series to check mdadm Monitor migrates spares -according to rules in /etc/mdadm.conf defined by POLICY lines. - -[snip] -for scan in no yes; do - for platform in 1.2 imsm; do - try - done -done -[snip] - -"try" includes near 20 sub testcase, so there are nearly 80 subcases need to run, -so it will take long time than ptest-runner timeout limit, skip it as workaround. - -Upstream-Status: Inappropriate[oe-specific] - -Signed-off-by: Changqing Li <changqing.li@windriver.com> ---- - test | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/test b/test -index 711a3c7..880dd1d 100755 ---- a/test -+++ b/test -@@ -272,6 +272,9 @@ main() { - else - for script in $testdir/$prefix $testdir/$prefix*[^~] - do -+ if [ $script == "$testdir/11spare-migration" ];then -+ continue -+ fi - do_test $script - done - fi --- -2.7.4 - diff --git a/meta/recipes-extended/mdadm/files/0001-mdadm.h-Undefine-dprintf-before-redefining.patch b/meta/recipes-extended/mdadm/files/0001-mdadm.h-Undefine-dprintf-before-redefining.patch index a1e7e59323..52daea2a49 100644 --- a/meta/recipes-extended/mdadm/files/0001-mdadm.h-Undefine-dprintf-before-redefining.patch +++ b/meta/recipes-extended/mdadm/files/0001-mdadm.h-Undefine-dprintf-before-redefining.patch @@ -1,4 +1,4 @@ -From b431cb4e1ed060122fa300dc0008f74080d38f73 Mon Sep 17 00:00:00 2001 +From 4dd5c2659722b44409cee28b4cea68cdeaa1f987 Mon Sep 17 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Mon, 9 May 2016 22:03:57 +0000 Subject: [PATCH] mdadm.h: Undefine dprintf before redefining @@ -20,10 +20,10 @@ Upstream-Status: Pending 1 file changed, 2 insertions(+) diff --git a/mdadm.h b/mdadm.h -index 387e681..bb943bf 100644 +index 1f28b3e..04996e2 100644 --- a/mdadm.h +++ b/mdadm.h -@@ -1649,11 +1649,13 @@ static inline char *to_subarray(struct mdstat_ent *ent, char *container) +@@ -1869,11 +1869,13 @@ static inline sighandler_t signal_s(int sig, sighandler_t handler) } #ifdef DEBUG diff --git a/meta/recipes-extended/mdadm/files/0001-restripe.c-Use-_FILE_OFFSET_BITS-to-enable-largefile.patch b/meta/recipes-extended/mdadm/files/0001-restripe.c-Use-_FILE_OFFSET_BITS-to-enable-largefile.patch new file mode 100644 index 0000000000..13435ee418 --- /dev/null +++ b/meta/recipes-extended/mdadm/files/0001-restripe.c-Use-_FILE_OFFSET_BITS-to-enable-largefile.patch @@ -0,0 +1,155 @@ +From aa86de05cd6a75222b38e0789ac96fe00f705430 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Thu, 10 Nov 2022 12:31:22 -0800 +Subject: [PATCH] restripe.c: Use _FILE_OFFSET_BITS to enable largefile support + +Instead of using the lseek64 and friends, its better to enable it via +the feature macro _FILE_OFFSET_BITS = 64 and let the C library deal with +the width of types + +Upstream-Status: Submitted [https://lore.kernel.org/linux-raid/20221110225546.337164-1-raj.khem@gmail.com/] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + raid6check.c | 11 +++++++---- + restripe.c | 13 ++++++++----- + swap_super.c | 13 +++++++------ + 3 files changed, 22 insertions(+), 15 deletions(-) + +diff --git a/raid6check.c b/raid6check.c +index 9947776..8e7f142 100644 +--- a/raid6check.c ++++ b/raid6check.c +@@ -22,6 +22,9 @@ + * Based on "restripe.c" from "mdadm" codebase + */ + ++/* Enable largefile support */ ++#define _FILE_OFFSET_BITS 64 ++ + #include "mdadm.h" + #include <stdint.h> + #include <sys/mman.h> +@@ -284,9 +287,9 @@ int manual_repair(int chunk_size, int syndrome_disks, + } + + int write_res1, write_res2; +- off64_t seek_res; ++ off_t seek_res; + +- seek_res = lseek64(source[fd1], ++ seek_res = lseek(source[fd1], + offsets[fd1] + start * chunk_size, SEEK_SET); + if (seek_res < 0) { + fprintf(stderr, "lseek failed for failed_disk1\n"); +@@ -294,7 +297,7 @@ int manual_repair(int chunk_size, int syndrome_disks, + } + write_res1 = write(source[fd1], blocks[failed_slot1], chunk_size); + +- seek_res = lseek64(source[fd2], ++ seek_res = lseek(source[fd2], + offsets[fd2] + start * chunk_size, SEEK_SET); + if (seek_res < 0) { + fprintf(stderr, "lseek failed for failed_disk2\n"); +@@ -379,7 +382,7 @@ int check_stripes(struct mdinfo *info, int *source, unsigned long long *offsets, + goto exitCheck; + } + for (i = 0 ; i < raid_disks ; i++) { +- off64_t seek_res = lseek64(source[i], offsets[i] + start * chunk_size, ++ off_t seek_res = lseek(source[i], offsets[i] + start * chunk_size, + SEEK_SET); + if (seek_res < 0) { + fprintf(stderr, "lseek to source %d failed\n", i); +diff --git a/restripe.c b/restripe.c +index a7a7229..1c03577 100644 +--- a/restripe.c ++++ b/restripe.c +@@ -22,6 +22,9 @@ + * Email: <neilb@suse.de> + */ + ++/* Enable largefile support */ ++#define _FILE_OFFSET_BITS 64 ++ + #include "mdadm.h" + #include <stdint.h> + +@@ -581,7 +584,7 @@ int save_stripes(int *source, unsigned long long *offsets, + raid_disks, level, layout); + if (dnum < 0) abort(); + if (source[dnum] < 0 || +- lseek64(source[dnum], ++ lseek(source[dnum], + offsets[dnum] + offset, 0) < 0 || + read(source[dnum], buf+disk * chunk_size, + chunk_size) != chunk_size) { +@@ -754,8 +757,8 @@ int restore_stripes(int *dest, unsigned long long *offsets, + raid_disks, level, layout); + if (src_buf == NULL) { + /* read from file */ +- if (lseek64(source, read_offset, 0) != +- (off64_t)read_offset) { ++ if (lseek(source, read_offset, 0) != ++ (off_t)read_offset) { + rv = -1; + goto abort; + } +@@ -816,7 +819,7 @@ int restore_stripes(int *dest, unsigned long long *offsets, + } + for (i=0; i < raid_disks ; i++) + if (dest[i] >= 0) { +- if (lseek64(dest[i], ++ if (lseek(dest[i], + offsets[i]+offset, 0) < 0) { + rv = -1; + goto abort; +@@ -866,7 +869,7 @@ int test_stripes(int *source, unsigned long long *offsets, + int disk; + + for (i = 0 ; i < raid_disks ; i++) { +- if ((lseek64(source[i], offsets[i]+start, 0) < 0) || ++ if ((lseek(source[i], offsets[i]+start, 0) < 0) || + (read(source[i], stripes[i], chunk_size) != + chunk_size)) { + free(q); +diff --git a/swap_super.c b/swap_super.c +index b6db574..18c89e2 100644 +--- a/swap_super.c ++++ b/swap_super.c +@@ -1,3 +1,6 @@ ++/* Enable largefile support */ ++#define _FILE_OFFSET_BITS 64 ++ + #include <unistd.h> + #include <stdlib.h> + #include <fcntl.h> +@@ -16,8 +19,6 @@ + + #define MD_NEW_SIZE_SECTORS(x) ((x & ~(MD_RESERVED_SECTORS - 1)) - MD_RESERVED_SECTORS) + +-extern long long lseek64(int, long long, int); +- + int main(int argc, char *argv[]) + { + int fd, i; +@@ -38,8 +39,8 @@ int main(int argc, char *argv[]) + exit(1); + } + offset = MD_NEW_SIZE_SECTORS(size) * 512LL; +- if (lseek64(fd, offset, 0) < 0LL) { +- perror("lseek64"); ++ if (lseek(fd, offset, 0) < 0LL) { ++ perror("lseek"); + exit(1); + } + if (read(fd, super, 4096) != 4096) { +@@ -68,8 +69,8 @@ int main(int argc, char *argv[]) + super[32*4+10*4 +i] = t; + } + +- if (lseek64(fd, offset, 0) < 0LL) { +- perror("lseek64"); ++ if (lseek(fd, offset, 0) < 0LL) { ++ perror("lseek"); + exit(1); + } + if (write(fd, super, 4096) != 4096) { diff --git a/meta/recipes-extended/mdadm/files/0001-util.c-add-limits.h-include-for-NAME_MAX-definition.patch b/meta/recipes-extended/mdadm/files/0001-util.c-add-limits.h-include-for-NAME_MAX-definition.patch new file mode 100644 index 0000000000..0916efafdf --- /dev/null +++ b/meta/recipes-extended/mdadm/files/0001-util.c-add-limits.h-include-for-NAME_MAX-definition.patch @@ -0,0 +1,24 @@ +From 8fa7d3cb96e8833743b635fb198675ad6c020b6e Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex@linutronix.de> +Date: Tue, 12 Mar 2024 10:51:51 +0100 +Subject: [PATCH] util.c: add limits.h include for NAME_MAX definition + +Upstream-Status: Submitted [mariusz.tkaczyk@linux.intel.com,linux-raid@vger.kernel.org] +Signed-off-by: Alexander Kanavin <alex@linutronix.de> +--- + util.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/util.c b/util.c +index b145447..a9cb6c4 100644 +--- a/util.c ++++ b/util.c +@@ -36,7 +36,7 @@ + #include <ctype.h> + #include <dirent.h> + #include <dlfcn.h> +- ++#include <limits.h> + + /* + * following taken from linux/blkpg.h because they aren't diff --git a/meta/recipes-extended/mdadm/files/0002-Create.c-include-linux-falloc.h-for-FALLOC_FL_ZERO_R.patch b/meta/recipes-extended/mdadm/files/0002-Create.c-include-linux-falloc.h-for-FALLOC_FL_ZERO_R.patch new file mode 100644 index 0000000000..145c65477a --- /dev/null +++ b/meta/recipes-extended/mdadm/files/0002-Create.c-include-linux-falloc.h-for-FALLOC_FL_ZERO_R.patch @@ -0,0 +1,27 @@ +From a22b2345b9773d362acd85dd4c4a6a3cda9100d4 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex@linutronix.de> +Date: Tue, 12 Mar 2024 10:54:08 +0100 +Subject: [PATCH] Create.c: include linux/falloc.h for FALLOC_FL_ZERO_RANGE + definition + +glibc provides this through fcntl.h but musl does not - should +be reported and fixed there. + +Upstream-Status: Inappropriate [musl-specific issue] +Signed-off-by: Alexander Kanavin <alex@linutronix.de> +--- + Create.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/Create.c b/Create.c +index 8082f54..7071f0a 100644 +--- a/Create.c ++++ b/Create.c +@@ -31,6 +31,7 @@ + #include <signal.h> + #include <sys/signalfd.h> + #include <sys/wait.h> ++#include <linux/falloc.h> + + static int round_size_and_verify(unsigned long long *size, int chunk) + { diff --git a/meta/recipes-extended/mdadm/files/debian-no-Werror.patch b/meta/recipes-extended/mdadm/files/debian-no-Werror.patch index e66a15cd79..b758fcd0ab 100644 --- a/meta/recipes-extended/mdadm/files/debian-no-Werror.patch +++ b/meta/recipes-extended/mdadm/files/debian-no-Werror.patch @@ -1,5 +1,7 @@ -From: martin f. krafft <madduck@debian.org> -Subject: Remove -Werror from compiler flags +From 319b3191f088cea7b0fb6038ab7625d5e049dcf7 Mon Sep 17 00:00:00 2001 +From: "martin f. krafft" <madduck@debian.org> +Date: Mon, 3 Jan 2022 19:14:12 +0000 +Subject: [PATCH] Remove -Werror from compiler flags -Werror seems like a bad idea on released/packaged code because a toolchain update (introducing new warnings) could break the build. We'll let upstream @@ -9,17 +11,19 @@ Signed-off-by: martin f. krafft <madduck@debian.org> Upstream-Status: Pending --- - Makefile | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) + Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) +diff --git a/Makefile b/Makefile +index 9ab6a65..1141971 100644 --- a/Makefile +++ b/Makefile -@@ -48,7 +48,7 @@ endif - - CC ?= $(CROSS_COMPILE)gcc +@@ -50,7 +50,7 @@ ifeq ($(origin CC),default) + CC := $(CROSS_COMPILE)gcc + endif CXFLAGS ?= -ggdb --CWFLAGS = -Wall -Werror -Wstrict-prototypes -Wextra -Wno-unused-parameter -+CWFLAGS = -Wall -Wstrict-prototypes -Wextra -Wno-unused-parameter +-CWFLAGS ?= -Wall -Werror -Wstrict-prototypes -Wextra -Wno-unused-parameter -Wformat -Wformat-security -Werror=format-security -fstack-protector-strong -fPIE -Warray-bounds ++CWFLAGS ?= -Wall -Wstrict-prototypes -Wextra -Wno-unused-parameter -Wformat -Wformat-security -Werror=format-security -fstack-protector-strong -fPIE -Warray-bounds ifdef WARN_UNUSED - CWFLAGS += -Wp,-D_FORTIFY_SOURCE=2 -O3 + CWFLAGS += -Wp -O3 endif diff --git a/meta/recipes-extended/mdadm/files/include_sysmacros.patch b/meta/recipes-extended/mdadm/files/include_sysmacros.patch deleted file mode 100644 index 8a1d8342d8..0000000000 --- a/meta/recipes-extended/mdadm/files/include_sysmacros.patch +++ /dev/null @@ -1,14 +0,0 @@ -include sys/sysmacros.h for major/minor macro definitions - -Upstream-Status: Pending -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- a/mdadm.h -+++ b/mdadm.h -@@ -35,6 +35,7 @@ extern __off64_t lseek64 __P ((int __fd, - - #include <sys/types.h> - #include <sys/stat.h> -+#include <sys/sysmacros.h> - #include <stdint.h> - #include <stdlib.h> - #include <time.h> diff --git a/meta/recipes-extended/mdadm/files/mdadm-3.3.2_x32_abi_time_t.patch b/meta/recipes-extended/mdadm/files/mdadm-3.3.2_x32_abi_time_t.patch index 7a2c888701..ecd1f037d0 100644 --- a/meta/recipes-extended/mdadm/files/mdadm-3.3.2_x32_abi_time_t.patch +++ b/meta/recipes-extended/mdadm/files/mdadm-3.3.2_x32_abi_time_t.patch @@ -1,4 +1,4 @@ -From e37f7f6a0f1ef1b594574d11a8b90b8c861d047b Mon Sep 17 00:00:00 2001 +From ca91d9fc07943f209988411f2596e4b69828f208 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?An=C3=ADbal=20Lim=C3=B3n?= <anibal.limon@linux.intel.com> Date: Sun, 15 Mar 2015 09:02:14 +0000 Subject: [PATCH] mdadm: Fix build in x32 ABI @@ -12,16 +12,15 @@ data type in x32 ABI is long long int. Upstream-Status: Pending Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com> - --- monitor.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/monitor.c b/monitor.c -index 81537ed..7c33382 100644 +index 4acec67..8dcdfd6 100644 --- a/monitor.c +++ b/monitor.c -@@ -445,9 +445,12 @@ static int read_and_act(struct active_array *a, fd_set *fds) +@@ -447,9 +447,12 @@ static int read_and_act(struct active_array *a, fd_set *fds) if (FD_ISSET(mdi->bb_fd, fds)) check_for_cleared_bb(a, mdi); } diff --git a/meta/recipes-extended/mdadm/files/mdadm-fix-ptest-build-errors.patch b/meta/recipes-extended/mdadm/files/mdadm-fix-ptest-build-errors.patch deleted file mode 100644 index 8e2a8a9043..0000000000 --- a/meta/recipes-extended/mdadm/files/mdadm-fix-ptest-build-errors.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 911f6ea9be0c334885aeff66853b111cbd4066df Mon Sep 17 00:00:00 2001 -From: "Maxin B. John" <maxin.john@intel.com> -Date: Wed, 10 Feb 2016 17:28:05 +0200 -Subject: [PATCH] mdadm-fix-ptest-build-errors - -builds fail with ptest enabled: - -| restripe.c: In function 'test_stripes': -| restripe.c:845:4: error: ignoring return value of 'read', declared with -| attribute warn_unused_result [-Werror=unused-result] -| read(source[i], stripes[i], chunk_size); -| ^ -| cc1: all warnings being treated as errors -| Makefile:214: recipe for target 'test_stripe' failed - -Upstream-Status: Pending - -Signed-off-by: Maxin B. John <maxin.john@intel.com> - ---- - restripe.c | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/restripe.c b/restripe.c -index 31b07e8..592ba5d 100644 ---- a/restripe.c -+++ b/restripe.c -@@ -864,10 +864,14 @@ int test_stripes(int *source, unsigned long long *offsets, - - while (length > 0) { - int disk; -+ ssize_t ret; - - for (i = 0 ; i < raid_disks ; i++) { - lseek64(source[i], offsets[i]+start, 0); -- read(source[i], stripes[i], chunk_size); -+ ret = read(source[i], stripes[i], chunk_size); -+ if (ret == -1) { -+ printf("Read Failed\n"); -+ } - } - for (i = 0 ; i < data_disks ; i++) { - int disk = geo_map(i, start/chunk_size, raid_disks, diff --git a/meta/recipes-extended/mdadm/files/run-ptest b/meta/recipes-extended/mdadm/files/run-ptest index fae8071d43..c3f201491e 100644 --- a/meta/recipes-extended/mdadm/files/run-ptest +++ b/meta/recipes-extended/mdadm/files/run-ptest @@ -1,7 +1,10 @@ #!/bin/sh -mkdir -p /mdadm-testing-dir -# make the test continue to execute even one fail -dir=. ./test --keep-going --disable-integrity +logdir=$PWD/logs +targetdir=/mdadm-testing-dir + +rm -rf $targetdir $logdir +mkdir -p $targetdir $logdir -rm -rf /mdadm-testing-dir/* +# make the test continue to execute even one fail +./test --keep-going --disable-integrity --skip-broken --save-logs --logdir=$logdir diff --git a/meta/recipes-extended/mdadm/mdadm_4.1.bb b/meta/recipes-extended/mdadm/mdadm_4.3.bb index bb77759cf9..63c61b68c9 100644 --- a/meta/recipes-extended/mdadm/mdadm_4.1.bb +++ b/meta/recipes-extended/mdadm/mdadm_4.3.bb @@ -2,8 +2,8 @@ SUMMARY = "Tool for managing software RAID under Linux" HOMEPAGE = "http://www.kernel.org/pub/linux/utils/raid/mdadm/" DESCRIPTION = "mdadm is a Linux utility used to manage and monitor software RAID devices." -# Some files are GPLv2+ while others are GPLv2. -LICENSE = "GPLv2 & GPLv2+" +# Some files are GPL-2.0-only while others are GPL-2.0-or-later. +LICENSE = "GPL-2.0-only & GPL-2.0-or-later" LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ file://mdmon.c;beginline=4;endline=18;md5=af7d8444d9c4d3e5c7caac0d9d34039d \ file://mdadm.h;beglinlne=4;endline=22;md5=462bc9936ac0d3da110191a3f9994161" @@ -12,42 +12,41 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ SRC_URI = "${KERNELORG_MIRROR}/linux/utils/raid/mdadm/${BPN}-${PV}.tar.xz \ file://run-ptest \ file://mdadm-3.3.2_x32_abi_time_t.patch \ - file://mdadm-fix-ptest-build-errors.patch \ file://0001-mdadm.h-Undefine-dprintf-before-redefining.patch \ file://0001-Fix-the-path-of-corosync-and-dlm-header-files-check.patch \ file://0001-Use-CC-to-check-for-implicit-fallthrough-warning-sup.patch \ - file://0001-Compute-abs-diff-in-a-standard-compliant-way.patch \ file://0001-fix-gcc-8-format-truncation-warning.patch \ file://debian-no-Werror.patch \ - file://0001-Revert-tests-wait-for-complete-rebuild-in-integrity-.patch \ file://mdadm.init \ file://0001-mdadm-add-option-y-for-use-syslog-to-recive-event-re.patch \ - file://include_sysmacros.patch \ - file://0001-mdadm-skip-test-11spare-migration.patch \ + file://0001-Makefile-install-mdcheck.patch \ + file://0001-restripe.c-Use-_FILE_OFFSET_BITS-to-enable-largefile.patch \ + file://0002-Create.c-include-linux-falloc.h-for-FALLOC_FL_ZERO_R.patch \ + file://0001-util.c-add-limits.h-include-for-NAME_MAX-definition.patch \ + file://0001-include-libgen.h-for-basename-API.patch \ " -SRC_URI[md5sum] = "51bf3651bd73a06c413a2f964f299598" -SRC_URI[sha256sum] = "ab7688842908d3583a704d491956f31324c3a5fc9f6a04653cb75d19f1934f4a" +SRC_URI[sha256sum] = "416727ae1f1080ea6e3090cea36dd076826fc369151e36ab736557ba92196f9f" inherit autotools-brokensep ptest systemd -SYSTEMD_SERVICE_${PN} = "mdmonitor.service" -SYSTEMD_AUTO_ENABLE = "disable" +DEPENDS = "udev" -CFLAGS_append_toolchain-clang = " -Wno-error=address-of-packed-member" +SYSTEMD_SERVICE:${PN} = "mdmonitor.service" +SYSTEMD_AUTO_ENABLE = "disable" # PPC64 and MIPS64 uses long long for u64 in the kernel, but powerpc's asm/types.h # prevents 64-bit userland from seeing this definition, instead defaulting # to u64 == long in userspace. Define __SANE_USERSPACE_TYPES__ to get # int-ll64.h included -CFLAGS_append_powerpc64 = ' -D__SANE_USERSPACE_TYPES__' -CFLAGS_append_mipsarchn64 = ' -D__SANE_USERSPACE_TYPES__' -CFLAGS_append_mipsarchn32 = ' -D__SANE_USERSPACE_TYPES__' +CFLAGS:append:powerpc64 = ' -D__SANE_USERSPACE_TYPES__' +CFLAGS:append:mipsarchn64 = ' -D__SANE_USERSPACE_TYPES__' +CFLAGS:append:mipsarchn32 = ' -D__SANE_USERSPACE_TYPES__' -EXTRA_OEMAKE = 'CHECK_RUN_DIR=0 CXFLAGS="${CFLAGS}" SYSTEMD_DIR=${systemd_unitdir}/system \ - BINDIR="${base_sbindir}" UDEVDIR="${nonarch_base_libdir}/udev"' +EXTRA_OEMAKE = 'CHECK_RUN_DIR=0 CXFLAGS="${CFLAGS}" SYSTEMD_DIR=${systemd_system_unitdir} \ + BINDIR="${base_sbindir}" UDEVDIR="${nonarch_base_libdir}/udev" LDFLAGS="${LDFLAGS}"' -DEBUG_OPTIMIZATION_append = " -Wno-error" +DEBUG_OPTIMIZATION:append = " -Wno-error" do_compile() { oe_runmake SYSROOT="${STAGING_DIR_TARGET}" @@ -58,14 +57,14 @@ do_install() { autotools_do_install } -do_install_append() { +do_install:append() { install -d ${D}/${sysconfdir}/ install -m 644 ${S}/mdadm.conf-example ${D}${sysconfdir}/mdadm.conf install -d ${D}/${sysconfdir}/init.d - install -m 755 ${WORKDIR}/mdadm.init ${D}${sysconfdir}/init.d/mdmonitor + install -m 755 ${UNPACKDIR}/mdadm.init ${D}${sysconfdir}/init.d/mdmonitor } -do_install_append() { +do_install:append() { oe_runmake install-systemd DESTDIR=${D} } @@ -77,7 +76,6 @@ do_install_ptest() { cp -R --no-dereference --preserve=mode,links -v ${S}/tests ${D}${PTEST_PATH}/tests cp ${S}/test ${D}${PTEST_PATH} sed -e 's!sleep 0.*!sleep 1!g; s!/var/tmp!/mdadm-testing-dir!g' -i ${D}${PTEST_PATH}/test - sed -e 's!/var/tmp!/mdadm-testing-dir!g' -i ${D}${PTEST_PATH}/tests/* sed -i -e '/echo -ne "$_script... "/d' \ -e 's/echo "succeeded"/echo -e "PASS: $_script"/g' \ -e '/save_log fail/N; /_fail=1/i\\t\t\techo -ne "FAIL: $_script"' \ @@ -91,12 +89,26 @@ do_install_ptest() { do install -D -m 755 $prg ${D}${PTEST_PATH}/ done + + # Disable tests causing intermittent autobuilder failures + echo "intermittent failure on autobuilder" > ${D}${PTEST_PATH}/tests/19raid6check.broken + echo "intermittent failure on autobuilder" > ${D}${PTEST_PATH}/tests/20raid5journal.broken + echo "intermittent failure on autobuilder" > ${D}${PTEST_PATH}/tests/21raid5cache.broken + echo "intermittent failure on autobuilder" > ${D}${PTEST_PATH}/tests/10ddf-fail-spare.broken + echo "intermittent failure on autobuilder" > ${D}${PTEST_PATH}/tests/10ddf-fail-stop-readd.broken } -RDEPENDS_${PN}-ptest += "bash e2fsprogs-mke2fs" -RRECOMMENDS_${PN}-ptest += " \ +RDEPENDS:${PN} += "bash" +RDEPENDS:${PN}-ptest += " \ + bash \ + e2fsprogs-mke2fs \ + util-linux-lsblk \ + util-linux-losetup \ + util-linux-blockdev \ + strace \ +" +RRECOMMENDS:${PN}-ptest += " \ coreutils \ - util-linux \ kernel-module-loop \ kernel-module-linear \ kernel-module-raid0 \ @@ -105,4 +117,11 @@ RRECOMMENDS_${PN}-ptest += " \ kernel-module-raid456 \ " -FILES_${PN} += "${systemd_unitdir}/*" +FILES:${PN} += "${systemd_unitdir}/*" + +# strace is not yet ported to rv32 +RDEPENDS:${PN}-ptest:remove:riscv32 = "strace" +do_install_ptest:append:riscv32 () { + echo "disabled, no strace" > ${D}${PTEST_PATH}/tests/07revert-grow.broken + echo "disabled, no strace" > ${D}${PTEST_PATH}/tests/07revert-inplace.broken +} |