2
0
Эх сурвалжийг харах

Increase compiler optimization when using `target=release` on iOS/Android

Hugo Locurcio 3 жил өмнө
parent
commit
78b4ec2d4d

+ 5 - 2
platform/android/detect.py

@@ -188,8 +188,11 @@ def configure(env):
 
 
     if env["target"].startswith("release"):
     if env["target"].startswith("release"):
         if env["optimize"] == "speed":  # optimize for speed (default)
         if env["optimize"] == "speed":  # optimize for speed (default)
-            env.Append(LINKFLAGS=["-O2"])
-            env.Append(CCFLAGS=["-O2", "-fomit-frame-pointer"])
+            # `-O2` is more friendly to debuggers than `-O3`, leading to better crash backtraces
+            # when using `target=release_debug`.
+            opt = "-O3" if env["target"] == "release" else "-O2"
+            env.Append(LINKFLAGS=[opt])
+            env.Append(CCFLAGS=[opt, "-fomit-frame-pointer"])
         elif env["optimize"] == "size":  # optimize for size
         elif env["optimize"] == "size":  # optimize for size
             env.Append(CCFLAGS=["-Os"])
             env.Append(CCFLAGS=["-Os"])
             env.Append(LINKFLAGS=["-Os"])
             env.Append(LINKFLAGS=["-Os"])

+ 5 - 2
platform/iphone/detect.py

@@ -47,8 +47,11 @@ def configure(env):
     if env["target"].startswith("release"):
     if env["target"].startswith("release"):
         env.Append(CPPDEFINES=["NDEBUG", ("NS_BLOCK_ASSERTIONS", 1)])
         env.Append(CPPDEFINES=["NDEBUG", ("NS_BLOCK_ASSERTIONS", 1)])
         if env["optimize"] == "speed":  # optimize for speed (default)
         if env["optimize"] == "speed":  # optimize for speed (default)
-            env.Append(CCFLAGS=["-O2", "-ftree-vectorize", "-fomit-frame-pointer"])
-            env.Append(LINKFLAGS=["-O2"])
+            # `-O2` is more friendly to debuggers than `-O3`, leading to better crash backtraces
+            # when using `target=release_debug`.
+            opt = "-O3" if env["target"] == "release" else "-O2"
+            env.Append(CCFLAGS=[opt, "-ftree-vectorize", "-fomit-frame-pointer"])
+            env.Append(LINKFLAGS=[opt])
         elif env["optimize"] == "size":  # optimize for size
         elif env["optimize"] == "size":  # optimize for size
             env.Append(CCFLAGS=["-Os", "-ftree-vectorize"])
             env.Append(CCFLAGS=["-Os", "-ftree-vectorize"])
             env.Append(LINKFLAGS=["-Os"])
             env.Append(LINKFLAGS=["-Os"])