From e0a4c72bdabb3019cb47d5fb47f3e1f3c6595466 Mon Sep 17 00:00:00 2001 From: Alexander Smirnov Date: Thu, 30 Oct 2025 09:25:15 +0100 Subject: [PATCH 1/2] Fix ya to build using external compiler but original os sdk --- build/conf/compilers/gnu_compiler.conf | 3 --- build/conf/linkers/ld.conf | 6 +++--- build/ymake.core.conf | 6 +++--- build/ymake_conf.py | 2 +- 4 files changed, 7 insertions(+), 10 deletions(-) diff --git a/build/conf/compilers/gnu_compiler.conf b/build/conf/compilers/gnu_compiler.conf index a33343866830..d91139f28a35 100644 --- a/build/conf/compilers/gnu_compiler.conf +++ b/build/conf/compilers/gnu_compiler.conf @@ -254,7 +254,6 @@ _CPP_ARGS_NEW=\ $SRCFLAGS \ $_LANG_CFLAGS_VALUE_NEW \ ${input:SRC} \ - $TOOLCHAIN_ENV \ $YNDEXER_OUTPUT \ && $_COMPILER_TIME_TRACE_POSTPROCESS \ $_C_CPP_KV_STYLE_NEW @@ -275,7 +274,6 @@ _C_ARGS_NEW=\ $EXTRA_OUTPUT \ $SRCFLAGS \ ${input:SRC} \ - $TOOLCHAIN_ENV \ $YNDEXER_OUTPUT \ $_C_CPP_KV_STYLE_NEW \ $SCU_NAME_KV_NEW @@ -298,7 +296,6 @@ _SRC_C_NODEPS_CMD=\ $EXTRA_C_FLAGS -c -o ${OUTFILE} ${SRC} ${pre=-I:INC} \ $CFLAGS \ $CONLYFLAGS \ - $TOOLCHAIN_ENV \ $_C_CPP_KV_STYLE _FORCE_CPP_FLAGS=-x c++ diff --git a/build/conf/linkers/ld.conf b/build/conf/linkers/ld.conf index e066567c1a53..40141d1e6477 100644 --- a/build/conf/linkers/ld.conf +++ b/build/conf/linkers/ld.conf @@ -188,7 +188,7 @@ when ($OS_LINUX == "yes") { _EXEC_SHARED_FLAG=-pie -fPIE -Wl,--unresolved-symbols=ignore-all -rdynamic } -_LD_ENV_STYLE=${cwd:ARCADIA_BUILD_ROOT} $TOOLCHAIN_ENV ${hide;kv:"p LD"} ${hide;kv:"pc light-blue"} ${hide;kv:"show_out"} +_LD_ENV_STYLE=${cwd:ARCADIA_BUILD_ROOT} ${hide;kv:"p LD"} ${hide;kv:"pc light-blue"} ${hide;kv:"show_out"} _ROOT_FLAGS=--source-root $ARCADIA_ROOT --build-root $(BUILD_ROOT) # Program @@ -352,7 +352,7 @@ when ($_AR_PLUGIN != "") { } _LD_LINK_LIB_EXTRA_INPUT= -_LD_TAIL_LINK_LIB=$AUTO_INPUT $_LD_LINK_LIB_EXTRA_INPUT ${hide;kv:"p AR"} $TOOLCHAIN_ENV ${hide;kv:"pc light-red"} ${hide;kv:"show_out"} +_LD_TAIL_LINK_LIB=$AUTO_INPUT $_LD_LINK_LIB_EXTRA_INPUT ${hide;kv:"p AR"} ${hide;kv:"pc light-red"} ${hide;kv:"show_out"} _LD_ARCHIVER=$YMAKE_PYTHON ${input:"build/scripts/link_lib.py"} ${quo:AR_TOOL} $AR_TYPE $_LD_LLVM_AR_FORMAT $ARCADIA_BUILD_ROOT $_LD_AR_PLUGIN -- $_LD_ARCHIVER_KV_PLUGIN -- _LD_LIB_GENERATE_MF=$GENERATE_MF && @@ -379,7 +379,7 @@ _LD_LINK_FAT_SUFFIX2=-Ya,peers $PEERS \ -Ya,linker $CXX_COMPILER_OLD \ $LDFLAGS_GLOBAL $C_FLAGS_PLATFORM $LD_SDK_VERSION \ -Ya,archiver $_LD_ARCHIVER \ - $TOOLCHAIN_ENV ${hide;kv:"p LD"} ${hide;kv:"pc light-blue"} ${hide;kv:"show_out"} + ${hide;kv:"p LD"} ${hide;kv:"pc light-blue"} ${hide;kv:"show_out"} LINK_FAT_OBJECT=\ $_LD_LINK_FAT_PREFIX \ diff --git a/build/ymake.core.conf b/build/ymake.core.conf index 781588674b33..7e068bdb66a9 100644 --- a/build/ymake.core.conf +++ b/build/ymake.core.conf @@ -3009,7 +3009,7 @@ macro _SRC("rodata", SRC, SRCFLAGS...) { } macro _SRC_S_ASM(SRC, SRCFLAGS...) { - .CMD=$C_COMPILER $C_FLAGS_PLATFORM $CFLAGS $SFLAGS $SRCFLAGS -c -o ${output;suf=.o:SRC} ${input:SRC} $TOOLCHAIN_ENV ${pre=-I:_C__INCLUDE} ${hide;kv:"p AS"} ${hide;kv:"pc light-green"} + .CMD=$C_COMPILER $C_FLAGS_PLATFORM $CFLAGS $SFLAGS $SRCFLAGS -c -o ${output;suf=.o:SRC} ${input:SRC} ${pre=-I:_C__INCLUDE} ${hide;kv:"p AS"} ${hide;kv:"pc light-green"} .SEM=target_options-privates-ITEM && target_options-privates-option target_sources && target_options-privates-args ${input:SRC} ${hide;output;suf=${OBJ_SUF}.o:SRC} && project_languages ASM } @@ -3034,13 +3034,13 @@ macro _SRC("s79", SRC, SRCFLAGS...) { # tag:src-processing macro _SRC("mm", SRC, SRCFLAGS...) { - .CMD=$C_COMPILER $C_FLAGS_PLATFORM -x objective-c++ -fobjc-arc -fobjc-abi-version=2 -c -o ${output;suf=.o:SRC} ${input:SRC} $CXXFLAGS ${pre=-I:_C__INCLUDE} ${SRCFLAGS} ${hide;kv:"p CC"} ${hide;kv:"pc light-green"} $TOOLCHAIN_ENV + .CMD=$C_COMPILER $C_FLAGS_PLATFORM -x objective-c++ -fobjc-arc -fobjc-abi-version=2 -c -o ${output;suf=.o:SRC} ${input:SRC} $CXXFLAGS ${pre=-I:_C__INCLUDE} ${SRCFLAGS} ${hide;kv:"p CC"} ${hide;kv:"pc light-green"} .STRUCT_CMD=yes } # tag:src-processing macro _SRC("sfdl", SRC, SRCFLAGS...) { - .CMD=$CXX_COMPILER $C_FLAGS_PLATFORM $CXXFLAGS $SFDL_FLAG ${SRCFLAGS} ${input:SRC} && ${tool:"tools/calcstaticopt"} -i ${tmp;suf=.tmp:SRC} -a $ARCADIA_ROOT ${stdout;output;defext=.inc;nopath;noext:SRC} ${hide;kv:"p SF"} ${hide;kv:"pc yellow"} $TOOLCHAIN_ENV + .CMD=$CXX_COMPILER $C_FLAGS_PLATFORM $CXXFLAGS $SFDL_FLAG ${SRCFLAGS} ${input:SRC} && ${tool:"tools/calcstaticopt"} -i ${tmp;suf=.tmp:SRC} -a $ARCADIA_ROOT ${stdout;output;defext=.inc;nopath;noext:SRC} ${hide;kv:"p SF"} ${hide;kv:"pc yellow"} .STRUCT_CMD=yes } diff --git a/build/ymake_conf.py b/build/ymake_conf.py index 9527d8e2c11f..cc4b5b291487 100755 --- a/build/ymake_conf.py +++ b/build/ymake_conf.py @@ -2371,7 +2371,7 @@ def print_macros(self): if not self.cuda_use_clang.value: cmd = '$YMAKE_PYTHON ${input:"build/scripts/compile_cuda.py"}' + mtime + custom_pid + '$NVCC $NVCC_STD $NVCC_FLAGS -c ${input:SRC} -o ${output;suf=${OBJ_SUF}${NVCC_OBJ_EXT}:SRC} ${pre=-I:_C__INCLUDE} --cflags $C_FLAGS_PLATFORM $CXXFLAGS $NVCC_STD $SRCFLAGS ${hide;input:"build/platform/cuda/cuda_runtime_include.h"} $NVCC_ENV $CUDA_HOST_COMPILER_ENV ${hide;kv:"p CC"} ${hide;kv:"pc light-green"}' # noqa E501 else: - cmd = '$CXX_COMPILER --cuda-path=$CUDA_ROOT $C_FLAGS_PLATFORM -c ${input:SRC} -o ${output;suf=${OBJ_SUF}${NVCC_OBJ_EXT}:SRC} ${pre=-I:_C__INCLUDE} $CXXFLAGS $SRCFLAGS $TOOLCHAIN_ENV ${hide;kv:"p CU"} ${hide;kv:"pc green"}' # noqa E501 + cmd = '$CXX_COMPILER --cuda-path=$CUDA_ROOT $C_FLAGS_PLATFORM -c ${input:SRC} -o ${output;suf=${OBJ_SUF}${NVCC_OBJ_EXT}:SRC} ${pre=-I:_C__INCLUDE} $CXXFLAGS $SRCFLAGS ${hide;kv:"p CU"} ${hide;kv:"pc green"}' # noqa E501 emit('_SRC_CU_CMD', cmd) emit('_SRC_CU_PEERDIR', ' '.join(sorted(self.peerdirs))) From d7b77bc4266d58214026be4d75c742fb34ef6acd Mon Sep 17 00:00:00 2001 From: Alexander Smirnov Date: Thu, 30 Oct 2025 09:30:46 +0100 Subject: [PATCH 2/2] Backport ya fix to look for llvm-nm and llvm-objcopy on the path --- contrib/libs/openssl/ar.pyplugin | 3 +++ 1 file changed, 3 insertions(+) diff --git a/contrib/libs/openssl/ar.pyplugin b/contrib/libs/openssl/ar.pyplugin index 29d7e55c3020..2347410b9918 100644 --- a/contrib/libs/openssl/ar.pyplugin +++ b/contrib/libs/openssl/ar.pyplugin @@ -54,6 +54,9 @@ def gen_renames(p, d): def rename_syms(where, ret): p = 'v1_' + if where == '/': + where = '' + # find symbols to rename syms = run(where + 'llvm-nm', '--extern-only', '--defined-only', '-A', ret)