From: Robert Kausch Date: Wed, 21 Jan 2026 23:15:08 +0000 (+0100) Subject: Make feature macro tests more consistent X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a7006bf0c458a93cee9db2dd8ab253b9434354a8;p=thirdparty%2Fzlib-ng.git Make feature macro tests more consistent - Test feature macros before any includes - Use #ifdef over #if defined() for single macro tests - Always include zbuild.h first --- diff --git a/arch/arm/adler32_neon.c b/arch/arm/adler32_neon.c index 0b41e4d2b..b09594736 100644 --- a/arch/arm/adler32_neon.c +++ b/arch/arm/adler32_neon.c @@ -5,10 +5,12 @@ * Adam Stylinski * 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, diff --git a/arch/arm/arm_features.c b/arch/arm/arm_features.c index ce5ab9d0e..96e7679fe 100644 --- a/arch/arm/arm_features.c +++ b/arch/arm/arm_features.c @@ -1,8 +1,8 @@ +#ifdef ARM_FEATURES + #include "zbuild.h" #include "arm_features.h" -#ifdef ARM_FEATURES - #if defined(HAVE_SYS_AUXV_H) # include # ifdef ARM_ASM_HWCAP diff --git a/arch/arm/chunkset_neon.c b/arch/arm/chunkset_neon.c index 271f7f92b..a20845154 100644 --- a/arch/arm/chunkset_neon.c +++ b/arch/arm/chunkset_neon.c @@ -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; diff --git a/arch/arm/crc32_armv8.c b/arch/arm/crc32_armv8.c index 8f72f3c0d..7d5d1b939 100644 --- a/arch/arm/crc32_armv8.c +++ b/arch/arm/crc32_armv8.c @@ -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; diff --git a/arch/arm/crc32_armv8_pmull_eor3.c b/arch/arm/crc32_armv8_pmull_eor3.c index bc1df8cd3..d9912907e 100644 --- a/arch/arm/crc32_armv8_pmull_eor3.c +++ b/arch/arm/crc32_armv8_pmull_eor3.c @@ -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" diff --git a/arch/arm/slide_hash_armv6.c b/arch/arm/slide_hash_armv6.c index da4f51e0a..da22a993e 100644 --- a/arch/arm/slide_hash_armv6.c +++ b/arch/arm/slide_hash_armv6.c @@ -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) { diff --git a/arch/arm/slide_hash_neon.c b/arch/arm/slide_hash_neon.c index f319f9879..3b954d17e 100644 --- a/arch/arm/slide_hash_neon.c +++ b/arch/arm/slide_hash_neon.c @@ -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) { diff --git a/arch/loongarch/adler32_lsx.c b/arch/loongarch/adler32_lsx.c index 8f277b43e..e0c8ca969 100644 --- a/arch/loongarch/adler32_lsx.c +++ b/arch/loongarch/adler32_lsx.c @@ -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 #include "lsxintrin_ext.h" diff --git a/arch/loongarch/chunkset_lasx.c b/arch/loongarch/chunkset_lasx.c index 6ac439097..38000474b 100644 --- a/arch/loongarch/chunkset_lasx.c +++ b/arch/loongarch/chunkset_lasx.c @@ -2,11 +2,12 @@ * Copyright (C) 2025 Vladislav Shchapov * 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 #include "lasxintrin_ext.h" #include "lsxintrin_ext.h" diff --git a/arch/loongarch/chunkset_lsx.c b/arch/loongarch/chunkset_lsx.c index 0253de2c8..631052d74 100644 --- a/arch/loongarch/chunkset_lsx.c +++ b/arch/loongarch/chunkset_lsx.c @@ -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 #include "lsxintrin_ext.h" #include "arch/generic/chunk_128bit_perm_idx_lut.h" diff --git a/arch/loongarch/crc32_la.c b/arch/loongarch/crc32_la.c index 912488c77..de7e768ec 100644 --- a/arch/loongarch/crc32_la.c +++ b/arch/loongarch/crc32_la.c @@ -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 #include diff --git a/arch/loongarch/loongarch_features.c b/arch/loongarch/loongarch_features.c index 0ebd8b4eb..bedf8499f 100644 --- a/arch/loongarch/loongarch_features.c +++ b/arch/loongarch/loongarch_features.c @@ -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 /* diff --git a/arch/loongarch/slide_hash_lasx.c b/arch/loongarch/slide_hash_lasx.c index 335ed5c36..11c45d705 100644 --- a/arch/loongarch/slide_hash_lasx.c +++ b/arch/loongarch/slide_hash_lasx.c @@ -10,11 +10,12 @@ * * 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 static inline void slide_hash_chain(Pos *table, uint32_t entries, const __m256i wsize) { diff --git a/arch/loongarch/slide_hash_lsx.c b/arch/loongarch/slide_hash_lsx.c index 4bd68a849..c3d58e9c7 100644 --- a/arch/loongarch/slide_hash_lsx.c +++ b/arch/loongarch/slide_hash_lsx.c @@ -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 #include diff --git a/arch/power/adler32_power8.c b/arch/power/adler32_power8.c index dfa3f7beb..b002e4ed3 100644 --- a/arch/power/adler32_power8.c +++ b/arch/power/adler32_power8.c @@ -38,10 +38,11 @@ #ifdef POWER8_VSX -#include #include "zbuild.h" #include "adler32_p.h" +#include + /* 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); diff --git a/arch/power/adler32_vmx.c b/arch/power/adler32_vmx.c index de8cd4040..b1371da95 100644 --- a/arch/power/adler32_vmx.c +++ b/arch/power/adler32_vmx.c @@ -6,11 +6,13 @@ */ #ifdef PPC_VMX -#include + #include "zbuild.h" #include "zendian.h" #include "adler32_p.h" +#include + #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) { diff --git a/arch/power/chunkset_power8.c b/arch/power/chunkset_power8.c index c7e560bb9..f9855e677 100644 --- a/arch/power/chunkset_power8.c +++ b/arch/power/chunkset_power8.c @@ -3,10 +3,12 @@ */ #ifdef POWER8_VSX -#include + #include "zbuild.h" #include "zmemory.h" +#include + typedef vector unsigned char chunk_t; #define HAVE_CHUNKMEMSET_2 diff --git a/arch/power/compare256_power9.c b/arch/power/compare256_power9.c index 2875719c4..99c3b0b6d 100644 --- a/arch/power/compare256_power9.c +++ b/arch/power/compare256_power9.c @@ -4,12 +4,14 @@ */ #ifdef POWER9 -#include + #include "zbuild.h" #include "zmemory.h" #include "deflate.h" #include "zendian.h" +#include + /* 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) diff --git a/arch/power/crc32_power8.c b/arch/power/crc32_power8.c index 0ec574e6e..2d118a9c0 100644 --- a/arch/power/crc32_power8.c +++ b/arch/power/crc32_power8.c @@ -27,9 +27,8 @@ #ifdef POWER8_VSX_CRC32 -#include -#include "zendian.h" #include "zbuild.h" +#include "zendian.h" #include "crc32_constants.h" #include "crc32_braid_tbl.h" diff --git a/arch/power/power_features.c b/arch/power/power_features.c index d3c55c6ae..148f30a97 100644 --- a/arch/power/power_features.c +++ b/arch/power/power_features.c @@ -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 #endif @@ -13,8 +18,6 @@ #ifdef __FreeBSD__ # include #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 diff --git a/arch/power/power_intrins.h b/arch/power/power_intrins.h index cf7198656..965387c9e 100644 --- a/arch/power/power_intrins.h +++ b/arch/power/power_intrins.h @@ -12,6 +12,8 @@ #ifndef POWER_INTRINS_H #define POWER_INTRINS_H +#include + #if defined (__clang__) /* * These stubs fix clang incompatibilities with GCC builtins. diff --git a/arch/riscv/adler32_rvv.c b/arch/riscv/adler32_rvv.c index 9ae31b301..cd1d68db2 100644 --- a/arch/riscv/adler32_rvv.c +++ b/arch/riscv/adler32_rvv.c @@ -6,12 +6,12 @@ #ifdef RISCV_RVV -#include -#include - #include "zbuild.h" #include "adler32_p.h" +#include +#include + 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; diff --git a/arch/riscv/chunkset_rvv.c b/arch/riscv/chunkset_rvv.c index c8db1dc43..6b35f30da 100644 --- a/arch/riscv/chunkset_rvv.c +++ b/arch/riscv/chunkset_rvv.c @@ -6,9 +6,10 @@ #ifdef RISCV_RVV -#include #include "zbuild.h" +#include + /* * 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. diff --git a/arch/riscv/crc32_zbc.c b/arch/riscv/crc32_zbc.c index 60d27dd91..0283f24d7 100644 --- a/arch/riscv/crc32_zbc.c +++ b/arch/riscv/crc32_zbc.c @@ -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 #define CLMUL_MIN_LEN 16 // Minimum size of buffer for _crc32_clmul diff --git a/arch/riscv/riscv_features.c b/arch/riscv/riscv_features.c index 5b2ceae1e..4eb49efe9 100644 --- a/arch/riscv/riscv_features.c +++ b/arch/riscv/riscv_features.c @@ -1,5 +1,8 @@ #ifdef RISCV_FEATURES +#include "zbuild.h" +#include "riscv_features.h" + #include #include #include @@ -9,9 +12,6 @@ # include #endif -#include "zbuild.h" -#include "riscv_features.h" - #define ISA_V_HWCAP (1 << ('v' - 'a')) #define ISA_ZBC_HWCAP (1 << 29) diff --git a/arch/riscv/slide_hash_rvv.c b/arch/riscv/slide_hash_rvv.c index 6f53d7a13..e794c3820 100644 --- a/arch/riscv/slide_hash_rvv.c +++ b/arch/riscv/slide_hash_rvv.c @@ -6,11 +6,11 @@ #ifdef RISCV_RVV -#include - #include "zbuild.h" #include "deflate.h" +#include + static inline void slide_hash_chain(Pos *table, uint32_t entries, uint16_t wsize) { size_t vl; while (entries > 0) { diff --git a/arch/s390/crc32-vx.c b/arch/s390/crc32-vx.c index 085ee2328..7d0de8629 100644 --- a/arch/s390/crc32-vx.c +++ b/arch/s390/crc32-vx.c @@ -12,11 +12,11 @@ * relicensed under the zlib license. */ +#ifdef S390_CRC32_VX + #include "zbuild.h" #include "arch_functions.h" -#ifdef S390_CRC32_VX - #include typedef unsigned char uv16qi __attribute__((vector_size(16))); diff --git a/arch/s390/s390_features.c b/arch/s390/s390_features.c index deef58a5c..dabb578a0 100644 --- a/arch/s390/s390_features.c +++ b/arch/s390/s390_features.c @@ -1,8 +1,8 @@ +#ifdef S390_FEATURES + #include "zbuild.h" #include "s390_features.h" -#ifdef S390_FEATURES - #ifdef HAVE_SYS_AUXV_H # include #endif diff --git a/arch/x86/adler32_sse42.c b/arch/x86/adler32_sse42.c index a30b77531..c611034ab 100644 --- a/arch/x86/adler32_sse42.c +++ b/arch/x86/adler32_sse42.c @@ -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 Z_INTERNAL uint32_t adler32_copy_sse42(uint32_t adler, uint8_t *dst, const uint8_t *src, size_t len) { diff --git a/arch/x86/adler32_ssse3.c b/arch/x86/adler32_ssse3.c index 3b2616295..91003fab1 100644 --- a/arch/x86/adler32_ssse3.c +++ b/arch/x86/adler32_ssse3.c @@ -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 Z_INTERNAL uint32_t adler32_ssse3(uint32_t adler, const uint8_t *buf, size_t len) { diff --git a/arch/x86/chunkset_avx2.c b/arch/x86/chunkset_avx2.c index 7e3ffc2c6..98b6af03b 100644 --- a/arch/x86/chunkset_avx2.c +++ b/arch/x86/chunkset_avx2.c @@ -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 #include "x86_intrins.h" diff --git a/arch/x86/chunkset_avx512.c b/arch/x86/chunkset_avx512.c index 3c46b4bfb..901fea0cb 100644 --- a/arch/x86/chunkset_avx512.c +++ b/arch/x86/chunkset_avx512.c @@ -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 #include "x86_intrins.h" diff --git a/arch/x86/chunkset_sse2.c b/arch/x86/chunkset_sse2.c index dcfe2c70d..633ab6e64 100644 --- a/arch/x86/chunkset_sse2.c +++ b/arch/x86/chunkset_sse2.c @@ -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 typedef __m128i chunk_t; diff --git a/arch/x86/chunkset_ssse3.c b/arch/x86/chunkset_ssse3.c index 7778e5251..b0ec74ef8 100644 --- a/arch/x86/chunkset_ssse3.c +++ b/arch/x86/chunkset_ssse3.c @@ -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 #include "arch/generic/chunk_128bit_perm_idx_lut.h" diff --git a/arch/x86/slide_hash_avx2.c b/arch/x86/slide_hash_avx2.c index 8efa0d0c5..523dda88f 100644 --- a/arch/x86/slide_hash_avx2.c +++ b/arch/x86/slide_hash_avx2.c @@ -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 static inline void slide_hash_chain(Pos *table, uint32_t entries, const __m256i wsize) { diff --git a/arch/x86/slide_hash_sse2.c b/arch/x86/slide_hash_sse2.c index fff182499..4aa8df5ee 100644 --- a/arch/x86/slide_hash_sse2.c +++ b/arch/x86/slide_hash_sse2.c @@ -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 #include diff --git a/arch/x86/x86_features.c b/arch/x86/x86_features.c index 0ae706bb5..de293b6cf 100644 --- a/arch/x86/x86_features.c +++ b/arch/x86/x86_features.c @@ -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 #elif defined(HAVE_CPUID_GNU)