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 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211
|
From: Tzafrir Cohen <tzafrir@debian.org>
Date: Sun, 28 Jan 2024 15:30:12 +0200
Subject: [PATCH 3/3] Avoid all arch-dependent format macros
---
common/compatibility.h | 79 +++-------------------------------
tools_layouts/adb_to_c_utils.h | 75 ++++----------------------------
2 files changed, 15 insertions(+), 139 deletions(-)
diff --git a/common/compatibility.h b/common/compatibility.h
index 00c3b646..a2bb5149 100644
--- a/common/compatibility.h
+++ b/common/compatibility.h
@@ -40,55 +40,8 @@
#define COMPATIBILITY_H
#include <stdio.h>
+#include <inttypes.h>
-/* define macros to the architecture of the CPU */
-#if defined(__linux__) || defined(__FreeBSD__)
-#if defined(__i386__)
-#define ARCH_x86
-#elif defined(__x86_64__)
-#define ARCH_x86_64
-#elif defined(__ia64__)
-#define ARCH_ia64
-#elif defined(__m68k__)
-#define ARCH_m68k
-#elif defined(__hppa__)
-#define ARCH_hppa
-#elif defined(__PPC64__) || defined(__s390x__)
-#define ARCH_ppc64
-#elif defined(__PPC__)
-#define ARCH_ppc
-#elif defined(__aarch64__)
-#define ARCH_arm64
-#elif defined(__arm__)
-#define ARCH_arm6l
-#elif defined(__riscv)
-#define ARCH_riscv
-#elif defined(__loongarch_lp64)
-#define ARCH_loongarch64
-#elif defined(__e2k__)
-#define ARCH_e2k
-#else
-#error Unknown CPU architecture using the linux OS
-#endif
-#elif defined(__MINGW32__) || defined(__MINGW64__) /* Windows MINGW */
-#if defined(__MINGW32__)
-#define ARCH_x86
-#elif defined(__MINGW64__)
-#define ARCH_x86_64
-#else
-#error Unknown CPU architecture using the windows-mingw OS
-#endif
-#elif defined(_WIN32) || defined(_WIN64) /* Windows */
-#if defined(_WIN32)
-#define ARCH_x86
-#elif defined(_WIN64)
-#define ARCH_x86_64
-#else
-#error Unknown CPU architecture using the windows OS
-#endif
-#else /* Unknown */
-#error Unknown OS
-#endif
/* define macros for print fields */
#define U32D_FMT "%u"
@@ -98,31 +51,13 @@
#define U16H_FMT "0x%04x"
#define U8H_FMT "0x%02x"
-#if defined(ARCH_x86) || defined(ARCH_ppc) || defined(UEFI_BUILD) || defined(ARCH_arm6l) || defined(ARCH_m68k) || \
- defined(ARCH_hppa)
-#if defined(__MINGW32__) || defined(__MINGW64__)
-#include <inttypes.h>
-#define U64D_FMT "0x%" PRId64
-#define U64H_FMT "0x%" PRIx64
+//#define U64D_FMT "0x%" PRId64
+#define U64D_FMT "0x%" PRIu64
+#define U64H_FMT "0x%016" PRIx64
#define U64H_FMT_GEN "" PRIx64
-#define U48H_FMT "0x%" PRIx64
-#define U64D_FMT_GEN "" PRId64
-#else
-#define U64D_FMT "%llu"
-#define U64H_FMT "0x%016llx"
-#define U64H_FMT_GEN "llx"
-#define U48H_FMT "0x%012llx"
-#define U64D_FMT_GEN "llu"
-#endif
-#elif defined(ARCH_ia64) || defined(ARCH_x86_64) || defined(ARCH_ppc64) || defined(ARCH_arm64) || defined(ARCH_riscv) || defined(ARCH_loongarch64) || defined(ARCH_e2k)
-#define U64D_FMT "%lu"
-#define U64H_FMT "0x%016lx"
-#define U48H_FMT "0x%012lx"
-#define U64H_FMT_GEN "lx"
-#define U64D_FMT_GEN "lu"
-#else
-#error Unknown architecture
-#endif /* ARCH */
+#define U48H_FMT "0x%012" PRIx64
+//#define U64D_FMT_GEN "" PRId64
+#define U64D_FMT_GEN "" PRIu64
/*
* Only for architectures which can't do swab by themselves
diff --git a/tools_layouts/adb_to_c_utils.h b/tools_layouts/adb_to_c_utils.h
index 0175f5f0..eb619e79 100644
--- a/tools_layouts/adb_to_c_utils.h
+++ b/tools_layouts/adb_to_c_utils.h
@@ -44,6 +44,7 @@
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
+#include <inttypes.h>
// for htonl etc...
#if defined(_WIN32) || defined(_WIN64)
@@ -124,55 +125,6 @@ extern "C"
#endif
-/* define macros to the architecture of the CPU */
-#if defined(__linux__) || defined(__FreeBSD__) /* __linux || __FreeBSD__ */
-#if defined(__i386__)
-#define ARCH_x86
-#elif defined(__x86_64__)
-#define ARCH_x86_64
-#elif defined(__ia64__)
-#define ARCH_ia64
-#elif defined(__m68k__)
-#define ARCH_m68k
-#elif defined(__hppa__)
-#define ARCH_hppa
-#elif defined(__PPC64__) || defined(__s390x__)
-#define ARCH_ppc64
-#elif defined(__PPC__)
-#define ARCH_ppc
-#elif defined(__aarch64__)
-#define ARCH_arm64
-#elif defined(__arm__)
-#define ARCH_arm6l
-#elif defined(__riscv)
-#define ARCH_riscv
-#elif defined(__loongarch_lp64)
-#define ARCH_loongarch64
-#elif defined(__e2k__)
-#define ARCH_e2k
-#else
-#error Unknown CPU architecture using the linux OS
-#endif
-#elif defined(__MINGW32__) || defined(__MINGW64__) /* Windows MINGW */
-#if defined(__MINGW32__)
-#define ARCH_x86
-#elif defined(__MINGW64__)
-#define ARCH_x86_64
-#else
-#error Unknown CPU architecture using the windows-mingw OS
-#endif
-#elif defined(_WIN32) || defined(_WIN64) /* Windows */
-#if defined(_WIN32)
-#define ARCH_x86
-#elif defined(_WIN64)
-#define ARCH_x86_64
-#else
-#error Unknown CPU architecture using the windows OS
-#endif
-#else /* Unknown */
-#error Unknown OS
-#endif
-
/* define macros for print fields */
#define U32D_FMT "%u"
#define U32H_FMT "0x%08x"
@@ -181,24 +133,13 @@ extern "C"
#define U16H_FMT "0x%04x"
#define U8H_FMT "0x%02x"
-#if defined(ARCH_x86) || defined(ARCH_ppc) || defined(UEFI_BUILD) || defined(ARCH_arm6l) || defined(ARCH_m68k) || defined(ARCH_hppa)
-#if defined(__MINGW32__) || defined(__MINGW64__)
-#include <inttypes.h>
-#define U64D_FMT "0x%" PRId64
-#define U64H_FMT "0x%" PRIx64
-#define U48H_FMT "0x%" PRIx64
-#else
-#define U64D_FMT "%llu"
-#define U64H_FMT "0x%016llx"
-#define U48H_FMT "0x%012llx"
-#endif
-#elif defined(ARCH_ia64) || defined(ARCH_x86_64) || defined(ARCH_ppc64) || defined(ARCH_arm64) || defined(ARCH_riscv) || defined(ARCH_loongarch64) || defined(ARCH_e2k)
-#define U64D_FMT "%lu"
-#define U64H_FMT "0x%016lx"
-#define U48H_FMT "0x%012lx"
-#else
-#error Unknown architecture
-#endif /* ARCH */
+//#define U64D_FMT "0x%" PRId64
+#define U64D_FMT "0x%" PRIu64
+#define U64H_FMT "0x%016" PRIx64
+#define U64H_FMT_GEN "" PRIx64
+#define U48H_FMT "0x%012" PRIx64
+//#define U64D_FMT_GEN "" PRId64
+#define U64D_FMT_GEN "" PRIu64
#if !defined(_WIN32) && !defined(_WIN64) /* Linux */
#include <sys/types.h>
--
2.43.0
|