diff options
Diffstat (limited to 'yocto-poky/meta/recipes-extended/mdadm')
6 files changed, 237 insertions, 0 deletions
diff --git a/yocto-poky/meta/recipes-extended/mdadm/files/0001-Fix-typo-in-comparision.patch b/yocto-poky/meta/recipes-extended/mdadm/files/0001-Fix-typo-in-comparision.patch new file mode 100644 index 000000000..df70b1cf4 --- /dev/null +++ b/yocto-poky/meta/recipes-extended/mdadm/files/0001-Fix-typo-in-comparision.patch @@ -0,0 +1,86 @@ +From 18d360d74271a066a849bc1fba4f10dbb23ed251 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 8 Sep 2015 08:17:42 +0000 +Subject: [PATCH] Fix typo in comparision + +error: comparison of array 'devnm' equal to a null pointer is always false + +User bitwise '&' operator as it is a mask + +Fixes +error: use of logical '&&' with constant operand + +Remove extraneous parens + +error: equality comparison with extraneous parentheses + +Remove dead code + +restripe.c:465:21: error: explicitly assigning value of variable of type 'int' to itself + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- +Upstream-Status: Pending + + mdmon.h | 2 +- + mdopen.c | 2 +- + restripe.c | 3 --- + super-intel.c | 2 +- + 4 files changed, 3 insertions(+), 6 deletions(-) + +diff --git a/mdmon.h b/mdmon.h +index aa750c6..0b08c3d 100644 +--- a/mdmon.h ++++ b/mdmon.h +@@ -101,7 +101,7 @@ static inline int is_resync_complete(struct mdinfo *array) + break; + case 10: + l = array->array.layout; +- ncopies = (l & 0xff) * ((l >> 8) && 0xff); ++ ncopies = (l & 0xff) * ((l >> 8) & 0xff); + sync_size = array->component_size * array->array.raid_disks; + sync_size /= ncopies; + break; +diff --git a/mdopen.c b/mdopen.c +index 28410f4..c5ee2a6 100644 +--- a/mdopen.c ++++ b/mdopen.c +@@ -318,7 +318,7 @@ int create_mddev(char *dev, char *name, int autof, int trustworthy, + else if (num < 0) { + /* need to choose a free number. */ + char *_devnm = find_free_devnm(use_mdp); +- if (devnm == NULL) { ++ if (_devnm == NULL) { + pr_err("No avail md devices - aborting\n"); + return -1; + } +diff --git a/restripe.c b/restripe.c +index 4d92190..cfe9666 100644 +--- a/restripe.c ++++ b/restripe.c +@@ -461,9 +461,6 @@ int raid6_check_disks(int data_disks, int start, int chunk_size, + curr_broken_disk = diskD; + } + +- if((Px == 0) && (Qx == 0)) +- curr_broken_disk = curr_broken_disk; +- + if(curr_broken_disk >= data_disks + 2) + broken_status = 2; + +diff --git a/super-intel.c b/super-intel.c +index 3f812d6..1838012 100644 +--- a/super-intel.c ++++ b/super-intel.c +@@ -10027,7 +10027,7 @@ enum imsm_reshape_type imsm_analyze_change(struct supertype *st, + geo->size = max_size; + } + +- if ((direction == ROLLBACK_METADATA_CHANGES)) { ++ if (direction == ROLLBACK_METADATA_CHANGES) { + /* accept size for rollback only + */ + } else { +-- +2.5.1 + diff --git a/yocto-poky/meta/recipes-extended/mdadm/files/gcc-4.9.patch b/yocto-poky/meta/recipes-extended/mdadm/files/gcc-4.9.patch new file mode 100644 index 000000000..54bf1d79a --- /dev/null +++ b/yocto-poky/meta/recipes-extended/mdadm/files/gcc-4.9.patch @@ -0,0 +1,22 @@ +super-intel.c:5063:2: error: right-hand operand of comma expression has no effect [-Werror=unused-value] + snprintf((char *) spare->sig, MAX_SIGNATURE_LENGTH, + ^ +cc1: all warnings being treated as errors +make: *** [super-intel.o] Error 1 + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +Upstream-Status: Pending + +Index: mdadm-3.3/super-intel.c +=================================================================== +--- mdadm-3.3.orig/super-intel.c 2014-05-02 15:08:21.154319651 -0700 ++++ mdadm-3.3/super-intel.c 2014-05-02 15:09:31.470985794 -0700 +@@ -5060,7 +5060,7 @@ + spare->cache_size = mpb->cache_size, + spare->pwr_cycle_count = __cpu_to_le32(1), + +- snprintf((char *) spare->sig, MAX_SIGNATURE_LENGTH, ++ (void)snprintf((char *) spare->sig, MAX_SIGNATURE_LENGTH, + MPB_SIGNATURE MPB_VERSION_RAID0); + + for (d = super->disks; d; d = d->next) { diff --git a/yocto-poky/meta/recipes-extended/mdadm/files/mdadm-3.2.2_fix_for_x32.patch b/yocto-poky/meta/recipes-extended/mdadm/files/mdadm-3.2.2_fix_for_x32.patch new file mode 100644 index 000000000..3b3db0a7f --- /dev/null +++ b/yocto-poky/meta/recipes-extended/mdadm/files/mdadm-3.2.2_fix_for_x32.patch @@ -0,0 +1,23 @@ +Upstream-Status: pending + +By hardcoding CC's definition in the Makefile, all the gcc parameters +set by tune settings are lost. Causing compile failure with x32 toolchain + +As the bitbake defined CC is good, there is no need to redfine CC in the +make file, hence making the CC definition in the Makefile conditional. + +Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com> 2011/12/07 + +Index: mdadm-3.3/Makefile +=================================================================== +--- mdadm-3.3.orig/Makefile 2013-09-03 07:47:47.000000000 +0300 ++++ mdadm-3.3/Makefile 2013-10-16 16:44:23.542295487 +0300 +@@ -41,7 +41,7 @@ + + KLIBC_GCC = gcc -nostdinc -iwithprefix include -I$(KLIBC)/klibc/include -I$(KLIBC)/linux/include -I$(KLIBC)/klibc/arch/i386/include -I$(KLIBC)/klibc/include/bits32 + +-CC = $(CROSS_COMPILE)gcc ++CC ?= $(CROSS_COMPILE)gcc + CXFLAGS ?= -ggdb + CWFLAGS = -Wall -Werror -Wstrict-prototypes -Wextra -Wno-unused-parameter + ifdef WARN_UNUSED diff --git a/yocto-poky/meta/recipes-extended/mdadm/files/mdadm-3.3.2_x32_abi_time_t.patch b/yocto-poky/meta/recipes-extended/mdadm/files/mdadm-3.3.2_x32_abi_time_t.patch new file mode 100644 index 000000000..c656d073e --- /dev/null +++ b/yocto-poky/meta/recipes-extended/mdadm/files/mdadm-3.3.2_x32_abi_time_t.patch @@ -0,0 +1,25 @@ +When try to print time_t values as a long int it causes an error because time_t +data type in x32 ABI is long long int. + +Upstream-Status: Pending + +Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com> + +Index: mdadm-3.3.4/monitor.c +=================================================================== +--- mdadm-3.3.4.orig/monitor.c ++++ mdadm-3.3.4/monitor.c +@@ -257,9 +257,12 @@ static int read_and_act(struct active_ar + mdi->curr_state = read_dev_state(mdi->state_fd); + } + } +- + gettimeofday(&tv, NULL); ++#if defined(__x86_64__) && defined(__ILP32__) ++ dprintf("(%d): %lld.%06lld state:%s prev:%s action:%s prev: %s start:%llu\n", ++#else + dprintf("(%d): %ld.%06ld state:%s prev:%s action:%s prev: %s start:%llu\n", ++#endif + a->info.container_member, + tv.tv_sec, tv.tv_usec, + array_states[a->curr_state], diff --git a/yocto-poky/meta/recipes-extended/mdadm/files/run-ptest b/yocto-poky/meta/recipes-extended/mdadm/files/run-ptest new file mode 100644 index 000000000..5b276090f --- /dev/null +++ b/yocto-poky/meta/recipes-extended/mdadm/files/run-ptest @@ -0,0 +1,10 @@ +#!/bin/sh + +./test &>./test.log +if [ $? -eq 0 ] +then + echo "PASS: mdadm" + rm test.log +else + echo "FAIL: mdadm" +fi diff --git a/yocto-poky/meta/recipes-extended/mdadm/mdadm_3.3.4.bb b/yocto-poky/meta/recipes-extended/mdadm/mdadm_3.3.4.bb new file mode 100644 index 000000000..11981670e --- /dev/null +++ b/yocto-poky/meta/recipes-extended/mdadm/mdadm_3.3.4.bb @@ -0,0 +1,71 @@ +SUMMARY = "Tool for managing software RAID under Linux" +HOMEPAGE = "http://www.kernel.org/pub/linux/utils/raid/mdadm/" + +# Some files are GPLv2+ while others are GPLv2. +LICENSE = "GPLv2 & GPLv2+" +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" + + +SRC_URI = "${KERNELORG_MIRROR}/linux/utils/raid/mdadm/${BPN}-${PV}.tar.xz \ + file://mdadm-3.2.2_fix_for_x32.patch \ + file://gcc-4.9.patch \ + file://mdadm-3.3.2_x32_abi_time_t.patch \ + file://0001-Fix-typo-in-comparision.patch \ + file://run-ptest \ + " +SRC_URI[md5sum] = "7ca8b114710f98f53f20c5787b674a09" +SRC_URI[sha256sum] = "8ae5f45306b873190e91f410709b00e51997b633c072b33f8efd9f7df022ca68" + +CFLAGS += "-fno-strict-aliasing" + +inherit autotools-brokensep + +EXTRA_OEMAKE = "CHECK_RUN_DIR=0" +# 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 +EXTRA_OEMAKE_append_powerpc64 = ' CFLAGS=-D__SANE_USERSPACE_TYPES__' +EXTRA_OEMAKE_append_mips64 = ' CFLAGS=-D__SANE_USERSPACE_TYPES__' +EXTRA_OEMAKE_append_mips64n32 = ' CFLAGS=-D__SANE_USERSPACE_TYPES__' + +do_compile() { + oe_runmake +} + +do_install() { + export STRIP="" + autotools_do_install +} + +FILES_${PN} += "${base_libdir}/udev/rules.d/*.rules" + +inherit ptest + +do_compile_ptest() { + oe_runmake test +} + +do_install_ptest() { + cp -a ${S}/tests ${D}${PTEST_PATH}/tests + cp ${S}/test ${D}${PTEST_PATH} + sed -e 's!sleep 0.*!sleep 1!g; s!/var/tmp!/!g' -i ${D}${PTEST_PATH}/test + ln -s /sbin/mdadm ${D}${PTEST_PATH}/mdadm + for prg in test_stripe swap_super raid6check + do + install -D -m 755 $prg ${D}${PTEST_PATH}/ + done +} +RDEPENDS_${PN}-ptest += "bash" +RRECOMMENDS_${PN}-ptest += " \ + coreutils \ + util-linux \ + kernel-module-loop \ + kernel-module-linear \ + kernel-module-raid0 \ + kernel-module-raid1 \ + kernel-module-raid10 \ + kernel-module-raid456 \ +" |