mdadm: Fix compile with musl 1.1.23

This adds missing includes for sys/sysmacros.h which are needed with
musl libc 1.1.23.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit ba8aeb02ea)
openwrt-19.07
Hauke Mehrtens 2019-08-03 11:27:55 +02:00
parent c85f9a245a
commit d720f83f87
3 changed files with 225 additions and 3 deletions

View File

@ -1,6 +1,6 @@
--- a/Makefile --- a/Makefile
+++ b/Makefile +++ b/Makefile
@@ -97,7 +97,7 @@ DLM:=$(shell [ -f /usr/include/libdlm.h ] || echo -DNO_DLM) @@ -97,7 +97,7 @@ DLM:=$(shell [ -f /usr/include/libdlm.h
DIRFLAGS = -DMAP_DIR=\"$(MAP_DIR)\" -DMAP_FILE=\"$(MAP_FILE)\" DIRFLAGS = -DMAP_DIR=\"$(MAP_DIR)\" -DMAP_FILE=\"$(MAP_FILE)\"
DIRFLAGS += -DMDMON_DIR=\"$(MDMON_DIR)\" DIRFLAGS += -DMDMON_DIR=\"$(MDMON_DIR)\"
DIRFLAGS += -DFAILED_SLOTS_DIR=\"$(FAILED_SLOTS_DIR)\" DIRFLAGS += -DFAILED_SLOTS_DIR=\"$(FAILED_SLOTS_DIR)\"

View File

@ -0,0 +1,222 @@
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
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.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
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(+)
--- 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>

View File

@ -1,6 +1,6 @@
--- a/Incremental.c --- a/Incremental.c
+++ b/Incremental.c +++ b/Incremental.c
@@ -1619,6 +1619,10 @@ static int Incremental_container(struct supertype *st, char *devname, @@ -1620,6 +1620,10 @@ static int Incremental_container(struct
if (ra_all == ra_blocked) if (ra_all == ra_blocked)
return 0; return 0;
@ -13,7 +13,7 @@
memcpy(suuid, uuid_zero, sizeof(int[4])); memcpy(suuid, uuid_zero, sizeof(int[4]));
--- a/util.c --- a/util.c
+++ b/util.c +++ b/util.c
@@ -1220,7 +1220,9 @@ void wait_for(char *dev, int fd) @@ -1221,7 +1221,9 @@ void wait_for(char *dev, int fd)
struct superswitch *superlist[] = struct superswitch *superlist[] =
{ {
&super0, &super1, &super0, &super1,