On Mon, Jun 24, 2024 at 12:35:03PM +0100, Stuart Henderson wrote: [...]
> This one fails on i386, > > FAILED: powder.p/src_X86KillDenormals.cpp.o > c++ -Ipowder.p -I. -I../The-Powder-Toy-98.2.365 -Isrc > -I../The-Powder-Toy-98.2.365/src -Iresources > -I../The-Powder-Toy-98.2.365/resourc > es -I/usr/include -I/usr/local/include/libpng16 -I/usr/local/include/SDL2 > -I/usr/X11R6/include -I/usr/local/include/luajit-2.1 -I/usr/l > ocal/include -fdiagnostics-color=always -D_LIBCPP_ENABLE_ASSERTIONS=1 > -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -std=c++17 -fno-rtti - > O2 -pipe -D_REENTRANT -pthread -ftree-vectorize -funsafe-math-optimizations > -ffast-math -fomit-frame-pointer -Wno-invalid-offsetof -Wno > -unused-result -Wno-missing-field-initializers -Wno-unused-parameter -MD -MQ > powder.p/src_X86KillDenormals.cpp.o -MF powder.p/src_X86Ki > llDenormals.cpp.o.d -o powder.p/src_X86KillDenormals.cpp.o -c > ../The-Powder-Toy-98.2.365/src/X86KillDenormals.cpp > ../The-Powder-Toy-98.2.365/src/X86KillDenormals.cpp:7:2: error: '_mm_setcsr' > needs target feature sse > _MM_SET_FLUSH_ZERO_MODE(_MM_FLUSH_ZERO_ON); > ^ > > /usr/lib/clang/16/include/xmmintrin.h:2977:37: note: expanded from macro > '_MM_SET_FLUSH_ZERO_MODE' > #define _MM_SET_FLUSH_ZERO_MODE(x) (_mm_setcsr((_mm_getcsr() & > ~_MM_FLUSH_ZERO_MASK) | (x))) > ^ Looks like the file X86KillDenormals.cpp requires sse, but is included with any x86 arch[1]. Diff below includes the file only if sse is active. Would appreciate a second look if this seems correct... Still builds on amd64. [1] https://github.com/The-Powder-Toy/The-Powder-Toy/blob/c174833734968e52412ef2283a22ee672e55e60f/src/meson.build#L127 Index: Makefile =================================================================== RCS file: /cvs/ports/games/powder-toy/Makefile,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 Makefile --- Makefile 21 Jun 2024 01:43:09 -0000 1.1.1.1 +++ Makefile 25 Jun 2024 01:38:35 -0000 @@ -6,6 +6,7 @@ USE_NOBTCFI = Yes V = 98.2.365 PKGNAME = powder-toy-${V} DIST_TUPLE += github The-Powder-Toy The-Powder-Toy v${V} . +REVISION = 0 CATEGORIES = games MAINTAINER = Thomas Frohwein <[email protected]> Index: patches/patch-src_meson_build =================================================================== RCS file: patches/patch-src_meson_build diff -N patches/patch-src_meson_build --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-src_meson_build 25 Jun 2024 01:38:35 -0000 @@ -0,0 +1,14 @@ +X86KillDenormals.cpp needs SSE + +Index: src/meson.build +--- src/meson.build.orig ++++ src/meson.build +@@ -98,7 +98,7 @@ else + 'PowderToySDLCommon.cpp', + ) + endif +-if is_x86 ++if x86_sse_level > 0 + powder_files += files('X86KillDenormals.cpp') + endif +
