From afec0dc50d70a3ad55e3a55d1162f04a541a6468 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E7=9A=93?= Date: Fri, 28 Mar 2025 23:56:30 -0400 Subject: [PATCH] Use `-mword-relocations -fno-optimize-sibling-calls` in libretro PlayStation Vita builds The Vita builds of RetroArch and some libretro cores use these two flags, supposedly to fix relocation-related bugs. (cherry picked from commit 3c43cd5747b19bd4d9c0202fec1a68677ddbd5af) --- meson.build | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/meson.build b/meson.build index a60baaa9..dc3782dc 100644 --- a/meson.build +++ b/meson.build @@ -64,6 +64,18 @@ if is_libretro error('LTO is required when building for PowerPC architectures. Please pass either `-Db_lto=true` or `-Druby_lto=true` to Meson.') endif + if is_vita + compilers['c'].has_argument('-mword-relocations', required: true) + compilers['cpp'].has_argument('-mword-relocations', required: true) + libretro_cflags += '-mword-relocations' + libretro_cppflags += '-mword-relocations' + + compilers['c'].has_argument('-fno-optimize-sibling-calls', required: true) + compilers['cpp'].has_argument('-fno-optimize-sibling-calls', required: true) + libretro_cflags += '-fno-optimize-sibling-calls' + libretro_cppflags += '-fno-optimize-sibling-calls' + endif + if is_devkitarm compilers['c'].has_argument('-march=armv6k', required: true) compilers['cpp'].has_argument('-march=armv6k', required: true)