diff options
author | Alexander Smirnov <alex@ydb.tech> | 2025-03-24 03:42:34 +0000 |
---|---|---|
committer | Alexander Smirnov <alex@ydb.tech> | 2025-03-24 03:42:34 +0000 |
commit | 3df8b53ce7c70b73ace8d17c34f466062e0b7ac1 (patch) | |
tree | afab61cb1a33f19529b7c2a0731408a65832eb6b /build/conf | |
parent | d7e55a6b32b9591d28485ff45ed016c3e4e6ca0d (diff) | |
parent | 1726c59403606d2788b58987a0a52288c0889479 (diff) | |
download | ydb-main.tar.gz |
Diffstat (limited to 'build/conf')
-rw-r--r-- | build/conf/go.conf | 46 |
1 files changed, 43 insertions, 3 deletions
diff --git a/build/conf/go.conf b/build/conf/go.conf index 2618387419..859d8faa65 100644 --- a/build/conf/go.conf +++ b/build/conf/go.conf @@ -264,7 +264,7 @@ GO_LINK_DLL+=&& $COPY_CMD $BINDIR/_cgo_export.h ${output;pre=${MODULE_PREFIX};su # tag:go-specific CGO_ENABLED=yes _GO_LINK_FLAGS_LINKMODE= -when ($OS_WINDOWS == "yes" || $SANITIZER_TYPE && $SANITIZER_TYPE != "no") { +when ($OS_WINDOWS == "yes" || ($SANITIZER_TYPE && $SANITIZER_TYPE != "no" && $SANITIZER_TYPE != "address" && $SANITIZER_TYPE != "memory")) { CGO_ENABLED=no } elsewhen ($CGO_ENABLED == "yes") { @@ -690,6 +690,20 @@ module _GO_BASE_UNIT: _BASE_UNIT { CGO2_CFLAGS_VALUE += -Wno-unused-variable } + when ($SANITIZER_TYPE == "address") { + CGO_CFLAGS_VALUE += -fsanitize=address + CGO2_CFLAGS_VALUE += -fsanitize=address + CGO_LDFLAGS_VALUE += -fsanitize=address + CGO2_LDFLAGS_VALUE += -fsanitize=address + } + + when ($SANITIZER_TYPE == "memory") { + CGO_CFLAGS_VALUE += -fsanitize=memory + CGO2_CFLAGS_VALUE += -fsanitize=memory + CGO_LDFLAGS_VALUE += -fsanitize=memory + CGO2_LDFLAGS_VALUE += -fsanitize=memory + } + select ($GO_VET) { "yes" | "on" ? { _GO_VET=yes @@ -788,6 +802,19 @@ module _GO_BASE_UNIT: _BASE_UNIT { _GO_COMPILE_FLAGS_RACE= _GO_LINK_FLAGS_RACE= } + + when ($SANITIZER_TYPE == "memory") { + _GO_COMPILE_FLAGS_SANITIZERS=-msan + _GO_LINK_FLAGS_SANITAZERS=-msan + } + elsewhen ($SANITIZER_TYPE == "address") { + _GO_COMPILE_FLAGS_SANITIZERS=-asan + _GO_LINK_FLAGS_SANITAZERS=-asan + } + otherwise { + _GO_COMPILE_FLAGS_SANITIZERS= + _GO_LINK_FLAGS_SANITAZERS= + } when ($PIC == "yes" || $PIE == "yes") { _GO_COMPILE_FLAGS_SHARED=-shared @@ -799,8 +826,8 @@ module _GO_BASE_UNIT: _BASE_UNIT { } GO_ASM_FLAGS_VALUE += $_GO_ASM_FLAGS_SHARED - GO_COMPILE_FLAGS_VALUE += $_GO_COMPILE_FLAGS_RACE $_GO_COMPILE_FLAGS_SHARED - GO_LINK_FLAGS_VALUE += $_GO_LINK_FLAGS_LINKMODE $_GO_LINK_FLAGS_RACE + GO_COMPILE_FLAGS_VALUE += $_GO_COMPILE_FLAGS_RACE $_GO_COMPILE_FLAGS_SHARED $_GO_COMPILE_FLAGS_SANITIZERS + GO_LINK_FLAGS_VALUE += $_GO_LINK_FLAGS_LINKMODE $_GO_LINK_FLAGS_RACE $_GO_LINK_FLAGS_SANITAZERS ADDINCL(${GOSTD}/runtime) } @@ -862,6 +889,19 @@ module GO_PROGRAM: _GO_BASE_UNIT { when ($CGO_ENABLED == "yes") { PEERDIR += ${GOSTD}/runtime/cgo + when ($SANITIZER_TYPE == "memory") { + PEERDIR += ${GOSTD}/runtime/msan + when ($CLANG == "yes") { + PEERDIR += contrib/libs/clang${COMPILER_VERSION}-rt/lib/msan + } + } + + when ($SANITIZER_TYPE == "address") { + PEERDIR += ${GOSTD}/runtime/asan + when ($CLANG == "yes") { + PEERDIR += contrib/libs/clang${COMPILER_VERSION}-rt/lib/asan + } + } } when ($RACE == "yes") { |