Skip to content

Commit 0d6c4ef

Browse files
committed
Fix: Propagate big-endian & SIMD flags
1 parent 04eafca commit 0d6c4ef

File tree

5 files changed

+24
-857
lines changed

5 files changed

+24
-857
lines changed

CMakeLists.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -337,14 +337,14 @@ function (set_compiler_flags target cpp_standard target_arch compiler_id)
337337
endif ()
338338
endif ()
339339

340-
# Define SZ_DETECT_BIG_ENDIAN macro based on system byte order
340+
# Define SZ_IS_BIG_ENDIAN_ macro based on system byte order
341341
if (CMAKE_C_BYTE_ORDER STREQUAL "BIG_ENDIAN")
342-
set(SZ_DETECT_BIG_ENDIAN 1)
342+
set(SZ_IS_BIG_ENDIAN_ 1)
343343
else ()
344-
set(SZ_DETECT_BIG_ENDIAN 0)
344+
set(SZ_IS_BIG_ENDIAN_ 0)
345345
endif ()
346346

347-
target_compile_definitions(${target} PRIVATE "SZ_DETECT_BIG_ENDIAN=${SZ_DETECT_BIG_ENDIAN}")
347+
target_compile_definitions(${target} PRIVATE "SZ_IS_BIG_ENDIAN_=${SZ_IS_BIG_ENDIAN_}")
348348

349349
# Sanitizer options for Debug mode
350350
if (CMAKE_BUILD_TYPE STREQUAL "Debug")

build.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,11 @@ fn build_stringzilla() -> HashMap<String, bool> {
4141

4242
// Set endian-specific macro
4343
if target_endian == "big" {
44-
build.define("SZ_DETECT_BIG_ENDIAN", "1");
45-
flags.insert("SZ_DETECT_BIG_ENDIAN".to_string(), true);
44+
build.define("SZ_IS_BIG_ENDIAN_", "1");
45+
flags.insert("SZ_IS_BIG_ENDIAN_".to_string(), true);
4646
} else {
47-
build.define("SZ_DETECT_BIG_ENDIAN", "0");
48-
flags.insert("SZ_DETECT_BIG_ENDIAN".to_string(), false);
47+
build.define("SZ_IS_BIG_ENDIAN_", "0");
48+
flags.insert("SZ_IS_BIG_ENDIAN_".to_string(), false);
4949
}
5050

5151
if target_arch == "x86_64" && target_bits == "64" {

include/stringzilla/types.h

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -218,63 +218,63 @@
218218
* All of those can be controlled by the user.
219219
*/
220220
#if !defined(SZ_USE_HASWELL)
221-
#ifdef __AVX2__
221+
#if SZ_IS_64BIT_X86_ && defined(__AVX2__)
222222
#define SZ_USE_HASWELL (1)
223223
#else
224224
#define SZ_USE_HASWELL (0)
225225
#endif
226226
#endif
227227

228228
#if !defined(SZ_USE_SKYLAKE)
229-
#ifdef __AVX512F__
229+
#if SZ_IS_64BIT_X86_ && defined(__AVX512F__)
230230
#define SZ_USE_SKYLAKE (1)
231231
#else
232232
#define SZ_USE_SKYLAKE (0)
233233
#endif
234234
#endif
235235

236236
#if !defined(SZ_USE_ICE)
237-
#ifdef __AVX512BW__
237+
#if SZ_IS_64BIT_X86_ && defined(__AVX512BW__)
238238
#define SZ_USE_ICE (1)
239239
#else
240240
#define SZ_USE_ICE (0)
241241
#endif
242242
#endif
243243

244244
#if !defined(SZ_USE_NEON)
245-
#ifdef __ARM_NEON
245+
#if SZ_IS_64BIT_ARM_ && defined(__ARM_NEON)
246246
#define SZ_USE_NEON (1)
247247
#else
248248
#define SZ_USE_NEON (0)
249249
#endif
250250
#endif
251251

252252
#if !defined(SZ_USE_SVE)
253-
#ifdef __ARM_FEATURE_SVE
253+
#if SZ_IS_64BIT_ARM_ && defined(__ARM_FEATURE_SVE)
254254
#define SZ_USE_SVE (1)
255255
#else
256256
#define SZ_USE_SVE (0)
257257
#endif
258258
#endif
259259

260260
#if !defined(SZ_USE_SVE2)
261-
#ifdef __ARM_FEATURE_SVE2
261+
#if SZ_IS_64BIT_ARM_ && defined(__ARM_FEATURE_SVE2)
262262
#define SZ_USE_SVE2 (1)
263263
#else
264264
#define SZ_USE_SVE2 (0)
265265
#endif
266266
#endif
267267

268268
#if !defined(SZ_USE_NEON_AES)
269-
#ifdef __ARM_FEATURE_AES
269+
#if SZ_IS_64BIT_ARM_ && defined(__ARM_FEATURE_AES)
270270
#define SZ_USE_NEON_AES (1)
271271
#else
272272
#define SZ_USE_NEON_AES (0)
273273
#endif
274274
#endif
275275

276276
#if !defined(SZ_USE_SVE2_AES)
277-
#ifdef __ARM_FEATURE_SVE2_AES
277+
#if SZ_IS_64BIT_ARM_ && defined(__ARM_FEATURE_SVE2_AES)
278278
#define SZ_USE_SVE2_AES (1)
279279
#else
280280
#define SZ_USE_SVE2_AES (0)

0 commit comments

Comments
 (0)