summaryrefslogtreecommitdiff
path: root/sys-apps/nvme-cli/files/nvme-cli-2.9.1-musl-stdint.patch
blob: 6ecdac41e3cc655961ee2f1df86014cf05ce5009 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
https://github.com/linux-nvme/nvme-cli/pull/2332

From 61bbd959bc069e4552e50a276b8a0e1487545ec2 Mon Sep 17 00:00:00 2001
From: Sam James <sam@gentoo.org>
Date: Sat, 4 May 2024 09:13:06 +0100
Subject: [PATCH 1/2] Use C99 types for uint32_t

<stdint.h> provides `uint32_t`, while `u_int_32` is an unofficial/internal
typedef that glibc happens to provide. This fixes the build on musl.

Bug: https://bugs.gentoo.org/931194
Signed-off-by: Sam James <sam@gentoo.org>
--- a/nvme.c
+++ b/nvme.c
@@ -34,6 +34,7 @@
 #include <inttypes.h>
 #include <locale.h>
 #include <stdio.h>
+#include <stdint.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
@@ -9075,8 +9076,8 @@ static int check_dhchap_key(int argc, char **argv, struct command *command, stru
 
 	unsigned char decoded_key[128];
 	unsigned int decoded_len;
-	u_int32_t crc = crc32(0L, NULL, 0);
-	u_int32_t key_crc;
+	uint32_t crc = crc32(0L, NULL, 0);
+	uint32_t key_crc;
 	int err = 0, hmac;
 	struct config {
 		char	*key;
@@ -9144,10 +9145,10 @@ static int check_dhchap_key(int argc, char **argv, struct command *command, stru
 		return -EINVAL;
 	}
 	crc = crc32(crc, decoded_key, decoded_len);
-	key_crc = ((u_int32_t)decoded_key[decoded_len]) |
-		   ((u_int32_t)decoded_key[decoded_len + 1] << 8) |
-		   ((u_int32_t)decoded_key[decoded_len + 2] << 16) |
-		   ((u_int32_t)decoded_key[decoded_len + 3] << 24);
+	key_crc = ((uint32_t)decoded_key[decoded_len]) |
+		   ((uint32_t)decoded_key[decoded_len + 1] << 8) |
+		   ((uint32_t)decoded_key[decoded_len + 2] << 16) |
+		   ((uint32_t)decoded_key[decoded_len + 3] << 24);
 	if (key_crc != crc) {
 		nvme_show_error("CRC mismatch (key %08x, crc %08x)", key_crc, crc);
 		return -EINVAL;
--- a/util/base64.c
+++ b/util/base64.c
@@ -20,6 +20,7 @@
  * MA  02110-1301, USA.
  */
 
+#include <stdint.h>
 #include <stdlib.h>
 #include <string.h>
 #include <errno.h>
@@ -42,7 +43,7 @@ static const char base64_table[65] =
 int base64_encode(const unsigned char *src, int srclen, char *dst)
 {
 	int i, bits = 0;
-	u_int32_t ac = 0;
+	uint32_t ac = 0;
 	char *cp = dst;
 
 	for (i = 0; i < srclen; i++) {
@@ -77,7 +78,7 @@ int base64_encode(const unsigned char *src, int srclen, char *dst)
  */
 int base64_decode(const char *src, int srclen, unsigned char *dst)
 {
-	u_int32_t ac = 0;
+	uint32_t ac = 0;
 	int i, bits = 0;
 	unsigned char *bp = dst;
 

From 51208e30da0bfb12340d3a4f3afa0472312a8541 Mon Sep 17 00:00:00 2001
From: Sam James <sam@gentoo.org>
Date: Sat, 4 May 2024 09:15:03 +0100
Subject: [PATCH 2/2] `u_char` -> `unsigned char`

`u_char` is not a standard name for `unsigned char` and may not work;
some implementations may provide it for convenience.

Signed-off-by: Sam James <sam@gentoo.org>
--- a/plugins/innogrit/typedef.h
+++ b/plugins/innogrit/typedef.h
@@ -53,14 +53,14 @@ struct vsc_smart_log {
 	unsigned int low_pwr_cnt;
 	unsigned int wa;
 	unsigned int ps3_entry_cnt;
-	u_char highest_temp[4];
+	unsigned char highest_temp[4];
 	unsigned int weight_ec;
 	unsigned int slc_cap_mb;
 	unsigned long long nand_page_write_cnt;
 	unsigned int program_error_cnt;
 	unsigned int erase_error_cnt;
-	u_char flash_type;
-	u_char reserved2[3];
+	unsigned char flash_type;
+	unsigned char reserved2[3];
 	unsigned int hs_crc_err_cnt;
 	unsigned int ddr_ecc_err_cnt;
 	unsigned int reserved3[44];