Skip to content

Commit e4611be

Browse files
committed
Reduce binary size
- Only enable `HWY_AVX2` and `HWY_SSE2` (baseline) on x86. - Only enable `HWY_NEON_WITHOUT_AES` (baseline) on AArch64. - Ensure fallback emulation targets are always disabled. - Add patch to disable `HWY_AVX10_2` target.
1 parent f8a974a commit e4611be

File tree

2 files changed

+46
-0
lines changed

2 files changed

+46
-0
lines changed

build/libjxl.mk

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,26 @@ define $(PKG)_BUILD
2121
-DJPEGXL_ENABLE_OPENEXR=OFF \
2222
-DJPEGXL_ENABLE_SKCMS=OFF \
2323
-DJPEGXL_ENABLE_TRANSCODE_JPEG=OFF \
24+
$(if $(call seq,aarch64,$(PROCESSOR)), \
25+
-DJPEGXL_ENABLE_HWY_SVE2_128=OFF \
26+
-DJPEGXL_ENABLE_HWY_SVE_256=OFF \
27+
-DJPEGXL_ENABLE_HWY_SVE2=OFF \
28+
-DJPEGXL_ENABLE_HWY_SVE=OFF \
29+
-DJPEGXL_ENABLE_HWY_NEON_BF16=OFF \
30+
-DJPEGXL_ENABLE_HWY_NEON=OFF \
31+
-DJPEGXL_ENABLE_HWY_NEON_WITHOUT_AES=ON \
32+
$(else), \
33+
-DJPEGXL_ENABLE_HWY_AVX10_2=OFF \
34+
-DJPEGXL_ENABLE_HWY_AVX3_SPR=OFF \
35+
-DJPEGXL_ENABLE_HWY_AVX3_ZEN4=OFF \
36+
-DJPEGXL_ENABLE_HWY_AVX3_DL=OFF \
37+
-DJPEGXL_ENABLE_HWY_AVX3=OFF \
38+
-DJPEGXL_ENABLE_HWY_AVX2=ON \
39+
-DJPEGXL_ENABLE_HWY_SSE4=OFF \
40+
-DJPEGXL_ENABLE_HWY_SSSE3=OFF \
41+
-DJPEGXL_ENABLE_HWY_SSE2=ON) \
42+
-DJPEGXL_ENABLE_HWY_EMU128=OFF \
43+
-DJPEGXL_ENABLE_HWY_SCALAR=OFF \
2444
-DJPEGXL_FORCE_SYSTEM_BROTLI=ON \
2545
-DJPEGXL_FORCE_SYSTEM_LCMS2=ON \
2646
-DJPEGXL_FORCE_SYSTEM_HWY=ON \
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
2+
From: Kleis Auke Wolthuizen <github@kleisauke.nl>
3+
Date: Mon, 8 Dec 2025 19:41:56 +0100
4+
Subject: [PATCH 1/1] Allow disabling the `HWY_AVX10_2` target
5+
6+
Upstream-Status: Inappropriate [other]
7+
Requires Highway 1.3.0 or later, will fail on earlier versions with:
8+
```
9+
error: use of undeclared identifier 'HWY_AVX10_2'
10+
```
11+
12+
diff --git a/CMakeLists.txt b/CMakeLists.txt
13+
index 1111111..2222222 100644
14+
--- a/CMakeLists.txt
15+
+++ b/CMakeLists.txt
16+
@@ -132,8 +132,8 @@ else()
17+
set(ENABLE_SKCMS_DEFAULT YES)
18+
endif()
19+
20+
-set(JPEGXL_HWY_TARGETS AVX2 AVX3 AVX3_DL AVX3_SPR AVX3_ZEN4 EMU128 NEON NEON_BF16 NEON_WITHOUT_AES PPC10 PPC8 PPC9 RVV SCALAR SSE2 SSE4 SSSE3 SVE SVE_256 SVE2 SVE2_128 WASM WASM_EMU256 Z14 Z15)
21+
-set(JPEGXL_HWY_TARGETS_OFF_BY_DEFAULT AVX3 AVX3_SPR AVX3_ZEN4 RVV SSSE3 SVE_256)
22+
+set(JPEGXL_HWY_TARGETS AVX2 AVX3 AVX3_DL AVX3_SPR AVX3_ZEN4 AVX10_2 EMU128 NEON NEON_BF16 NEON_WITHOUT_AES PPC10 PPC8 PPC9 RVV SCALAR SSE2 SSE4 SSSE3 SVE SVE_256 SVE2 SVE2_128 WASM WASM_EMU256 Z14 Z15)
23+
+set(JPEGXL_HWY_TARGETS_OFF_BY_DEFAULT AVX3 AVX3_SPR AVX3_ZEN4 AVX10_2 RVV SSSE3 SVE_256)
24+
if (NOT CXX_SVE_SUPPORTED)
25+
list(APPEND JPEGXL_HWY_TARGETS_OFF_BY_DEFAULT SVE SVE2 SVE_256 SVE2_128)
26+
endif()

0 commit comments

Comments
 (0)