diff options
author | thegeorg <thegeorg@yandex-team.com> | 2024-03-26 19:44:33 +0300 |
---|---|---|
committer | thegeorg <thegeorg@yandex-team.com> | 2024-03-26 20:01:05 +0300 |
commit | b58f3e7fc4912e5d5d08f9bf09b466e91bcf1fbd (patch) | |
tree | 3ff9b9181997f79435f8f7eda4006b89287fc274 | |
parent | 20b7d26a1c53d0d256f8b81ebbc1d5d8e3160b21 (diff) | |
download | ydb-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.conf | 14 |
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) } |