kumquat-buildroot/package/exfatprogs/0002-mkfs-fsck-use-PRIu64-PRIx64-to-printf-64-bit-types.patch
Peter Seiderer d6c4c840ab package/exfatprogs: fix 64-bit types printf compile failure
Fixes:

  - http://autobuild.buildroot.net/results/a7364a6b3801d7d18c30c7242c6faf19431fddfd

  mkfs.c:60:14: error: format '%llu' expects argument of type 'long long unsigned int', but argument 2 has type 'long unsigned int' [-Werror=format=]
    exfat_debug("Volume Length(sectors) : %llu\n",
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Signed-off-by: Peter Seiderer <ps.report@gmx.net>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2020-05-09 22:41:44 +02:00

145 lines
5.7 KiB
Diff
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

From fb96662501a13c7a82304b2c145146c4a8741bf8 Mon Sep 17 00:00:00 2001
From: Peter Seiderer <ps.report@gmx.net>
Date: Sat, 9 May 2020 13:43:37 +0200
Subject: [PATCH] mkfs/fsck: use PRIu64/PRIx64 to print 64-bit types
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Change cpu_to_le64()/cpu_to_le32()/cpu_to_le16() defines to
return determined types (instead of __le64/__le32/__le16) and
use PRIu64/PRIx64 to print 64-bit types.
Fixes:
mkfs.c:60:14: error: format %llu expects argument of type long long unsigned int, but argument 2 has type long unsigned int [-Werror=format=]
exfat_debug("Volume Length(sectors) : %llu\n",
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fsck.c:484:13: error: format %llu expects argument of type long long unsigned int, but argument 2 has type long unsigned int [-Werror=format=]
exfat_err("too large sector count: %llu\n, expected: %llu\n",
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fsck.c:851:13: error: format %llu expects argument of type long long unsigned int, but argument 2 has type long unsigned int [-Werror=format=]
exfat_err("valid size %llu greater than size %llu: %s\n",
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fsck.c:930:14: error: format %llx expects argument of type long long unsigned int, but argument 3 has type long unsigned int [-Werror=format=]
exfat_debug("start cluster %#x, size %#llx\n",
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fsck.c:938:13: error: format %llx expects argument of type long long unsigned int, but argument 2 has type long unsigned int [-Werror=format=]
exfat_err("invalid size of allocation bitmap. 0x%llx\n",
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fsck.c:992:13: error: format %llx expects argument of type long long unsigned int, but argument 2 has type long unsigned int [-Werror=format=]
exfat_err("invalid size of upcase table. 0x%llx\n",
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[Upstream: https://github.com/exfatprogs/exfatprogs/pull/91]
Signed-off-by: Peter Seiderer <ps.report@gmx.net>
---
fsck/fsck.c | 11 ++++++-----
include/exfat_ondisk.h | 6 +++---
mkfs/mkfs.c | 3 ++-
3 files changed, 11 insertions(+), 9 deletions(-)
diff --git a/fsck/fsck.c b/fsck/fsck.c
index 9e04407..6b48a17 100644
--- a/fsck/fsck.c
+++ b/fsck/fsck.c
@@ -8,6 +8,7 @@
#include <stdlib.h>
#include <stdio.h>
#include <getopt.h>
+#include <inttypes.h>
#include <string.h>
#include <errno.h>
#include <locale.h>
@@ -481,7 +482,7 @@ static bool exfat_boot_region_check(struct exfat *exfat)
if (le64_to_cpu(bs->bsx.vol_length) * EXFAT_SECTOR_SIZE(bs) >
exfat->blk_dev->size) {
- exfat_err("too large sector count: %llu\n, expected: %llu\n",
+ exfat_err("too large sector count: %" PRIu64 "\n, expected: %llu\n",
le64_to_cpu(bs->bsx.vol_length),
exfat->blk_dev->num_sectors);
goto err;
@@ -848,7 +849,7 @@ static int read_file_dentries(struct exfat_de_iter *iter,
if (le64_to_cpu(stream_de->stream_valid_size) > node->size) {
resolve_path_parent(&path_resolve_ctx, iter->parent, node);
- exfat_err("valid size %llu greater than size %llu: %s\n",
+ exfat_err("valid size %" PRIu64 " greater than size %llu: %s\n",
le64_to_cpu(stream_de->stream_valid_size), node->size,
path_resolve_ctx.local_path);
goto err;
@@ -927,7 +928,7 @@ static bool read_alloc_bitmap(struct exfat_de_iter *iter)
if (exfat_de_iter_get(iter, 0, &dentry))
return false;
- exfat_debug("start cluster %#x, size %#llx\n",
+ exfat_debug("start cluster %#x, size %#" PRIx64 "\n",
le32_to_cpu(dentry->bitmap_start_clu),
le64_to_cpu(dentry->bitmap_size));
@@ -935,7 +936,7 @@ static bool read_alloc_bitmap(struct exfat_de_iter *iter)
if (le64_to_cpu(dentry->bitmap_size) <
DIV_ROUND_UP(exfat->bit_count, 8)) {
- exfat_err("invalid size of allocation bitmap. 0x%llx\n",
+ exfat_err("invalid size of allocation bitmap. 0x%" PRIx64 "\n",
le64_to_cpu(dentry->bitmap_size));
return false;
}
@@ -989,7 +990,7 @@ static bool read_upcase_table(struct exfat_de_iter *iter)
size = (size_t)le64_to_cpu(dentry->upcase_size);
if (size > EXFAT_MAX_UPCASE_CHARS * sizeof(__le16) ||
size == 0 || size % sizeof(__le16)) {
- exfat_err("invalid size of upcase table. 0x%llx\n",
+ exfat_err("invalid size of upcase table. 0x%" PRIx64 "\n",
le64_to_cpu(dentry->upcase_size));
return false;
}
diff --git a/include/exfat_ondisk.h b/include/exfat_ondisk.h
index ae2827b..70546a3 100644
--- a/include/exfat_ondisk.h
+++ b/include/exfat_ondisk.h
@@ -26,9 +26,9 @@
#define cpu_to_le64(x) (x)
#endif
-#define le64_to_cpu(x) cpu_to_le64(x)
-#define le32_to_cpu(x) cpu_to_le32(x)
-#define le16_to_cpu(x) cpu_to_le16(x)
+#define le64_to_cpu(x) ((uint64_t)cpu_to_le64(x))
+#define le32_to_cpu(x) ((uint32_t)cpu_to_le32(x))
+#define le16_to_cpu(x) ((uint16_t)cpu_to_le16(x))
#define PBR_SIGNATURE 0xAA55
diff --git a/mkfs/mkfs.c b/mkfs/mkfs.c
index 021a51a..87035ef 100644
--- a/mkfs/mkfs.c
+++ b/mkfs/mkfs.c
@@ -13,6 +13,7 @@
#include <sys/ioctl.h>
#include <fcntl.h>
#include <getopt.h>
+#include <inttypes.h>
#include <errno.h>
#include <math.h>
#include <locale.h>
@@ -57,7 +58,7 @@ static void exfat_setup_boot_sector(struct pbr *ppbr,
memset(ppbr->boot_code, 0, 390);
ppbr->signature = cpu_to_le16(PBR_SIGNATURE);
- exfat_debug("Volume Length(sectors) : %llu\n",
+ exfat_debug("Volume Length(sectors) : %" PRIu64 "\n",
le64_to_cpu(pbsx->vol_length));
exfat_debug("FAT Offset(sector offset) : %u\n",
le32_to_cpu(pbsx->fat_offset));
--
2.26.2