Hi,

ppsspp fails to build on riscv64.  Looking at the error log, I suspect
that other architectures may be affected.

--8<--
FAILED: CMakeFiles/Core.dir/Core/MIPS/JitCommon/JitCommon.cpp.o 
/usr/ports/pobj/ppsspp-1.10.3/bin/c++ -DSDL -DSHARED_LIBZIP -DSHARED_ZLIB 
-DUSE_FFMPEG=1 -DVK_USE_PLATFORM_XLIB_KHR -D_FILE_OFFSET_BITS=64 
-D_LARGEFILE64_SOURCE=1 -D_XOPEN_SOURCE_EXTENDED -D__BSD_VISIBLE=1 
-D__STDC_CONSTANT_MACROS 
-I/usr/ports/pobj/ppsspp-1.10.3/ppsspp-1.10.3/ext/native 
-I/usr/ports/pobj/ppsspp-1.10.3/ppsspp-1.10.3/ext/glslang -I/usr/X11R6/include 
-I/usr/local/lib/libzip/include -I/usr/ports/pobj/ppsspp-1.10.3/ppsspp-1.10.3 
-I/usr/ports/pobj/ppsspp-1.10.3/ppsspp-1.10.3/Common 
-I/usr/ports/pobj/ppsspp-1.10.3/ppsspp-1.10.3/ext/cityhash 
-I/usr/ports/pobj/ppsspp-1.10.3/ppsspp-1.10.3/ext/libkirk 
-I/usr/ports/pobj/ppsspp-1.10.3/ppsspp-1.10.3/ext/sfmt19937 
-I/usr/ports/pobj/ppsspp-1.10.3/ppsspp-1.10.3/ext/xbrz 
-I/usr/ports/pobj/ppsspp-1.10.3/ppsspp-1.10.3/ext/xxhash 
-I/usr/ports/pobj/ppsspp-1.10.3/ppsspp-1.10.3/ext/glslang/glslang/.. 
-I/usr/ports/pobj/ppsspp-1.10.3/ppsspp-1.10.3/ext/glslang/SPIRV/.. 
-I/usr/ports/pobj/ppsspp-1.10.3/ppsspp-1.10.3/ext/SPIRV-Cross-build/../SPIRV-Cross
 -isystem /usr/local/include -isystem /usr/local/include/SDL2 -O2 -pipe 
-Wno-switch -Wno-uninitialized -DNDEBUG -D_NDEBUG   -Wno-multichar 
-Wno-deprecated-register -Wno-tautological-pointer-compare -include 
/usr/ports/pobj/ppsspp-1.10.3/ppsspp-1.10.3/ppsspp_config.h 
-fno-strict-aliasing -std=gnu++11 -MD -MT 
CMakeFiles/Core.dir/Core/MIPS/JitCommon/JitCommon.cpp.o -MF 
CMakeFiles/Core.dir/Core/MIPS/JitCommon/JitCommon.cpp.o.d -o 
CMakeFiles/Core.dir/Core/MIPS/JitCommon/JitCommon.cpp.o -c 
/usr/ports/pobj/ppsspp-1.10.3/ppsspp-1.10.3/Core/MIPS/JitCommon/JitCommon.cpp
/usr/ports/pobj/ppsspp-1.10.3/ppsspp-1.10.3/Core/MIPS/JitCommon/JitCommon.cpp:75:10:
 error: cannot initialize return object of type 'MIPSComp::JitInterface *' with 
an rvalue of type 'MIPSComp::FakeJit *'
                return new MIPSComp::FakeJit(mips);
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
ninja: build stopped: subcommand failed.
-->8--

The full list of architectures where a JIT is supported is:
  arm aarch64 i386 amd64

mips32 is supposedly also supported but we don't run on that.
All the remaining JIT architectures are little endian, and ppsspp is
already disabled on big endian architectures.  So NOT_FOR_ARCHS may seem
redundant now.  Shall I keep it, as in the diff below, or shall I drop it?

ok?



Index: Makefile
===================================================================
RCS file: /d/cvs/ports/emulators/ppsspp/Makefile,v
retrieving revision 1.15
diff -u -p -r1.15 Makefile
--- Makefile    5 May 2021 07:31:12 -0000       1.15
+++ Makefile    1 Aug 2021 11:15:06 -0000
@@ -3,6 +3,11 @@
 # See https://github.com/hrydgard/ppsspp/issues/8823
 NOT_FOR_ARCHS =        ${BE_ARCHS}
 
+# FakeJit fallback broken in (at least) 1.10.3
+# ppsspp-1.10.3/Core/MIPS/JitCommon/JitCommon.cpp:75:10: error: cannot 
initialize return object of type 'MIPSComp::JitInterface *' with an rvalue of 
type 'MIPSComp::FakeJit *'
+PPSSPP_JIT_ARCHS =     arm aarch64 i386 amd64
+ONLY_FOR_ARCHS =       ${PPSSPP_JIT_ARCHS}
+
 COMMENT =      Sony PlayStation Portable emulator
 
 GH_ACCOUNT =   hrydgard

-- 
jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF  DDCC 0DFA 74AE 1524 E7EE

Reply via email to