]> git.ipfire.org Git - thirdparty/zlib-ng.git/commitdiff
Make feature macro tests more consistent
authorRobert Kausch <robert.kausch@freac.org>
Wed, 21 Jan 2026 23:15:08 +0000 (00:15 +0100)
committerHans Kristian Rosbach <hk-github@circlestorm.org>
Sat, 24 Jan 2026 01:01:39 +0000 (02:01 +0100)
- Test feature macros before any includes
- Use #ifdef over #if defined() for single macro tests
- Always include zbuild.h first

37 files changed:
arch/arm/adler32_neon.c
arch/arm/arm_features.c
arch/arm/chunkset_neon.c
arch/arm/crc32_armv8.c
arch/arm/crc32_armv8_pmull_eor3.c
arch/arm/slide_hash_armv6.c
arch/arm/slide_hash_neon.c
arch/loongarch/adler32_lsx.c
arch/loongarch/chunkset_lasx.c
arch/loongarch/chunkset_lsx.c
arch/loongarch/crc32_la.c
arch/loongarch/loongarch_features.c
arch/loongarch/slide_hash_lasx.c
arch/loongarch/slide_hash_lsx.c
arch/power/adler32_power8.c
arch/power/adler32_vmx.c
arch/power/chunkset_power8.c
arch/power/compare256_power9.c
arch/power/crc32_power8.c
arch/power/power_features.c
arch/power/power_intrins.h
arch/riscv/adler32_rvv.c
arch/riscv/chunkset_rvv.c
arch/riscv/crc32_zbc.c
arch/riscv/riscv_features.c
arch/riscv/slide_hash_rvv.c
arch/s390/crc32-vx.c
arch/s390/s390_features.c
arch/x86/adler32_sse42.c
arch/x86/adler32_ssse3.c
arch/x86/chunkset_avx2.c
arch/x86/chunkset_avx512.c
arch/x86/chunkset_sse2.c
arch/x86/chunkset_ssse3.c
arch/x86/slide_hash_avx2.c
arch/x86/slide_hash_sse2.c
arch/x86/x86_features.c

index 0b41e4d2b5d0a051f0defed6b3ba0e98f5f332b2..b09594736f8581e7bd9a270f6fb83af99af41628 100644 (file)
@@ -5,10 +5,12 @@
  *   Adam Stylinski <kungfujesus06@gmail.com>
  * For conditions of distribution and use, see copyright notice in zlib.h
  */
+
 #ifdef ARM_NEON
-#include "neon_intrins.h"
+
 #include "zbuild.h"
 #include "adler32_p.h"
+#include "neon_intrins.h"
 
 static const uint16_t ALIGNED_(64) taps[64] = {
     64, 63, 62, 61, 60, 59, 58, 57,
index ce5ab9d0e9c7f47e5e1cd7bf9f30c462359c7a97..96e7679fe5694a4ab687a00786d275bb555d4f37 100644 (file)
@@ -1,8 +1,8 @@
+#ifdef ARM_FEATURES
+
 #include "zbuild.h"
 #include "arm_features.h"
 
-#ifdef ARM_FEATURES
-
 #if defined(HAVE_SYS_AUXV_H)
 #  include <sys/auxv.h>
 #  ifdef ARM_ASM_HWCAP
index 271f7f92b880288c342a5282a4c25250ec146191..a208451547aeb8b68d9948f3f9e89b14eeccfd40 100644 (file)
@@ -3,9 +3,10 @@
  */
 
 #ifdef ARM_NEON
-#include "neon_intrins.h"
+
 #include "zbuild.h"
 #include "zmemory.h"
+#include "neon_intrins.h"
 #include "arch/generic/chunk_128bit_perm_idx_lut.h"
 
 typedef uint8x16_t chunk_t;
index 8f72f3c0db2189da05a4b207439978a1b2ce21b5..7d5d1b939a9ca7c9cfca82be65385bce16c9def3 100644 (file)
@@ -4,10 +4,11 @@
  * For conditions of distribution and use, see copyright notice in zlib.h
  */
 
-#if defined(ARM_CRC32)
-#include "acle_intrins.h"
+#ifdef ARM_CRC32
+
 #include "zbuild.h"
 #include "crc32.h"
+#include "acle_intrins.h"
 
 Z_INTERNAL Z_TARGET_CRC uint32_t crc32_armv8(uint32_t crc, const uint8_t *buf, size_t len) {
     uint32_t c = ~crc;
index bc1df8cd30301ca70b6fc723ccc512e2aa597e5a..d9912907ee66de4fd0d38d172a2fd88fc20de4aa 100644 (file)
@@ -7,7 +7,8 @@
  * Uses 3-way parallel scalar CRC + 9 PMULL vector lanes, processing 192 bytes/iter.
  */
 
-#if defined(ARM_PMULL_EOR3)
+#ifdef ARM_PMULL_EOR3
+
 #include "zbuild.h"
 #include "zutil.h"
 #include "acle_intrins.h"
index da4f51e0afc8240f4d372f8c3be6019b74753015..da22a993e9f962adabd44352b8f516cdeba8283c 100644 (file)
@@ -3,10 +3,11 @@
  * For conditions of distribution and use, see copyright notice in zlib.h
  */
 
-#if defined(ARM_SIMD)
-#include "acle_intrins.h"
+#ifdef ARM_SIMD
+
 #include "zbuild.h"
 #include "deflate.h"
+#include "acle_intrins.h"
 
 /* SIMD version of hash_chain rebase */
 static inline void slide_hash_chain(Pos *table, uint32_t entries, uint16_t wsize) {
index f319f987908a224f60fc106cb0c4fce29a945d57..3b954d17eea782f00ba2b9f9c9c5e04db97c662e 100644 (file)
@@ -9,9 +9,10 @@
  */
 
 #ifdef ARM_NEON
-#include "neon_intrins.h"
+
 #include "zbuild.h"
 #include "deflate.h"
+#include "neon_intrins.h"
 
 /* SIMD version of hash_chain rebase */
 static inline void slide_hash_chain(Pos *table, uint32_t entries, uint16_t wsize) {
index 8f277b43eaff2ae495d07738bbf2f6e3d433602f..e0c8ca9694b08d9c8ef9798472e7494d2d602ae7 100644 (file)
@@ -7,11 +7,11 @@
  * For conditions of distribution and use, see copyright notice in zlib.h
  */
 
+#ifdef LOONGARCH_LSX
+
 #include "zbuild.h"
 #include "adler32_p.h"
 
-#ifdef LOONGARCH_LSX
-
 #include <lsxintrin.h>
 #include "lsxintrin_ext.h"
 
index 6ac43909799177fb3ee37f84c9379ff56b5674bb..38000474bfbb4df027b54a0409c71d8828d1c8fd 100644 (file)
@@ -2,11 +2,12 @@
  * Copyright (C) 2025 Vladislav Shchapov <vladislav@shchapov.ru>
  * For conditions of distribution and use, see copyright notice in zlib.h
  */
-#include "zbuild.h"
-#include "zmemory.h"
 
 #ifdef LOONGARCH_LASX
 
+#include "zbuild.h"
+#include "zmemory.h"
+
 #include <lasxintrin.h>
 #include "lasxintrin_ext.h"
 #include "lsxintrin_ext.h"
index 0253de2c8b128ea71867c80621c949a57603c2a8..631052d74ae735cf46d7870d353f3d63449108b9 100644 (file)
@@ -3,10 +3,11 @@
  * For conditions of distribution and use, see copyright notice in zlib.h
  */
 
+#ifdef LOONGARCH_LSX
+
 #include "zbuild.h"
 #include "zmemory.h"
 
-#if defined(LOONGARCH_LSX)
 #include <lsxintrin.h>
 #include "lsxintrin_ext.h"
 #include "arch/generic/chunk_128bit_perm_idx_lut.h"
index 912488c77e46aa74cf6178b18f25ced2c7a528d6..de7e768ec026d2924a30c053517875acf70a811e 100644 (file)
@@ -3,9 +3,11 @@
  * For conditions of distribution and use, see copyright notice in zlib.h
  */
 
-#if defined(LOONGARCH_CRC)
+#ifdef LOONGARCH_CRC
+
 #include "zbuild.h"
 #include "crc32.h"
+
 #include <stdint.h>
 #include <larchintrin.h>
 
index 0ebd8b4eb7712c5fbde6d0f961e1fc9f8fa698b7..bedf8499f7d31c7a69121a70d4753c29a21cd1b0 100644 (file)
@@ -5,11 +5,11 @@
  * For conditions of distribution and use, see copyright notice in zlib.h
  */
 
+#ifdef LOONGARCH_FEATURES
+
 #include "zbuild.h"
 #include "loongarch_features.h"
 
-#ifdef LOONGARCH_FEATURES
-
 #include <larchintrin.h>
 
 /*
index 335ed5c364c711a94c6462f79cb5f6b980d705a8..11c45d7058667a68999300e05337610f23dbdcca 100644 (file)
  *
  * For conditions of distribution and use, see copyright notice in zlib.h
  */
-#include "zbuild.h"
-#include "deflate.h"
 
 #ifdef LOONGARCH_LASX
 
+#include "zbuild.h"
+#include "deflate.h"
+
 #include <lasxintrin.h>
 
 static inline void slide_hash_chain(Pos *table, uint32_t entries, const __m256i wsize) {
index 4bd68a849dd5ceae0e2fca584afecb06f78b9493..c3d58e9c750da1ed6b1025c2a6ad0dd658837b1b 100644 (file)
@@ -9,11 +9,12 @@
  *
  * For conditions of distribution and use, see copyright notice in zlib.h
  */
-#include "zbuild.h"
-#include "deflate.h"
 
 #ifdef LOONGARCH_LSX
 
+#include "zbuild.h"
+#include "deflate.h"
+
 #include <lsxintrin.h>
 #include <assert.h>
 
index dfa3f7beb15e8759519d82419643bbc5d8de590e..b002e4ed3a5f8025d753d394e1bb5645d0ea9f52 100644 (file)
 
 #ifdef POWER8_VSX
 
-#include <altivec.h>
 #include "zbuild.h"
 #include "adler32_p.h"
 
+#include <altivec.h>
+
 /* Vector across sum unsigned int (saturate).  */
 static inline vector unsigned int vec_sumsu(vector unsigned int __a, vector unsigned int __b) {
     __b = vec_sld(__a, __a, 8);
index de8cd40404b74c924b33415951aa446be80a519a..b1371da9504fc9327dcaf5c575dcb467b6ab2918 100644 (file)
@@ -6,11 +6,13 @@
  */
 
 #ifdef PPC_VMX
-#include <altivec.h>
+
 #include "zbuild.h"
 #include "zendian.h"
 #include "adler32_p.h"
 
+#include <altivec.h>
+
 #define vmx_zero()  (vec_splat_u32(0))
 
 static inline void vmx_handle_head_or_tail(uint32_t *pair, const uint8_t *buf, size_t len) {
index c7e560bb9297ecce0fb6ad5cb5e9cc845c6e1284..f9855e677e4c905276b1a4af564f61cb9df45c70 100644 (file)
@@ -3,10 +3,12 @@
  */
 
 #ifdef POWER8_VSX
-#include <altivec.h>
+
 #include "zbuild.h"
 #include "zmemory.h"
 
+#include <altivec.h>
+
 typedef vector unsigned char chunk_t;
 
 #define HAVE_CHUNKMEMSET_2
index 2875719c47c7c5cbe919f89e7ea5885fe0b05d66..99c3b0b6d1483923ce1e329e3605bfa5bef88817 100644 (file)
@@ -4,12 +4,14 @@
  */
 
 #ifdef POWER9
-#include <altivec.h>
+
 #include "zbuild.h"
 #include "zmemory.h"
 #include "deflate.h"
 #include "zendian.h"
 
+#include <altivec.h>
+
 /* Older versions of GCC misimplemented semantics for these bit counting builtins.
  * https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=3f30f2d1dbb3228b8468b26239fe60c2974ce2ac */
 #if defined(__GNUC__) && !defined(__clang__) && (__GNUC__ < 12)
index 0ec574e6e8e6de38d1debc5d48bf95412fc98aa1..2d118a9c060b3a57db2d3abc7dce601efe10761d 100644 (file)
@@ -27,9 +27,8 @@
 
 #ifdef POWER8_VSX_CRC32
 
-#include <altivec.h>
-#include "zendian.h"
 #include "zbuild.h"
+#include "zendian.h"
 
 #include "crc32_constants.h"
 #include "crc32_braid_tbl.h"
index d3c55c6ae5ca72dbde632b4e2f46d38f64775c6c..148f30a97467dba69b3f4196aa69e491de29244a 100644 (file)
@@ -4,6 +4,11 @@
  * For conditions of distribution and use, see copyright notice in zlib.h
  */
 
+#if defined(PPC_FEATURES) || defined(POWER_FEATURES)
+
+#include "zbuild.h"
+#include "power_features.h"
+
 #ifdef HAVE_SYS_AUXV_H
 #  include <sys/auxv.h>
 #endif
@@ -13,8 +18,6 @@
 #ifdef __FreeBSD__
 #  include <machine/cpu.h>
 #endif
-#include "zbuild.h"
-#include "power_features.h"
 
 void Z_INTERNAL power_check_features(struct power_cpu_features *features) {
 #ifdef PPC_FEATURES
@@ -47,3 +50,5 @@ void Z_INTERNAL power_check_features(struct power_cpu_features *features) {
 #endif
 #endif
 }
+
+#endif
index cf71986563af4190e712d8352c1553ee2ed260a0..965387c9e977f7bfab1b3d17c5404ad0b7944d14 100644 (file)
@@ -12,6 +12,8 @@
 #ifndef POWER_INTRINS_H
 #define POWER_INTRINS_H
 
+#include <altivec.h>
+
 #if defined (__clang__)
 /*
  * These stubs fix clang incompatibilities with GCC builtins.
index 9ae31b30170f2ca471320585634e8c19c0e0eaf6..cd1d68db24076b9feed62ad1e2b0399bf1be0c13 100644 (file)
@@ -6,12 +6,12 @@
 
 #ifdef RISCV_RVV
 
-#include <riscv_vector.h>
-#include <stdint.h>
-
 #include "zbuild.h"
 #include "adler32_p.h"
 
+#include <riscv_vector.h>
+#include <stdint.h>
+
 Z_FORCEINLINE static uint32_t adler32_copy_impl(uint32_t adler, uint8_t* restrict dst, const uint8_t *src, size_t len, int COPY) {
     /* split Adler-32 into component sums */
     uint32_t sum2 = (adler >> 16) & 0xffff;
index c8db1dc43f5393763778f6c39f863ddcc84d76e3..6b35f30daa10fc425bc15c7aa7aae0ab06c3cc8b 100644 (file)
@@ -6,9 +6,10 @@
 
 #ifdef RISCV_RVV
 
-#include <riscv_vector.h>
 #include "zbuild.h"
 
+#include <riscv_vector.h>
+
 /*
  * RISC-V glibc would enable RVV optimized memcpy at runtime by IFUNC,
  * so we prefer using large size chunk and copy memory as much as possible.
index 60d27dd91ddba6417ce3d7aa5026f967627230c9..0283f24d77b159b65eaed9b1d3881339f13633c2 100644 (file)
@@ -4,9 +4,11 @@
  * For conditions of distribution and use, see copyright notice in zlib.h
  */
 
-#if defined(RISCV_CRC32_ZBC)
+#ifdef RISCV_CRC32_ZBC
+
 #include "zbuild.h"
 #include "arch_functions.h"
+
 #include <stdint.h>
 
 #define CLMUL_MIN_LEN 16   // Minimum size of buffer for _crc32_clmul
index 5b2ceae1e129ff4b309b6088371a691ab9a145e0..4eb49efe99504a3bfcabee3202031a33cbd574b0 100644 (file)
@@ -1,5 +1,8 @@
 #ifdef RISCV_FEATURES
 
+#include "zbuild.h"
+#include "riscv_features.h"
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -9,9 +12,6 @@
 #  include <sys/auxv.h>
 #endif
 
-#include "zbuild.h"
-#include "riscv_features.h"
-
 #define ISA_V_HWCAP (1 << ('v' - 'a'))
 #define ISA_ZBC_HWCAP (1 << 29)
 
index 6f53d7a13ad81b15cc36d347e241603382c7323e..e794c38204e86c322d4a7d37b768ad15690bc28d 100644 (file)
@@ -6,11 +6,11 @@
 
 #ifdef RISCV_RVV
 
-#include <riscv_vector.h>
-
 #include "zbuild.h"
 #include "deflate.h"
 
+#include <riscv_vector.h>
+
 static inline void slide_hash_chain(Pos *table, uint32_t entries, uint16_t wsize) {
     size_t vl;
     while (entries > 0) {
index 085ee232836d52e22e514b64e424451bf728e767..7d0de86293cc08526db83ec4238dfd9fae071295 100644 (file)
  * relicensed under the zlib license.
  */
 
+#ifdef S390_CRC32_VX
+
 #include "zbuild.h"
 #include "arch_functions.h"
 
-#ifdef S390_CRC32_VX
-
 #include <vecintrin.h>
 
 typedef unsigned char uv16qi __attribute__((vector_size(16)));
index deef58a5c96caf693404265bfb46c32def549f1b..dabb578a07741ea7631889dcdc3af5d2fa6ea45c 100644 (file)
@@ -1,8 +1,8 @@
+#ifdef S390_FEATURES
+
 #include "zbuild.h"
 #include "s390_features.h"
 
-#ifdef S390_FEATURES
-
 #ifdef HAVE_SYS_AUXV_H
 #  include <sys/auxv.h>
 #endif
index a30b7753186a35e10d07e3549c39bc902019ac33..c611034aba98420e7fd714de12f552ec8b65844d 100644 (file)
@@ -6,12 +6,12 @@
  * For conditions of distribution and use, see copyright notice in zlib.h
  */
 
+#ifdef X86_SSE42
+
 #include "zbuild.h"
 #include "adler32_p.h"
 #include "adler32_ssse3_p.h"
 
-#ifdef X86_SSE42
-
 #include <immintrin.h>
 
 Z_INTERNAL uint32_t adler32_copy_sse42(uint32_t adler, uint8_t *dst, const uint8_t *src, size_t len) {
index 3b261629556c0a4acd33c81838d0f80b84b1f728..91003fab17545edb56963481705237c92c3e1b76 100644 (file)
@@ -6,12 +6,12 @@
  * For conditions of distribution and use, see copyright notice in zlib.h
  */
 
+#ifdef X86_SSSE3
+
 #include "zbuild.h"
 #include "adler32_p.h"
 #include "adler32_ssse3_p.h"
 
-#ifdef X86_SSSE3
-
 #include <immintrin.h>
 
 Z_INTERNAL uint32_t adler32_ssse3(uint32_t adler, const uint8_t *buf, size_t len) {
index 7e3ffc2c63d24c7608ab2ca737c9256e0ffdf981..98b6af03b0ecd14158ea2cb09ec0ae9e017bb850 100644 (file)
@@ -1,10 +1,12 @@
 /* chunkset_avx2.c -- AVX2 inline functions to copy small data chunks.
  * For conditions of distribution and use, see copyright notice in zlib.h
  */
+
+#ifdef X86_AVX2
+
 #include "zbuild.h"
 #include "zmemory.h"
 
-#ifdef X86_AVX2
 #include "arch/generic/chunk_256bit_perm_idx_lut.h"
 #include <immintrin.h>
 #include "x86_intrins.h"
index 3c46b4bfb6a59ab5402a288ac7d7239a52772b1d..901fea0cbd06a4b319c61c489acc503698ae6519 100644 (file)
@@ -1,11 +1,12 @@
 /* chunkset_avx512.c -- AVX512 inline functions to copy small data chunks.
  * For conditions of distribution and use, see copyright notice in zlib.h
  */
-#include "zbuild.h"
-#include "zmemory.h"
 
 #ifdef X86_AVX512
 
+#include "zbuild.h"
+#include "zmemory.h"
+
 #include "arch/generic/chunk_256bit_perm_idx_lut.h"
 #include <immintrin.h>
 #include "x86_intrins.h"
index dcfe2c70d23f06197fd809ec7536d1dfa01dfade..633ab6e64f35512850ee5f0f0389eec66a3cf8dd 100644 (file)
@@ -2,10 +2,11 @@
  * For conditions of distribution and use, see copyright notice in zlib.h
  */
 
+#ifdef X86_SSE2
+
 #include "zbuild.h"
 #include "zmemory.h"
 
-#ifdef X86_SSE2
 #include <immintrin.h>
 
 typedef __m128i chunk_t;
index 7778e5251be771bc732f9dbd4162ba5b29ce6547..b0ec74ef84a8e848e53f051c5e5efd86cdf7e0f4 100644 (file)
@@ -2,10 +2,11 @@
  * For conditions of distribution and use, see copyright notice in zlib.h
  */
 
+#ifdef X86_SSSE3
+
 #include "zbuild.h"
 #include "zmemory.h"
 
-#if defined(X86_SSSE3)
 #include <immintrin.h>
 #include "arch/generic/chunk_128bit_perm_idx_lut.h"
 
index 8efa0d0c5de0eeb76d1a4e5c096d12d608e68ebb..523dda88fee39a89cef5317c18b25a1a378c9e1e 100644 (file)
@@ -9,11 +9,12 @@
  *
  * For conditions of distribution and use, see copyright notice in zlib.h
  */
-#include "zbuild.h"
-#include "deflate.h"
 
 #ifdef X86_AVX2
 
+#include "zbuild.h"
+#include "deflate.h"
+
 #include <immintrin.h>
 
 static inline void slide_hash_chain(Pos *table, uint32_t entries, const __m256i wsize) {
index fff18249904def63ff221c154ccb3865b1ef386e..4aa8df5ee88355c5007134d49d918da4e26c5d33 100644 (file)
@@ -8,11 +8,12 @@
  *
  * For conditions of distribution and use, see copyright notice in zlib.h
  */
-#include "zbuild.h"
-#include "deflate.h"
 
 #ifdef X86_SSE2
 
+#include "zbuild.h"
+#include "deflate.h"
+
 #include <immintrin.h>
 #include <assert.h>
 
index 0ae706bb5e8ed1a247dce099ddb68cde83c25751..de293b6cfd8f260e63c134ddfde85146fc1146d0 100644 (file)
@@ -7,11 +7,11 @@
  * For conditions of distribution and use, see copyright notice in zlib.h
  */
 
+#ifdef X86_FEATURES
+
 #include "zbuild.h"
 #include "x86_features.h"
 
-#ifdef X86_FEATURES
-
 #if defined(HAVE_CPUID_MS)
 #   include <intrin.h>
 #elif defined(HAVE_CPUID_GNU)