diff options
Diffstat (limited to 'platform/linuxbsd')
| -rw-r--r-- | platform/linuxbsd/detect.py | 28 | 
1 files changed, 21 insertions, 7 deletions
| diff --git a/platform/linuxbsd/detect.py b/platform/linuxbsd/detect.py index 6b527c6fb5..646ae4d457 100644 --- a/platform/linuxbsd/detect.py +++ b/platform/linuxbsd/detect.py @@ -67,10 +67,10 @@ def get_opts():          BoolVariable("use_static_cpp", "Link libgcc and libstdc++ statically for better portability", True),          BoolVariable("use_coverage", "Test Godot coverage", False),          BoolVariable("use_ubsan", "Use LLVM/GCC compiler undefined behavior sanitizer (UBSAN)", False), -        BoolVariable("use_asan", "Use LLVM/GCC compiler address sanitizer (ASAN))", False), -        BoolVariable("use_lsan", "Use LLVM/GCC compiler leak sanitizer (LSAN))", False), -        BoolVariable("use_tsan", "Use LLVM/GCC compiler thread sanitizer (TSAN))", False), -        BoolVariable("use_msan", "Use LLVM/GCC compiler memory sanitizer (MSAN))", False), +        BoolVariable("use_asan", "Use LLVM/GCC compiler address sanitizer (ASAN)", False), +        BoolVariable("use_lsan", "Use LLVM/GCC compiler leak sanitizer (LSAN)", False), +        BoolVariable("use_tsan", "Use LLVM/GCC compiler thread sanitizer (TSAN)", False), +        BoolVariable("use_msan", "Use LLVM compiler memory sanitizer (MSAN)", False),          BoolVariable("pulseaudio", "Detect and use PulseAudio", True),          BoolVariable("udev", "Use udev for gamepad connection callbacks", True),          BoolVariable("debug_symbols", "Add debugging symbols to release/release_debug builds", True), @@ -147,11 +147,23 @@ def configure(env):          env.extra_suffix += "s"          if env["use_ubsan"]: -            env.Append(CCFLAGS=["-fsanitize=undefined"]) +            env.Append( +                CCFLAGS=[ +                    "-fsanitize=undefined,shift,shift-exponent,integer-divide-by-zero,unreachable,vla-bound,null,return,signed-integer-overflow,bounds,float-divide-by-zero,float-cast-overflow,nonnull-attribute,returns-nonnull-attribute,bool,enum,vptr,pointer-overflow,builtin" +                ] +            )              env.Append(LINKFLAGS=["-fsanitize=undefined"]) +            if env["use_llvm"]: +                env.Append( +                    CCFLAGS=[ +                        "-fsanitize=nullability-return,nullability-arg,function,nullability-assign,implicit-integer-sign-change" +                    ] +                ) +            else: +                env.Append(CCFLAGS=["-fsanitize=bounds-strict"])          if env["use_asan"]: -            env.Append(CCFLAGS=["-fsanitize=address"]) +            env.Append(CCFLAGS=["-fsanitize=address,pointer-subtract,pointer-compare"])              env.Append(LINKFLAGS=["-fsanitize=address"])          if env["use_lsan"]: @@ -162,8 +174,10 @@ def configure(env):              env.Append(CCFLAGS=["-fsanitize=thread"])              env.Append(LINKFLAGS=["-fsanitize=thread"]) -        if env["use_msan"]: +        if env["use_msan"] and env["use_llvm"]:              env.Append(CCFLAGS=["-fsanitize=memory"]) +            env.Append(CCFLAGS=["-fsanitize-memory-track-origins"]) +            env.Append(CCFLAGS=["-fsanitize-recover=memory"])              env.Append(LINKFLAGS=["-fsanitize=memory"])      if env["use_lto"]: |