mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-23 16:49:10 -07:00
games-emulation/dolphin: fix crash on pie-by-default profiles
Disable PIE-compatible code generation via CXXFLAGS+=-fno-pie.
Before upstream fix:
daa03cd106
dolphin assumed executable image to be in low addresses (<2GB)
and hardcoded 32-bit absolute addresses during JIT phase.
PIE-compatible code does not have this restriction and
allows mapping binaries above 2GB area (and breaks dolphin's JIT).
Strictly speaking -no-pie (link-time flag) does not or guarantee
or require low address mapping for binary if it was already built
as PIC/PIE.
But -fno-pie imposes additional restrictions on generated code by GCC
and makes -no-pie to take effect.
We don't need this fix for live ebuild.
Closes: https://bugs.gentoo.org/640124
Package-Manager: Portage-2.3.43, Repoman-2.3.10
This commit is contained in:
@@ -73,6 +73,7 @@ DEPEND="${RDEPEND}
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${P}-CHAR_WIDTH-collision.patch
|
||||
"${FILESDIR}"/${P}-xgetbv.patch
|
||||
"${FILESDIR}"/${P}-no-pie.patch
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
|
||||
26
games-emulation/dolphin/files/dolphin-5.0-no-pie.patch
Normal file
26
games-emulation/dolphin/files/dolphin-5.0-no-pie.patch
Normal file
@@ -0,0 +1,26 @@
|
||||
Disable PIE-compatible code generation via -fno-pie.
|
||||
|
||||
Before upstream fix:
|
||||
https://github.com/dolphin-emu/dolphin/commit/daa03cd1060cc826aca93a1dffc6e94bc6af6d5f
|
||||
dolphin assumed executable image to be in low addresses (<2GB)
|
||||
and hardcoded 32-bit absolute addresses during JIT phase.
|
||||
|
||||
PIE-compatible code does not have this restriction and
|
||||
allows mapping binaries above 2GB area (and breaks dolphin's JIT).
|
||||
|
||||
Strictly speaking -no-pie (link-time flag) does not or guarantee
|
||||
or require low address mapping for binary if it was already built
|
||||
as PIC/PIE.
|
||||
|
||||
But -fno-pie imposes additional restrictions on generated code by GCC
|
||||
and makes -no-pie to take effect.
|
||||
Bug: https://bugs.gentoo.org/640124
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -189,4 +189,4 @@ if(NOT ENABLE_GENERIC)
|
||||
set(_M_X86_64 1)
|
||||
- add_definitions(-D_M_X86=1 -D_M_X86_64=1 -msse2)
|
||||
- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fno-pie")
|
||||
+ add_definitions(-D_M_X86=1 -D_M_X86_64=1 -msse2 -fno-pie)
|
||||
+ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fno-pie -no-pie")
|
||||
else()
|
||||
Reference in New Issue
Block a user