mdadm: Use upstream fix for musl 1.1.23 compile
authorHauke Mehrtens <hauke@hauke-m.de>
Wed, 7 Aug 2019 20:13:36 +0000 (22:13 +0200)
committerHauke Mehrtens <hauke@hauke-m.de>
Wed, 21 Aug 2019 08:28:27 +0000 (10:28 +0200)
Fixes: d720f83f87ce ("mdadm: Fix compile with musl 1.1.23")
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit ebbec2fdc6cec4119fb4fefc3080146aa00bc07d)

package/utils/mdadm/Makefile
package/utils/mdadm/patches/102-Add-missing-include-file-sys-sysmacros.h.patch
package/utils/mdadm/patches/200-reduce_size.patch

index 18026bb..f20a58b 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mdadm
 PKG_VERSION:=4.1
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@KERNEL/linux/utils/raid/mdadm
index 3bb5f9a..891b5c6 100644 (file)
-From 1ee119c8026dff34a4d8c4269c05d3d4e0c25aa6 Mon Sep 17 00:00:00 2001
-From: Hauke Mehrtens <hauke@hauke-m.de>
-Date: Sat, 3 Aug 2019 11:03:40 +0200
-Subject: [mdadm PATCH] Add missing include file sys/sysmacros.h
+From 452dc4d13a012cdcb05088c0dbc699959c4d6c73 Mon Sep 17 00:00:00 2001
+From: Baruch Siach <baruch@tkos.co.il>
+Date: Tue, 6 Aug 2019 16:05:23 +0300
+Subject: mdadm.h: include sysmacros.h unconditionally
 
-This include file is needed for makedev(), major() and minor() which are
-used in these functions. In musl 1.1.23 sys/sysmacros.h is not included
-indirectly any more and mdadm fails to compile.
+musl libc now also requires sys/sysmacros.h for the major/minor macros.
+All supported libc implementations carry sys/sysmacros.h, including
+diet-libc, klibc, and uclibc-ng.
 
-Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
+Cc: Hauke Mehrtens <hauke@hauke-m.de>
+Signed-off-by: Baruch Siach <baruch@tkos.co.il>
+Signed-off-by: Jes Sorensen <jsorensen@fb.com>
 ---
- Assemble.c       | 1 +
- Build.c          | 1 +
- Create.c         | 1 +
- Detail.c         | 1 +
- Grow.c           | 1 +
- Incremental.c    | 1 +
- Manage.c         | 1 +
- Monitor.c        | 1 +
- Query.c          | 1 +
- lib.c            | 1 +
- mapfile.c        | 1 +
- mdadm.c          | 1 +
- mdopen.c         | 1 +
- platform-intel.c | 1 +
- policy.c         | 1 +
- super-ddf.c      | 1 +
- super-intel.c    | 1 +
- sysfs.c          | 1 +
- util.c           | 1 +
- 19 files changed, 19 insertions(+)
+ mdadm.h | 2 --
+ 1 file changed, 2 deletions(-)
 
---- a/Assemble.c
-+++ b/Assemble.c
-@@ -24,6 +24,7 @@
- #include      "mdadm.h"
- #include      <ctype.h>
-+#include      <sys/sysmacros.h>
- static int name_matches(char *found, char *required, char *homehost, int require_homehost)
- {
---- a/Build.c
-+++ b/Build.c
-@@ -23,6 +23,7 @@
-  */
- #include "mdadm.h"
-+#include <sys/sysmacros.h>
- int Build(char *mddev, struct mddev_dev *devlist,
-         struct shape *s, struct context *c)
---- a/Create.c
-+++ b/Create.c
-@@ -26,6 +26,7 @@
- #include      "md_u.h"
- #include      "md_p.h"
- #include      <ctype.h>
-+#include      <sys/sysmacros.h>
- static int default_layout(struct supertype *st, int level, int verbose)
- {
---- a/Detail.c
-+++ b/Detail.c
-@@ -27,6 +27,7 @@
- #include      "md_u.h"
- #include      <ctype.h>
- #include      <dirent.h>
-+#include      <sys/sysmacros.h>
- static int cmpstringp(const void *p1, const void *p2)
- {
---- a/Grow.c
-+++ b/Grow.c
-@@ -27,6 +27,7 @@
- #include      <stddef.h>
- #include      <stdint.h>
- #include      <signal.h>
-+#include      <sys/sysmacros.h>
- #include      <sys/wait.h>
- #if ! defined(__BIG_ENDIAN) && ! defined(__LITTLE_ENDIAN)
---- a/Incremental.c
-+++ b/Incremental.c
-@@ -29,6 +29,7 @@
-  */
- #include      "mdadm.h"
-+#include      <sys/sysmacros.h>
- #include      <sys/wait.h>
- #include      <dirent.h>
- #include      <ctype.h>
---- a/Manage.c
-+++ b/Manage.c
-@@ -26,6 +26,7 @@
- #include "md_u.h"
- #include "md_p.h"
- #include <ctype.h>
-+#include <sys/sysmacros.h>
- int Manage_ro(char *devname, int fd, int readonly)
- {
---- a/Monitor.c
-+++ b/Monitor.c
-@@ -25,6 +25,7 @@
- #include      "mdadm.h"
- #include      "md_p.h"
- #include      "md_u.h"
-+#include      <sys/sysmacros.h>
- #include      <sys/wait.h>
- #include      <signal.h>
- #include      <limits.h>
---- a/Query.c
-+++ b/Query.c
-@@ -25,6 +25,7 @@
- #include      "mdadm.h"
- #include      "md_p.h"
- #include      "md_u.h"
-+#include      <sys/sysmacros.h>
- int Query(char *dev)
- {
---- a/lib.c
-+++ b/lib.c
-@@ -25,6 +25,7 @@
- #include      "mdadm.h"
- #include      "dlink.h"
- #include      <ctype.h>
-+#include      <sys/sysmacros.h>
- /* This fill contains various 'library' style function.  They
-  * have no dependency on anything outside this file.
---- a/mapfile.c
-+++ b/mapfile.c
-@@ -44,6 +44,7 @@
-  */
- #include      "mdadm.h"
- #include      <sys/file.h>
-+#include      <sys/sysmacros.h>
- #include      <ctype.h>
- #define MAP_READ 0
---- a/mdadm.c
-+++ b/mdadm.c
-@@ -28,6 +28,7 @@
- #include "mdadm.h"
- #include "md_p.h"
- #include <ctype.h>
-+#include <sys/sysmacros.h>
- static int scan_assemble(struct supertype *ss,
-                        struct context *c,
---- a/mdopen.c
-+++ b/mdopen.c
-@@ -25,6 +25,7 @@
- #include "mdadm.h"
- #include "md_p.h"
- #include <ctype.h>
-+#include <sys/sysmacros.h>
- void make_parts(char *dev, int cnt)
- {
---- a/platform-intel.c
-+++ b/platform-intel.c
-@@ -28,6 +28,7 @@
- #include <sys/mman.h>
- #include <sys/types.h>
- #include <sys/stat.h>
-+#include <sys/sysmacros.h>
- #include <limits.h>
- static int devpath_to_ll(const char *dev_path, const char *entry,
---- a/policy.c
-+++ b/policy.c
-@@ -26,6 +26,7 @@
- #include <dirent.h>
- #include <fnmatch.h>
- #include <ctype.h>
-+#include <sys/sysmacros.h>
- #include "dlink.h"
- /*
-  * Policy module for mdadm.
---- a/super-ddf.c
-+++ b/super-ddf.c
-@@ -31,6 +31,7 @@
- #include "sha1.h"
- #include <values.h>
- #include <stddef.h>
-+#include <sys/sysmacros.h>
- /* a non-official T10 name for creation GUIDs */
- static char T10[] = "Linux-MD";
---- a/super-intel.c
-+++ b/super-intel.c
-@@ -24,6 +24,7 @@
- #include "platform-intel.h"
- #include <values.h>
- #include <scsi/sg.h>
-+#include <sys/sysmacros.h>
- #include <ctype.h>
- #include <dirent.h>
---- a/sysfs.c
-+++ b/sysfs.c
-@@ -26,6 +26,7 @@
- #include      "mdadm.h"
- #include      <dirent.h>
- #include      <ctype.h>
-+#include      <sys/sysmacros.h>
- #define MAX_SYSFS_PATH_LEN    120
---- a/util.c
-+++ b/util.c
-@@ -29,6 +29,7 @@
- #include      <sys/wait.h>
- #include      <sys/un.h>
- #include      <sys/resource.h>
-+#include      <sys/sysmacros.h>
- #include      <sys/vfs.h>
- #include      <sys/mman.h>
- #include      <linux/magic.h>
+--- a/mdadm.h
++++ b/mdadm.h
+@@ -45,10 +45,8 @@ extern __off64_t lseek64 __P ((int __fd,
+ #include      <errno.h>
+ #include      <string.h>
+ #include      <syslog.h>
+-#ifdef __GLIBC__
+ /* Newer glibc requires sys/sysmacros.h directly for makedev() */
+ #include      <sys/sysmacros.h>
+-#endif
+ #ifdef __dietlibc__
+ #include      <strings.h>
+ /* dietlibc has deprecated random and srandom!! */
index 3b6e879..6905c2c 100644 (file)
@@ -1,6 +1,6 @@
 --- a/Incremental.c
 +++ b/Incremental.c
-@@ -1620,6 +1620,10 @@ static int Incremental_container(struct
+@@ -1619,6 +1619,10 @@ static int Incremental_container(struct
        if (ra_all == ra_blocked)
                return 0;
  
@@ -13,7 +13,7 @@
        memcpy(suuid, uuid_zero, sizeof(int[4]));
 --- a/util.c
 +++ b/util.c
-@@ -1221,7 +1221,9 @@ void wait_for(char *dev, int fd)
+@@ -1220,7 +1220,9 @@ void wait_for(char *dev, int fd)
  struct superswitch *superlist[] =
  {
        &super0, &super1,