aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrsn88872017-03-10 22:09:07 -0600
committerrsn88872017-03-10 22:25:39 -0600
commitf5a20ab45410b32b51647ec22151d4b0fe632e60 (patch)
tree73a605cf7dd86e47b51a02931fc2f6a3e772a2ae
parentb51421229bb96e15181d62f6706601967fe571c4 (diff)
downloadscummvm-rg350-f5a20ab45410b32b51647ec22151d4b0fe632e60.tar.gz
scummvm-rg350-f5a20ab45410b32b51647ec22151d4b0fe632e60.tar.bz2
scummvm-rg350-f5a20ab45410b32b51647ec22151d4b0fe632e60.zip
PSP2: new g++ flags fix crashing scumm-7-8 games
The Dig and Full Throttle were both crashing on startup on PSP2 (Vita) when -O2, -O3, or -Os compiler optimizations were enabled. The problem is fixed by adding the "-fno-optimize-sibling-calls" compiler flag.
-rwxr-xr-xconfigure7
1 files changed, 7 insertions, 0 deletions
diff --git a/configure b/configure
index 43b895794d..d958c0e411 100755
--- a/configure
+++ b/configure
@@ -2663,8 +2663,15 @@ case $_host_os in
append_var CXXFLAGS "-Wl,-q -I$VITASDK/arm-vita-eabi/include"
append_var CXXFLAGS "-march=armv7-a -mtune=cortex-a9 -mfpu=neon -mfloat-abi=hard"
append_var LDFLAGS "-Wl,-q -L$VITASDK/arm-vita-eabi/lib"
+ #the next line fixes a crash when starting scumm-7-8 games (The Dig etc.)
+ #when either -O2, -O3 or -Os optimizations are enabled
+ append_var CXXFLAGS "-fno-optimize-sibling-calls"
+ #the next line fixes "branch out of range" error in gob engine when -Os is used
append_var CXXFLAGS "-mlong-calls"
if test "$_debug_build" = no; then
+ #optimize for smallest file size. This is necessary to prevent a crash on startup
+ #due to the large executable file size when many engines are enabled
+ #for example when --enable-all-engines is used to enable all the unstable engines
_optimization_level=-Os
fi
if test "$_debug_build" = yes; then