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>