Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 27 Jun 2023 10:14:37 GMT
From:      Ganael LAPLANCHE <martymac@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: 10076c848667 - main - emulators/pcsx2: Fix SIGILL crash
Message-ID:  <202306271014.35RAEbCq004780@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by martymac:

URL: https://cgit.FreeBSD.org/ports/commit/?id=10076c84866711af04e6c1425cdc6085ac936bfe

commit 10076c84866711af04e6c1425cdc6085ac936bfe
Author:     Daniel Engberg <diizzy@FreeBSD.org>
AuthorDate: 2023-06-27 10:08:02 +0000
Commit:     Ganael LAPLANCHE <martymac@FreeBSD.org>
CommitDate: 2023-06-27 10:13:32 +0000

    emulators/pcsx2: Fix SIGILL crash
    
    Do not pass -march=native as that can bring pre-built packages with
    instructions not supported by end users and lead to a SIGILL crash.
    
    If CPUTYPE is not defined, set arch to the oldest CPU that supports
    SSE 4.1 (penryn), else let the build system try to build with whatever
    is set.
    
    Add a message indicating that the port should be rebuilt with CPUTYPE
    defined for best performance.
    
    While here, use zstd from ports (now detected).
    
    PR: 272192
    Reported by:    Patrick McMunn <doctorwhoguy@gmail.com>
---
 emulators/pcsx2/Makefile                               | 17 +++++++++++++----
 emulators/pcsx2/Makefile.tuples                        |  1 -
 emulators/pcsx2/distinfo                               |  2 --
 emulators/pcsx2/files/extra-patch-no-march-minimum-req | 11 +++++++++++
 emulators/pcsx2/files/extra-patch-no-march-native      | 11 +++++++++++
 emulators/pcsx2/pkg-message                            |  7 +++++++
 6 files changed, 42 insertions(+), 7 deletions(-)

diff --git a/emulators/pcsx2/Makefile b/emulators/pcsx2/Makefile
index ee09f40b5634..6f1b5582fc24 100644
--- a/emulators/pcsx2/Makefile
+++ b/emulators/pcsx2/Makefile
@@ -1,7 +1,7 @@
 PORTNAME=	pcsx2
 PORTVERSION=	1.7.4097
 DISTVERSIONPREFIX=	v
-PORTREVISION=	2
+PORTREVISION=	3
 CATEGORIES=	emulators
 
 MAINTAINER=	martymac@FreeBSD.org
@@ -16,7 +16,6 @@ ONLY_FOR_ARCHS=	amd64
 # Notes on dependencies (see cmake/SearchForStuff.cmake):
 # - rapidyaml (and c4core) come from 3rdparty/ (0.4.0 is needed)
 # - glad comes from 3rdparty/ (conflicts with libglvnd)
-# - zstd comes from 3rdparty/ (not detected yet)
 # - zydis comes from 3rdparty/
 LIB_DEPENDS=	libpng.so:graphics/png \
 		libavcodec.so:multimedia/ffmpeg \
@@ -30,10 +29,10 @@ LIB_DEPENDS=	libpng.so:graphics/png \
 		libcurl.so:ftp/curl \
 		libpulse.so:audio/pulseaudio \
 		libjack.so:audio/jack \
-		libsndio.so:audio/sndio
+		libsndio.so:audio/sndio \
+		libzstd.so:archivers/zstd
 #		libryml.so:devel/rapidyaml \
 #		libglad.so:graphics/glad \
-#		libzstd.so:archivers/zstd
 
 USES=		cmake desktop-file-utils gl pkgconfig qt:6 sdl xorg
 
@@ -46,6 +45,16 @@ USE_SDL=	sdl2
 USE_XORG=	ice x11 xcb xext xpm xrandr
 USE_QT=		base tools
 
+# SSE 4.1 instructions are a hard requirement, if CPUTYPE is defined
+# use whatever is set and let the build fail if it falls below
+# baseline requirements. If it's undefined set penryn as target
+# as it's the oldest CPU arch that supports SSE 4.1
+.if defined(CPUTYPE)
+EXTRA_PATCHES=	${PATCHDIR}/extra-patch-no-march-native
+.else
+EXTRA_PATCHES=	${PATCHDIR}/extra-patch-no-march-minimum-req
+.endif
+
 # See: cmake/BuildParameters.cmake
 CMAKE_ARGS+=	\
 		-DCMAKE_REQUIRED_INCLUDES:STRING=${LOCALBASE}/include/ \
diff --git a/emulators/pcsx2/Makefile.tuples b/emulators/pcsx2/Makefile.tuples
index e9a97511f72f..44efae57512e 100644
--- a/emulators/pcsx2/Makefile.tuples
+++ b/emulators/pcsx2/Makefile.tuples
@@ -1,7 +1,6 @@
 GH_TUPLE= \
 	rtissera:libchdr:5de1a59019815ccdbba0fe07c71b31406d023248:libchdr/3rdparty/libchdr/libchdr \
 	biojppm:rapidyaml:213b201d264139cd1b887790197e08850af628e3:rapidyaml/3rdparty/rapidyaml/rapidyaml \
-	facebook:zstd:e47e674cd09583ff0503f0f6defd6d23d8b718d3:zstd/3rdparty/zstd/zstd \
 	RetroAchievements:rcheevos:31f8788fe0e694e99db7ce138d45a655c556fa96:rcheevos/3rdparty/rcheevos/rcheevos \
 	biojppm:c4core:d35c7c9bf370134595699d791e6ff8db018ddc8d:c4core/3rdparty/rapidyaml/rapidyaml/ext/c4core \
 	biojppm:cmake:371982300ff5a076d7c3199057ebed77bbe3472f:cmake/3rdparty/rapidyaml/rapidyaml/ext/c4core/cmake \
diff --git a/emulators/pcsx2/distinfo b/emulators/pcsx2/distinfo
index 858e3ab69441..68e5fba4abda 100644
--- a/emulators/pcsx2/distinfo
+++ b/emulators/pcsx2/distinfo
@@ -5,8 +5,6 @@ SHA256 (rtissera-libchdr-5de1a59019815ccdbba0fe07c71b31406d023248_GH0.tar.gz) =
 SIZE (rtissera-libchdr-5de1a59019815ccdbba0fe07c71b31406d023248_GH0.tar.gz) = 414409
 SHA256 (biojppm-rapidyaml-213b201d264139cd1b887790197e08850af628e3_GH0.tar.gz) = c206d4565ccfa721991a8df90821d1a1f747e68385a0f3f5b9ab995e191c06be
 SIZE (biojppm-rapidyaml-213b201d264139cd1b887790197e08850af628e3_GH0.tar.gz) = 446070
-SHA256 (facebook-zstd-e47e674cd09583ff0503f0f6defd6d23d8b718d3_GH0.tar.gz) = 2a7b7e5d3f8c759894f0fea9917a590733600574d20cb53f3be827c7c62862e1
-SIZE (facebook-zstd-e47e674cd09583ff0503f0f6defd6d23d8b718d3_GH0.tar.gz) = 1952167
 SHA256 (RetroAchievements-rcheevos-31f8788fe0e694e99db7ce138d45a655c556fa96_GH0.tar.gz) = ffe7020e443f724299352e72abdd9bee432fc00d3d260fbc0fee9fb28ce4f678
 SIZE (RetroAchievements-rcheevos-31f8788fe0e694e99db7ce138d45a655c556fa96_GH0.tar.gz) = 522855
 SHA256 (biojppm-c4core-d35c7c9bf370134595699d791e6ff8db018ddc8d_GH0.tar.gz) = b768c8fb5dd4740317b7e1a3e43a0b32615d4d4e1e974d7ab515a80d2f1f318d
diff --git a/emulators/pcsx2/files/extra-patch-no-march-minimum-req b/emulators/pcsx2/files/extra-patch-no-march-minimum-req
new file mode 100644
index 000000000000..6e560dbe56c1
--- /dev/null
+++ b/emulators/pcsx2/files/extra-patch-no-march-minimum-req
@@ -0,0 +1,11 @@
+--- cmake/BuildParameters.cmake.orig	2023-06-25 15:34:40 UTC
++++ cmake/BuildParameters.cmake
+@@ -120,7 +120,7 @@ if(${PCSX2_TARGET_ARCHITECTURES} MATCHES "x86_64")
+ 			endif()
+ 		else()
+ 			#set(ARCH_FLAG "-march=native -fabi-version=6")
+-			set(ARCH_FLAG "-march=native")
++			set(ARCH_FLAG "-march=penryn")
+ 		endif()
+ 	endif()
+ 	list(APPEND PCSX2_DEFS _ARCH_64=1 _M_X86=1)
diff --git a/emulators/pcsx2/files/extra-patch-no-march-native b/emulators/pcsx2/files/extra-patch-no-march-native
new file mode 100644
index 000000000000..ea0b7c821181
--- /dev/null
+++ b/emulators/pcsx2/files/extra-patch-no-march-native
@@ -0,0 +1,11 @@
+--- cmake/BuildParameters.cmake.orig	2023-06-25 15:34:40 UTC
++++ cmake/BuildParameters.cmake
+@@ -120,7 +120,7 @@ if(${PCSX2_TARGET_ARCHITECTURES} MATCHES "x86_64")
+ 			endif()
+ 		else()
+ 			#set(ARCH_FLAG "-march=native -fabi-version=6")
+-			set(ARCH_FLAG "-march=native")
++			#set(ARCH_FLAG "-march=native")
+ 		endif()
+ 	endif()
+ 	list(APPEND PCSX2_DEFS _ARCH_64=1 _M_X86=1)
diff --git a/emulators/pcsx2/pkg-message b/emulators/pcsx2/pkg-message
new file mode 100644
index 000000000000..1481761cdc0c
--- /dev/null
+++ b/emulators/pcsx2/pkg-message
@@ -0,0 +1,7 @@
+[
+{ type: install
+  message: <<EOM
+PCSX2 should be recompiled with CPUTYPE defined for best performance.
+EOM
+}
+]



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202306271014.35RAEbCq004780>