xfsdump: Fix build with musl

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
This commit is contained in:
Khem Raj 2017-07-14 11:34:52 -07:00 committed by Martin Jansa
parent e16fef4f4d
commit 222db35a89
6 changed files with 253 additions and 2 deletions

View File

@ -0,0 +1,28 @@
From 8cf48da5f645dd7bbb1ccbeab5bb0964f40f17f7 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Thu, 13 Jul 2017 23:18:47 -0700
Subject: [PATCH 1/5] Include fcntl.h for O_EXCL
Fix
error: 'O_CREAT' undeclared (first use in this function)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
invutil/invidx.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/invutil/invidx.c b/invutil/invidx.c
index 67efdf7..325a9a1 100644
--- a/invutil/invidx.c
+++ b/invutil/invidx.c
@@ -27,6 +27,7 @@
#include <sys/stat.h>
#include <string.h>
#include <uuid/uuid.h>
+#include <fcntl.h>
#include "types.h"
#include "mlog.h"
--
2.13.2

View File

@ -0,0 +1,122 @@
From f76d2142905f0e5bd830d5d576c235af1171c6ac Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Thu, 13 Jul 2017 23:23:31 -0700
Subject: [PATCH 2/5] Replace __uint32_t with uint32_t
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
common/content_inode.h | 4 ++--
doc/xfsdump.html | 8 ++++----
inventory/inv_oref.h | 2 +-
inventory/inv_priv.h | 4 ++--
inventory/inventory.h | 2 +-
5 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/common/content_inode.h b/common/content_inode.h
index a69a9a0..6936e05 100644
--- a/common/content_inode.h
+++ b/common/content_inode.h
@@ -191,10 +191,10 @@ typedef struct bstat bstat_t;
* and using two 16bit values to hold new 32bit projid was choosen
* to retain compatibility with "old" filesystems).
*/
-static inline __uint32_t
+static inline uint32_t
bstat_projid(struct bstat *bs)
{
- return (__uint32_t)bs->bs_projid_hi << 16 | bs->bs_projid_lo;
+ return (uint32_t)bs->bs_projid_hi << 16 | bs->bs_projid_lo;
}
diff --git a/doc/xfsdump.html b/doc/xfsdump.html
index 9c6722e..f85128f 100644
--- a/doc/xfsdump.html
+++ b/doc/xfsdump.html
@@ -1935,7 +1935,7 @@ The files are constructed like so:
<pre>
typedef struct invt_counter {
INVT_COUNTER_FIELDS
- __uint32_t ic_vernum;/* on disk version number for posterity */\
+ uint32_t ic_vernum;/* on disk version number for posterity */\
u_int ic_curnum;/* number of sessions/invindices recorded \
so far */ \
u_int ic_maxnum;/* maximum number of sessions/inv_indices \
@@ -1975,7 +1975,7 @@ typedef struct invt_fstab {
<pre>
typedef struct invt_counter {
INVT_COUNTER_FIELDS
- __uint32_t ic_vernum;/* on disk version number for posterity */\
+ uint32_t ic_vernum;/* on disk version number for posterity */\
u_int ic_curnum;/* number of sessions/invindices recorded \
so far */ \
u_int ic_maxnum;/* maximum number of sessions/inv_indices \
@@ -2012,7 +2012,7 @@ typedef struct invt_entry {
<pre>
typedef struct invt_sescounter {
INVT_COUNTER_FIELDS
- __uint32_t ic_vernum;/* on disk version number for posterity */\
+ uint32_t ic_vernum;/* on disk version number for posterity */\
u_int ic_curnum;/* number of sessions/invindices recorded \
so far */ \
u_int ic_maxnum;/* maximum number of sessions/inv_indices \
@@ -2034,7 +2034,7 @@ typedef struct invt_seshdr {
off64_t sh_streams_off; /* offset to start of the set of
stream hdrs */
time_t sh_time; /* time of the dump */
- __uint32_t sh_flag; /* for misc flags */
+ uint32_t sh_flag; /* for misc flags */
u_char sh_level; /* dump level */
u_char sh_pruned; /* pruned by invutil flag */
char sh_padding[22];
diff --git a/inventory/inv_oref.h b/inventory/inv_oref.h
index e16684d..38303a4 100644
--- a/inventory/inv_oref.h
+++ b/inventory/inv_oref.h
@@ -46,7 +46,7 @@
-typedef __uint32_t invt_objtype_t;
+typedef uint32_t invt_objtype_t;
#define INVT_LOCKED 0x0001
diff --git a/inventory/inv_priv.h b/inventory/inv_priv.h
index 1690271..364ffbc 100644
--- a/inventory/inv_priv.h
+++ b/inventory/inv_priv.h
@@ -120,7 +120,7 @@ typedef struct invt_seshdr {
off64_t sh_streams_off; /* offset to start of the set of
stream hdrs */
time32_t sh_time; /* time of the dump */
- __uint32_t sh_flag; /* for misc flags */
+ uint32_t sh_flag; /* for misc flags */
u_char sh_level; /* dump level */
u_char sh_pruned; /* pruned by invutil flag */
char sh_padding[22];
@@ -184,7 +184,7 @@ typedef struct invt_entry {
/* Cheap Inheritance, and an attempt to avoid a nested type */
#define INVT_COUNTER_FIELDS \
- __uint32_t ic_vernum;/* on disk version number for posterity */\
+ uint32_t ic_vernum;/* on disk version number for posterity */\
uint ic_curnum;/* number of sessions/invindices recorded \
so far */ \
uint ic_maxnum;/* maximum number of sessions/inv_indices \
diff --git a/inventory/inventory.h b/inventory/inventory.h
index 134b9ba..c1d7403 100644
--- a/inventory/inventory.h
+++ b/inventory/inventory.h
@@ -43,7 +43,7 @@
/* length of labels, mntpts, etc */
#define INV_STRLEN GLOBAL_HDR_STRING_SZ
-typedef __uint32_t inv_version_t;
+typedef uint32_t inv_version_t;
/* This is the general inventory version.
*/
--
2.13.2

View File

@ -0,0 +1,40 @@
From fcc0cf15a309947103a0695b8a1f4865b820eb5c Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Thu, 13 Jul 2017 23:26:03 -0700
Subject: [PATCH 3/5] replace use of SIGCLD with SIGCHLD
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
common/main.c | 2 +-
doc/xfsdump.html | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/common/main.c b/common/main.c
index 3848499..faa66ee 100644
--- a/common/main.c
+++ b/common/main.c
@@ -2225,7 +2225,7 @@ static sig_printmap_t sig_printmap[ ] = {
{SIGTERM, "SIGTERM"},
{SIGUSR1, "SIGUSR1"},
{SIGUSR2, "SIGUSR2"},
- {SIGCLD, "SIGCLD"},
+ {SIGCHLD, "SIGCHLD"},
{SIGPWR, "SIGPWR"},
{SIGURG, "SIGURG"},
{SIGPOLL, "SIGPOLL"},
diff --git a/doc/xfsdump.html b/doc/xfsdump.html
index f85128f..d96f037 100644
--- a/doc/xfsdump.html
+++ b/doc/xfsdump.html
@@ -334,7 +334,7 @@ the ring buffer. It ignores signals and does not terminate until it
receives a RING_OP_DIE message. It then exits 0.
<p>
The main process sleeps waiting for any of its children to die
-(ie. waiting for a SIGCLD). All children that it cares about (stream
+(ie. waiting for a SIGCHLD). All children that it cares about (stream
managers and ring buffer slaves) are registered through the child
manager abstraction. When a child dies wait status and other info is
stored with its entry in the child manager. main() ignores the deaths
--
2.13.2

View File

@ -0,0 +1,29 @@
From 98c7d96f0f2c6eddf60aa4a1a08d7d4467645930 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Thu, 13 Jul 2017 23:28:10 -0700
Subject: [PATCH 4/5] include limit.h for PATH_MAX
fixed
var.c:42:12: error: 'PATH_MAX' undeclared (first use in this function); did you mean 'RAND_MAX'?
char path[PATH_MAX];`
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
dump/var.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/dump/var.c b/dump/var.c
index 645caab..8156d37 100644
--- a/dump/var.c
+++ b/dump/var.c
@@ -16,6 +16,7 @@
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#include <limits.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/stat.h>
--
2.13.2

View File

@ -0,0 +1,27 @@
From d95f494de1aa8123c74170ffebaed8ea89649da2 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Thu, 13 Jul 2017 23:33:44 -0700
Subject: [PATCH 5/5] include sys/types.h for u_int32_t in attr/attributes.h
error: unknown type name 'u_int32_t'
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
restore/content.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/restore/content.c b/restore/content.c
index 7c4a81f..1d5de1b 100644
--- a/restore/content.c
+++ b/restore/content.c
@@ -24,6 +24,7 @@
#include <sys/param.h>
#include <sys/stat.h>
#include <sys/ioctl.h>
+#include <sys/types.h>
#include <attr/attributes.h>
#include <xfs/handle.h>
#include <time.h>
--
2.13.2

View File

@ -11,8 +11,13 @@ LIC_FILES_CHKSUM = "file://doc/COPYING;md5=15c832894d10ddd00dfcf57bee490ecc"
DEPENDS = "xfsprogs attr"
SRC_URI = "ftp://oss.sgi.com/projects/xfs/cmd_tars/${BPN}-${PV}.tar.gz \
file://remove-install-as-user.patch \
"
file://remove-install-as-user.patch \
file://0001-Include-fcntl.h-for-O_EXCL.patch \
file://0002-Replace-__uint32_t-with-uint32_t.patch \
file://0003-replace-use-of-SIGCLD-with-SIGCHLD.patch \
file://0004-include-limit.h-for-PATH_MAX.patch \
file://0005-include-sys-types.h-for-u_int32_t-in-attr-attributes.patch \
"
SRC_URI[md5sum] = "50353cd4f4b435685955363e6044f4d1"
SRC_URI[sha256sum] = "7f78c11ca527477d90e5e62b0778f3ad96f2b71c19173044e9aca9515fff42d0"