aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorthegeorg <thegeorg@yandex-team.com>2024-03-26 19:44:33 +0300
committerthegeorg <thegeorg@yandex-team.com>2024-03-26 20:01:05 +0300
commitb58f3e7fc4912e5d5d08f9bf09b466e91bcf1fbd (patch)
tree3ff9b9181997f79435f8f7eda4006b89287fc274
parent20b7d26a1c53d0d256f8b81ebbc1d5d8e3160b21 (diff)
downloadydb-b58f3e7fc4912e5d5d08f9bf09b466e91bcf1fbd.tar.gz
Mandate usage of USE_LLVM_BC() macro when compiling LLVM bytecode
https://github.com/ydb-platform/ydb/pull/3066 cd249ef70bf634c9efa65bac787b1dc89a14a076
-rw-r--r--build/ymake.core.conf14
1 files changed, 12 insertions, 2 deletions
diff --git a/build/ymake.core.conf b/build/ymake.core.conf
index f5ac24fb71..e521221309 100644
--- a/build/ymake.core.conf
+++ b/build/ymake.core.conf
@@ -4699,14 +4699,16 @@ macro CTEMPLATE_VARNAMES(File) {
}
LLVM_OPTS=
-CLANG_BC_ROOT=${CLANG14_RESOURCE_GLOBAL}
+CLANG_BC_ROOT=
macro USE_LLVM_BC14() {
SET(CLANG_BC_ROOT ${CLANG14_RESOURCE_GLOBAL})
+ SET(LLVM_LLC_TOOL contrib/libs/llvm14/tools/llc)
}
macro USE_LLVM_BC16() {
SET(CLANG_BC_ROOT ${CLANG16_RESOURCE_GLOBAL})
+ SET(LLVM_LLC_TOOL contrib/libs/llvm16/tools/llc)
}
### @usage: CLANG_EMIT_AST_CXX(Input Output Opts...)
@@ -4725,6 +4727,10 @@ macro CLANG_EMIT_AST_CXX(Input, Output, Opts...) {
macro LLVM_COMPILE_CXX(Input, Output, Opts...) {
.CMD=$YMAKE_PYTHON ${input:"build/scripts/clang_wrapper.py"} $WINDOWS ${CLANG_BC_ROOT}/bin/clang++ ${pre=-I:_C__INCLUDE} $BC_CXXFLAGS $C_FLAGS_PLATFORM -Wno-unknown-warning-option $LLVM_OPTS ${NO_LTO_CFLAGS} -emit-llvm -c ${input:Input} -o ${noauto;output:Output} $Opts ${kv;hide:"p BC"} ${kv;hide:"pc light-green"}
.SEM=llvm_compile_cxx ${input:Input} ${noauto;output:Output} ${"${CLANGPLUSPLUS}"} -Wno-unknown-warning-option $LLVM_OPTS ${NO_LTO_CFLAGS} -emit-llvm ${Opts}
+ when ($CLANG_BC_ROOT == "") {
+ _OK = no
+ }
+ ASSERT(_OK "Invoke USE_LLVM_BC() with specific version first")
PEERDIR(build/platform/clang)
}
@@ -4735,6 +4741,10 @@ macro LLVM_COMPILE_CXX(Input, Output, Opts...) {
macro LLVM_COMPILE_C(Input, Output, Opts...) {
.CMD=$YMAKE_PYTHON ${input:"build/scripts/clang_wrapper.py"} $WINDOWS ${CLANG_BC_ROOT}/bin/clang ${pre=-I:_C__INCLUDE} $BC_CFLAGS $C_FLAGS_PLATFORM $LLVM_OPTS ${NO_LTO_CFLAGS} -emit-llvm -c ${input:Input} -o ${noauto;output:Output} $Opts ${kv;hide:"p BC"} ${kv;hide:"pc light-green"}
.SEM=llvm_compile_c ${input:Input} ${noauto;output:Output} ${"${CLANGC}"} -Wno-unknown-warning-option $LLVM_OPTS ${NO_LTO_CFLAGS} -emit-llvm ${Opts}
+ when ($CLANG_BC_ROOT == "") {
+ _OK = no
+ }
+ ASSERT(CLANG_BC_ROOT "Invoke USE_LLVM_BC() with specific version first")
PEERDIR(build/platform/clang)
}
@@ -4797,7 +4807,7 @@ macro LLVM_OPT(Input, Output, Opts...) {
###
### Note: Output name is calculated as concatenation of Src name and platform specific object file extension.
macro LLVM_LLC(Src, Opts...) {
- .CMD=${tool:"contrib/libs/llvm14/tools/llc"} ${input:Src} --filetype obj -o ${output;suf=$OBJECT_SUF;noauto:Src} $Opts ${kv;hide:"p LC"} ${kv;hide:"pc yellow"}
+ .CMD=${tool:LLVM_LLC_TOOL} ${input:Src} --filetype obj -o ${output;suf=$OBJECT_SUF;noauto:Src} $Opts ${kv;hide:"p LC"} ${kv;hide:"pc yellow"}
.SEM=add_custom_command OUTPUT ${output;suf=$OBJECT_SUF;noauto:Src} DEPENDS ${input:Src} COMMAND ${LLVMLLC} --filetype obj ${input:Src} -o ${output;suf=$OBJECT_SUF;noauto:Src} $Opts
PEERDIR(build/platform/clang)
}