Emulator Issues #13430
openWrong compile options for zlib-ng
0%
Description
Tries to build on Clear Linux
In file included from /usr/lib64/gcc/x86_64-generic-linux/13/include/immintrin.h:51,
from /media/Data/UnClear/dolphin/Externals/zlib-ng/zlib-ng/arch/x86/slide_hash_avx2.c:15:
/usr/lib64/gcc/x86_64-generic-linux/13/include/avx2intrin.h: In function ‘slide_hash_chain’:
/usr/lib64/gcc/x86_64-generic-linux/13/include/avx2intrin.h:850:1: error: inlining failed in call to ‘always_inline’ ‘_mm256_subs_epu16’: target specific option mismatch
850 | _mm256_subs_epu16 (__m256i __A, __m256i __B)
| ^~~~~~~~~~~~~~~~~
/media/Data/UnClear/dolphin/Externals/zlib-ng/zlib-ng/arch/x86/slide_hash_avx2.c:25:18: note: called from here
25 | result = _mm256_subs_epu16(value, wsize);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib64/gcc/x86_64-generic-linux/13/include/avx2intrin.h:850:1: error: inlining failed in call to ‘always_inline’ ‘_mm256_subs_epu16’: target specific option mismatch
850 | _mm256_subs_epu16 (__m256i __A, __m256i __B)
| ^~~~~~~~~~~~~~~~~
/media/Data/UnClear/dolphin/Externals/zlib-ng/zlib-ng/arch/x86/slide_hash_avx2.c:25:18: note: called from here
25 | result = _mm256_subs_epu16(value, wsize);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [Externals/zlib-ng/zlib-ng/CMakeFiles/zlib.dir/build.make:482: Externals/zlib-ng/zlib-ng/CMakeFiles/zlib.dir/arch/x86/slide_hash_avx2.c.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:1359: Externals/zlib-ng/zlib-ng/CMakeFiles/zlib.dir/all] Error 2
make: *** [Makefile:156: all] Error 2
Build command:
cd /media/Data/UnClear/dolphin/build/Externals/zlib-ng/zlib-ng && /home/inferno/.cargo/bin/sccache /usr/bin/gcc -DAUTOUPDATE=1 -DDATA_DIR=\"/usr/local/share/dolphin-emu/\" -DHAS_OPENGL -DHAS_VULKAN -DHAVE_BUILTIN_CTZ -DHAVE_BUILTIN_CTZLL -DHAVE_EGL=1 -DHAVE_FFMPEG -DHAVE_LIBEVDEV=1 -DHAVE_LIBUDEV=1 -DHAVE_POSIX_MEMALIGN -DHAVE_SYS_AUXV_H -DHAVE_VISIBILITY_HIDDEN -DHAVE_VISIBILITY_INTERNAL -DHAVE_X11=1 -DHAVE_XRANDR=1 -DUSE_ANALYTICS=1 -DUSE_MEMORYWATCHER=1 -DUSE_PIPES=1 -DWITH_GZFILEOP -DX86_AVX2 -DX86_AVX2_ADLER32 -DX86_AVX_CHUNKSET -DX86_FEATURES -DX86_PCLMULQDQ_CRC -DX86_SSE2 -DX86_SSE2_CHUNKSET -DX86_SSE2_SLIDEHASH -DX86_SSE41 -DX86_SSE42_ADLER32 -DX86_SSE42_CRC_HASH -DX86_SSE42_CRC_INTRIN -DX86_SSSE3 -DX86_SSSE3_ADLER32 -DZLIB_COMPAT -D_ARCH_64=1 -D_DEFAULT_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE=1 -D_LARGEFILE_SOURCE -D_M_X86_64=1 -D__USE_LARGEFILE64 -I/media/Data/UnClear/dolphin/Source/Core -I/media/Data/UnClear/dolphin/build/Externals/zlib-ng/zlib-ng -I/media/Data/UnClear/dolphin/Externals/zlib-ng/zlib-ng -g -O3 -feliminate-unused-debug-types -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=32 -Wformat -Wformat-security -Wl,--copy-dt-needed-entries -m64 -fasynchronous-unwind-tables -Wp,-D_REENTRANT -ftree-loop-distribute-patterns -Wl,-z -Wl,now -Wl,-z -Wl,relro -malign-data=abi -fno-semantic-interposition -ftree-vectorize -ftree-loop-vectorize -O3 -DNDEBUG -std=c11 -msse2 -fno-strict-aliasing -fno-exceptions -fvisibility=hidden -fomit-frame-pointer -flto -Wall -Wno-implicit-fallthrough -march=native -MD -MT Externals/zlib-ng/zlib-ng/CMakeFiles/zlib.dir/arch/x86/slide_hash_avx2.c.o -MF CMakeFiles/zlib.dir/arch/x86/slide_hash_avx2.c.o.d -o CMakeFiles/zlib.dir/arch/x86/slide_hash_avx2.c.o -c /media/Data/UnClear/dolphin/Externals/zlib-ng/zlib-ng/arch/x86/slide_hash_avx2.c
to fix it, you should replace -msse2
with -mavx2
Files
Updated by JosJuice about 1 year ago
to fix it, you should replace
-msse2
with-mavx2
But we're intentionally supporting CPUs that don't have AVX2.
Where did the -DX86_AVX2 in your build command come from? I can't see anything in Dolphin's CMakeFiles that would set it.
Updated by inferrna about 1 year ago
- File sysinfo.txt sysinfo.txt added
Where did the -DX86_AVX2 in your build command come from? I can't see anything in Dolphin's CMakeFiles that would set it.
Even more: my CPU doesn't have AVX2. But you need it to compile slide_hash_avx2.c
Maybe it was wrong CPU features detection.
Updated by inferrna about 1 year ago
This happens when
WITH_NATIVE_INSTRUCTIONS
is ON
I'm using cmake-gui
, but unfortunately it doesn't show which option belong which project. So, it is a zlib-ng option and seems to be a zlib-ng bug.