Project

General

Profile

Actions

Emulator Issues #13430

open

Wrong compile options for zlib-ng

Added by inferrna 5 months ago. Updated 5 months ago.

Status:
New
Priority:
Normal
Assignee:
-
% Done:

0%

Operating system:
N/A
Issue type:
Bug
Milestone:
Regression:
No
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:

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

sysinfo.txt (1.81 KB) sysinfo.txt System info inferrna, 12/13/2023 07:54 PM
Actions #1

Updated by JosJuice 5 months 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.

Actions #2

Updated by inferrna 5 months ago

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.

Actions #3

Updated by inferrna 5 months 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.

Actions

Also available in: Atom PDF