include $(TOPDIR)/rules.mk
PKG_NAME:=mdadm
-PKG_VERSION:=3.2.5
-PKG_RELEASE:=2
+PKG_VERSION:=4.0
+PKG_RELEASE:=1
PKG_SOURCE_URL:=@KERNEL/linux/utils/raid/mdadm
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_HASH:=ec1d264e4126309aafe76d76067e8f3fd6649941cff6cb0242d467a1e66a01e0
+PKG_HASH:=1d6ae7f24ced3a0fa7b5613b32f4a589bb4881e3946a5a2c3724056254ada3a9
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
SUBMENU:=Disc
TITLE:=A tool for managing Soft RAID under Linux
URL:=http://www.kernel.org/pub/linux/utils/raid/mdadm/
- DEPENDS:=+@KERNEL_DIRECT_IO
+ DEPENDS:=+@KERNEL_DIRECT_IO +libpthread +kmod-md-mod +kmod-md-raid0 +kmod-md-raid10 +kmod-md-raid1
endef
define Package/mdadm/description
A tool for managing Linux Software RAID arrays.
+ RAID 0, 1 and 10 support included.
+ If you need RAID 4,5 or 6 functionality please
+ install kmod-md-raid456 .
endef
define Package/mdadm/conffiles
/etc/config/mdadm
endef
-TARGET_CFLAGS += -ffunction-sections -fdata-sections
+TARGET_CFLAGS += -ffunction-sections -fdata-sections -DNO_COROSYNC -DNO_DLM -DUSE_PTHREADS
TARGET_LDFLAGS += -Wl,--gc-sections
define Build/Compile
+++ /dev/null
---- a/sha1.h
-+++ b/sha1.h
-@@ -26,8 +26,6 @@
- # include <limits.h>
- #endif
-
--#include "ansidecl.h"
--
- /* The following contortions are an attempt to use the C preprocessor
- to determine an unsigned integral type that is 32 bits wide. An
- alternative approach is to use autoconf's AC_CHECK_SIZEOF macro, but
--- a/Makefile
+++ b/Makefile
-@@ -76,7 +76,6 @@ FAILED_SLOTS_DIR = /run/mdadm/failed-slo
+@@ -86,7 +86,7 @@ DLM:=$(shell [ -f /usr/include/libdlm.h
DIRFLAGS = -DMAP_DIR=\"$(MAP_DIR)\" -DMAP_FILE=\"$(MAP_FILE)\"
DIRFLAGS += -DMDMON_DIR=\"$(MDMON_DIR)\"
DIRFLAGS += -DFAILED_SLOTS_DIR=\"$(FAILED_SLOTS_DIR)\"
--CFLAGS = $(CWFLAGS) $(CXFLAGS) -DSendmail=\""$(MAILCMD)"\" $(CONFFILEFLAGS) $(DIRFLAGS)
+-CFLAGS = $(CWFLAGS) $(CXFLAGS) -DSendmail=\""$(MAILCMD)"\" $(CONFFILEFLAGS) $(DIRFLAGS) $(COROSYNC) $(DLM)
++# CFLAGS = $(CWFLAGS) $(CXFLAGS) -DSendmail=\""$(MAILCMD)"\" $(CONFFILEFLAGS) $(DIRFLAGS) $(COROSYNC) $(DLM)
- # The glibc TLS ABI requires applications that call clone(2) to set up
- # TLS data structures, use pthreads until mdmon implements this support
-@@ -183,7 +182,7 @@ raid6check : raid6check.o mdadm.h $(CHEC
-
- mdassemble : $(ASSEMBLE_SRCS) $(INCL)
- rm -f $(OBJS)
-- $(DIET_GCC) $(ASSEMBLE_FLAGS) -o mdassemble $(ASSEMBLE_SRCS) $(STATICSRC)
-+ $(CC) $(ASSEMBLE_FLAGS) -o mdassemble $(ASSEMBLE_SRCS) $(STATICSRC)
-
- mdassemble.static : $(ASSEMBLE_SRCS) $(INCL)
- rm -f $(OBJS)
+ VERSION = $(shell [ -d .git ] && git describe HEAD | sed 's/mdadm-//')
+ VERS_DATE = $(shell [ -d .git ] && date --date="`git log -n1 --format=format:%cd --date=short`" '+%0dth %B %Y' | sed -e 's/1th/1st/' -e 's/2th/2nd/' -e 's/11st/11th/' -e 's/12nd/12th/')
--- /dev/null
+From 6d369e8f226594632ce4260129509daf7030de0a 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
+
+dprintf is also defined in libc see
+usr/include/bits/stdio2.h, this comes into
+play especially when fortify sources is enabled
+and compilers like clang reports the override
+
+In file included from policy.c:25:
+./mdadm.h:1562:9: error: 'dprintf' macro redefined [-Werror,-Wmacro-redefined]
+ ^
+/mnt/oe/openembedded-core/build/tmp-glibc/sysroots/qemux86/usr/include/bits/stdio2.h:145:12: note: previous definition is here
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ mdadm.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/mdadm.h
++++ b/mdadm.h
+@@ -1595,11 +1595,13 @@ static inline char *to_subarray(struct m
+ }
+
+ #ifdef DEBUG
++#undef dprintf
+ #define dprintf(fmt, arg...) \
+ fprintf(stderr, "%s: %s: "fmt, Name, __func__, ##arg)
+ #define dprintf_cont(fmt, arg...) \
+ fprintf(stderr, fmt, ##arg)
+ #else
++#undef dprintf
+ #define dprintf(fmt, arg...) \
+ ({ if (0) fprintf(stderr, "%s: %s: " fmt, Name, __func__, ##arg); 0; })
+ #define dprintf_cont(fmt, arg...) \
--- a/Incremental.c
+++ b/Incremental.c
-@@ -1508,6 +1508,10 @@ static int Incremental_container(struct
+@@ -1642,6 +1642,10 @@ static int Incremental_container(struct
if (ra_all == ra_blocked)
return 0;
memcpy(suuid, uuid_zero, sizeof(int[4]));
--- a/util.c
+++ b/util.c
-@@ -928,7 +928,9 @@ void wait_for(char *dev, int fd)
+@@ -1151,7 +1151,9 @@ void wait_for(char *dev, int fd)
struct superswitch *superlist[] =
{
&super0, &super1,