aboutsummaryrefslogtreecommitdiffstats
path: root/build/conf
diff options
context:
space:
mode:
authorAlexander Smirnov <alex@ydb.tech>2025-03-24 03:42:34 +0000
committerAlexander Smirnov <alex@ydb.tech>2025-03-24 03:42:34 +0000
commit3df8b53ce7c70b73ace8d17c34f466062e0b7ac1 (patch)
treeafab61cb1a33f19529b7c2a0731408a65832eb6b /build/conf
parentd7e55a6b32b9591d28485ff45ed016c3e4e6ca0d (diff)
parent1726c59403606d2788b58987a0a52288c0889479 (diff)
downloadydb-main.tar.gz
Merge pull request #16105 from ydb-platform/merge-libs-250324-0050HEADmain
Diffstat (limited to 'build/conf')
-rw-r--r--build/conf/go.conf46
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") {