307 lines
8.0 KiB
Diff
307 lines
8.0 KiB
Diff
|
From 2b826d09c0c0033f52d47c477ae43655f3ae0fa9 Mon Sep 17 00:00:00 2001
|
||
|
From: Peter Seiderer <ps.report@gmx.net>
|
||
|
Date: Tue, 25 Sep 2018 21:31:16 +0200
|
||
|
Subject: [PATCH] Fix musl compile (__GNUC_PREREQ related)
|
||
|
|
||
|
Use __GNUC_PREREQ only if defined, patch taken frrom [1].
|
||
|
|
||
|
[1] https://raw.githubusercontent.com/void-linux/void-packages/1f3b51493031cc0309009804475e3db572fc89ad/srcpkgs/e2fsprogs/patches/fix-glibcism.patch
|
||
|
|
||
|
Signed-off-by: Peter Seiderer <ps.report@gmx.net>
|
||
|
---
|
||
|
debugfs/set_fields.c | 5 ++++-
|
||
|
e2fsck/problem.c | 4 ++++
|
||
|
lib/ext2fs/ext4_acl.h | 4 ++++
|
||
|
lib/ext2fs/fiemap.h | 4 ++++
|
||
|
lib/ext2fs/hashmap.h | 4 ++++
|
||
|
lib/ext2fs/mmp.c | 4 ++++
|
||
|
lib/ext2fs/unix_io.c | 4 ++++
|
||
|
lib/uuid/gen_uuid.c | 4 ++++
|
||
|
misc/e2undo.c | 4 ++++
|
||
|
misc/filefrag.c | 4 ++++
|
||
|
misc/fuse2fs.c | 4 ++++
|
||
|
11 files changed, 44 insertions(+), 1 deletion(-)
|
||
|
|
||
|
diff --git a/debugfs/set_fields.c b/debugfs/set_fields.c
|
||
|
index e1e23a5..834a19b 100644
|
||
|
--- a/debugfs/set_fields.c
|
||
|
+++ b/debugfs/set_fields.c
|
||
|
@@ -74,11 +74,12 @@ static errcode_t parse_bmap(struct field_set_info *info, char *field, char *arg)
|
||
|
static errcode_t parse_gd_csum(struct field_set_info *info, char *field, char *arg);
|
||
|
static errcode_t parse_mmp_clear(struct field_set_info *info, char *field,
|
||
|
char *arg);
|
||
|
-
|
||
|
+#ifdef __GNUC_PREREQ
|
||
|
#if __GNUC_PREREQ (4, 6)
|
||
|
#pragma GCC diagnostic push
|
||
|
#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
|
||
|
#endif
|
||
|
+#endif
|
||
|
|
||
|
static struct field_set_info super_fields[] = {
|
||
|
{ "inodes_count", &set_sb.s_inodes_count, NULL, 4, parse_uint },
|
||
|
@@ -291,9 +292,11 @@ static struct field_set_info mmp_fields[] = {
|
||
|
{ "checksum", &set_mmp.mmp_checksum, NULL, 4, parse_uint },
|
||
|
{ 0, 0, 0, 0 }
|
||
|
};
|
||
|
+#ifdef __GNUC_PREREQ
|
||
|
#if __GNUC_PREREQ (4, 6)
|
||
|
#pragma GCC diagnostic pop
|
||
|
#endif
|
||
|
+#endif
|
||
|
|
||
|
#ifdef UNITTEST
|
||
|
|
||
|
diff --git a/e2fsck/problem.c b/e2fsck/problem.c
|
||
|
index 0f60396..68eb79f 100644
|
||
|
--- a/e2fsck/problem.c
|
||
|
+++ b/e2fsck/problem.c
|
||
|
@@ -99,10 +99,12 @@ static const char *preen_msg[] = {
|
||
|
"", /* 20 */
|
||
|
};
|
||
|
|
||
|
+#ifdef __GNUC_PREREQ
|
||
|
#if __GNUC_PREREQ (4, 6)
|
||
|
#pragma GCC diagnostic push
|
||
|
#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
|
||
|
#endif
|
||
|
+#endif
|
||
|
|
||
|
static struct e2fsck_problem problem_table[] = {
|
||
|
|
||
|
@@ -2094,9 +2096,11 @@ static struct latch_descr pr_latch_info[] = {
|
||
|
{ PR_LATCH_OPTIMIZE_EXT, PR_1E_OPTIMIZE_EXT_HEADER, PR_1E_OPTIMIZE_EXT_END },
|
||
|
{ -1, 0, 0 },
|
||
|
};
|
||
|
+#ifdef __GNUC_PREREQ
|
||
|
#if __GNUC_PREREQ (4, 6)
|
||
|
#pragma GCC diagnostic pop
|
||
|
#endif
|
||
|
+#endif
|
||
|
|
||
|
static struct e2fsck_problem *find_problem(problem_t code)
|
||
|
{
|
||
|
diff --git a/lib/ext2fs/ext4_acl.h b/lib/ext2fs/ext4_acl.h
|
||
|
index 8d4d974..c1a2801 100644
|
||
|
--- a/lib/ext2fs/ext4_acl.h
|
||
|
+++ b/lib/ext2fs/ext4_acl.h
|
||
|
@@ -50,13 +50,17 @@ typedef struct {
|
||
|
|
||
|
typedef struct {
|
||
|
__le32 a_version;
|
||
|
+#ifdef __GNUC_PREREQ
|
||
|
#if __GNUC_PREREQ (4, 8)
|
||
|
#pragma GCC diagnostic push
|
||
|
#pragma GCC diagnostic ignored "-Wpedantic"
|
||
|
+#endif
|
||
|
#endif
|
||
|
posix_acl_xattr_entry a_entries[0];
|
||
|
+#ifdef __GNUC_PREREQ
|
||
|
#if __GNUC_PREREQ (4, 8)
|
||
|
#pragma GCC diagnostic pop
|
||
|
#endif
|
||
|
+#endif
|
||
|
} posix_acl_xattr_header;
|
||
|
|
||
|
diff --git a/lib/ext2fs/fiemap.h b/lib/ext2fs/fiemap.h
|
||
|
index 0d1072a..76860ac 100644
|
||
|
--- a/lib/ext2fs/fiemap.h
|
||
|
+++ b/lib/ext2fs/fiemap.h
|
||
|
@@ -31,14 +31,18 @@ struct fiemap {
|
||
|
__u32 fm_mapped_extents;/* number of extents that were mapped (out) */
|
||
|
__u32 fm_extent_count; /* size of fm_extents array (in) */
|
||
|
__u32 fm_reserved;
|
||
|
+#ifdef __GNUC_PREREQ
|
||
|
#if __GNUC_PREREQ (4, 8)
|
||
|
#pragma GCC diagnostic push
|
||
|
#pragma GCC diagnostic ignored "-Wpedantic"
|
||
|
+#endif
|
||
|
#endif
|
||
|
struct fiemap_extent fm_extents[0]; /* array of mapped extents (out) */
|
||
|
+#ifdef __GNUC_PREREQ
|
||
|
#if __GNUC_PREREQ (4, 8)
|
||
|
#pragma GCC diagnostic pop
|
||
|
#endif
|
||
|
+#endif
|
||
|
};
|
||
|
|
||
|
#if defined(__linux__) && !defined(FS_IOC_FIEMAP)
|
||
|
diff --git a/lib/ext2fs/hashmap.h b/lib/ext2fs/hashmap.h
|
||
|
index 228f439..a6ba686 100644
|
||
|
--- a/lib/ext2fs/hashmap.h
|
||
|
+++ b/lib/ext2fs/hashmap.h
|
||
|
@@ -17,14 +17,18 @@ struct ext2fs_hashmap {
|
||
|
struct ext2fs_hashmap_entry *next;
|
||
|
struct ext2fs_hashmap_entry *list_next;
|
||
|
struct ext2fs_hashmap_entry *list_prev;
|
||
|
+#ifdef __GNUC_PREREQ
|
||
|
#if __GNUC_PREREQ (4, 8)
|
||
|
#pragma GCC diagnostic push
|
||
|
#pragma GCC diagnostic ignored "-Wpedantic"
|
||
|
+#endif
|
||
|
#endif
|
||
|
} *entries[0];
|
||
|
+#ifdef __GNUC_PREREQ
|
||
|
#if __GNUC_PREREQ (4, 8)
|
||
|
#pragma GCC diagnostic pop
|
||
|
#endif
|
||
|
+#endif
|
||
|
};
|
||
|
|
||
|
struct ext2fs_hashmap *ext2fs_hashmap_create(
|
||
|
diff --git a/lib/ext2fs/mmp.c b/lib/ext2fs/mmp.c
|
||
|
index 2da935e..f4069c2 100644
|
||
|
--- a/lib/ext2fs/mmp.c
|
||
|
+++ b/lib/ext2fs/mmp.c
|
||
|
@@ -34,8 +34,10 @@
|
||
|
#define O_DIRECT 0
|
||
|
#endif
|
||
|
|
||
|
+#ifdef __GNUC_PREREQ
|
||
|
#if __GNUC_PREREQ (4, 6)
|
||
|
#pragma GCC diagnostic push
|
||
|
+#endif
|
||
|
#ifndef CONFIG_MMP
|
||
|
#pragma GCC diagnostic ignored "-Wunused-parameter"
|
||
|
#endif
|
||
|
@@ -467,6 +469,8 @@ mmp_error:
|
||
|
return EXT2_ET_OP_NOT_SUPPORTED;
|
||
|
#endif
|
||
|
}
|
||
|
+#ifdef __GNUC_PREREQ
|
||
|
#if __GNUC_PREREQ (4, 6)
|
||
|
#pragma GCC diagnostic pop
|
||
|
#endif
|
||
|
+#endif
|
||
|
diff --git a/lib/ext2fs/unix_io.c b/lib/ext2fs/unix_io.c
|
||
|
index 7a4c9bf..9e863a5 100644
|
||
|
--- a/lib/ext2fs/unix_io.c
|
||
|
+++ b/lib/ext2fs/unix_io.c
|
||
|
@@ -1127,10 +1127,12 @@ unimplemented:
|
||
|
}
|
||
|
|
||
|
/* parameters might not be used if OS doesn't support zeroout */
|
||
|
+#ifdef __GNUC_PREREQ
|
||
|
#if __GNUC_PREREQ (4, 6)
|
||
|
#pragma GCC diagnostic push
|
||
|
#pragma GCC diagnostic ignored "-Wunused-parameter"
|
||
|
#endif
|
||
|
+#endif
|
||
|
static errcode_t unix_zeroout(io_channel channel, unsigned long long block,
|
||
|
unsigned long long count)
|
||
|
{
|
||
|
@@ -1197,9 +1199,11 @@ err:
|
||
|
unimplemented:
|
||
|
return EXT2_ET_UNIMPLEMENTED;
|
||
|
}
|
||
|
+#ifdef __GNUC_PREREQ
|
||
|
#if __GNUC_PREREQ (4, 6)
|
||
|
#pragma GCC diagnostic pop
|
||
|
#endif
|
||
|
+#endif
|
||
|
|
||
|
static struct struct_io_manager struct_unix_manager = {
|
||
|
.magic = EXT2_ET_MAGIC_IO_MANAGER,
|
||
|
diff --git a/lib/uuid/gen_uuid.c b/lib/uuid/gen_uuid.c
|
||
|
index 0198363..cc26ddc 100644
|
||
|
--- a/lib/uuid/gen_uuid.c
|
||
|
+++ b/lib/uuid/gen_uuid.c
|
||
|
@@ -484,7 +484,9 @@ static void close_all_fds(void)
|
||
|
}
|
||
|
#endif /* defined(USE_UUIDD) && defined(HAVE_SYS_UN_H) */
|
||
|
|
||
|
+#ifdef __GNUC_PREREQ
|
||
|
#if __GNUC_PREREQ (4, 6)
|
||
|
+#endif
|
||
|
#pragma GCC diagnostic push
|
||
|
#if !defined(USE_UUIDD) || !defined(HAVE_SYS_UN_H)
|
||
|
#pragma GCC diagnostic ignored "-Wunused-parameter"
|
||
|
@@ -572,9 +574,11 @@ fail:
|
||
|
#endif
|
||
|
return -1;
|
||
|
}
|
||
|
+#ifdef __GNUC_PREREQ
|
||
|
#if __GNUC_PREREQ (4, 6)
|
||
|
#pragma GCC diagnostic pop
|
||
|
#endif
|
||
|
+#endif
|
||
|
|
||
|
void uuid__generate_time(uuid_t out, int *num)
|
||
|
{
|
||
|
diff --git a/misc/e2undo.c b/misc/e2undo.c
|
||
|
index 71991e0..4f5dd9f 100644
|
||
|
--- a/misc/e2undo.c
|
||
|
+++ b/misc/e2undo.c
|
||
|
@@ -81,14 +81,18 @@ struct undo_key_block {
|
||
|
__le32 magic; /* KEYBLOCK_MAGIC number */
|
||
|
__le32 crc; /* block checksum */
|
||
|
__le64 reserved; /* zero */
|
||
|
+#ifdef __GNUC_PREREQ
|
||
|
#if __GNUC_PREREQ (4, 8)
|
||
|
#pragma GCC diagnostic push
|
||
|
#pragma GCC diagnostic ignored "-Wpedantic"
|
||
|
+#endif
|
||
|
#endif
|
||
|
struct undo_key keys[0]; /* keys, which come immediately after */
|
||
|
+#ifdef __GNUC_PREREQ
|
||
|
#if __GNUC_PREREQ (4, 8)
|
||
|
#pragma GCC diagnostic pop
|
||
|
#endif
|
||
|
+#endif
|
||
|
};
|
||
|
|
||
|
struct undo_key_info {
|
||
|
diff --git a/misc/filefrag.c b/misc/filefrag.c
|
||
|
index 56f84ed..4d63ef3 100644
|
||
|
--- a/misc/filefrag.c
|
||
|
+++ b/misc/filefrag.c
|
||
|
@@ -535,9 +535,11 @@ int main(int argc, char**argv)
|
||
|
char *end;
|
||
|
blocksize = strtoul(optarg, &end, 0);
|
||
|
if (end) {
|
||
|
+#ifdef __GNUC_PREREQ
|
||
|
#if __GNUC_PREREQ (7, 0)
|
||
|
#pragma GCC diagnostic push
|
||
|
#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
|
||
|
+#endif
|
||
|
#endif
|
||
|
switch (end[0]) {
|
||
|
case 'g':
|
||
|
@@ -555,8 +557,10 @@ int main(int argc, char**argv)
|
||
|
default:
|
||
|
break;
|
||
|
}
|
||
|
+#ifdef __GNUC_PREREQ
|
||
|
#if __GNUC_PREREQ (7, 0)
|
||
|
#pragma GCC diagnostic pop
|
||
|
+#endif
|
||
|
#endif
|
||
|
}
|
||
|
} else { /* Allow -b without argument for compat. Remove
|
||
|
diff --git a/misc/fuse2fs.c b/misc/fuse2fs.c
|
||
|
index 5c73895..bf09b55 100644
|
||
|
--- a/misc/fuse2fs.c
|
||
|
+++ b/misc/fuse2fs.c
|
||
|
@@ -118,14 +118,18 @@ typedef struct {
|
||
|
|
||
|
typedef struct {
|
||
|
u_int32_t a_version;
|
||
|
+#ifdef __GNUC_PREREQ
|
||
|
#if __GNUC_PREREQ (4, 8)
|
||
|
#pragma GCC diagnostic push
|
||
|
#pragma GCC diagnostic ignored "-Wpedantic"
|
||
|
+#endif
|
||
|
#endif
|
||
|
acl_ea_entry a_entries[0];
|
||
|
+#ifdef __GNUC_PREREQ
|
||
|
#if __GNUC_PREREQ (4, 8)
|
||
|
#pragma GCC diagnostic pop
|
||
|
#endif
|
||
|
+#endif
|
||
|
} acl_ea_header;
|
||
|
|
||
|
static inline size_t acl_ea_size(int count)
|
||
|
--
|
||
|
2.19.0
|
||
|
|