已合并
fix(build): harden shell command invocation #884
liu-wei创建于 5月23日
fix(build): harden shell command invocation #884
已合并
liu-wei创建于 5月23日
6 个文件变更+46-44
Mbuild.sh+27-28
@@ -977,14 +977,14 @@ parse_changed_files() {
977 CHANGED_FILES=$PWD/$CHANGED_FILES977 CHANGED_FILES=$PWD/$CHANGED_FILES
978 fi978 fi
979 979 
980- echo "changed files is "$CHANGED_FILES980+ echo "changed files is $CHANGED_FILES"
981- echo $dotted_line981+ echo "$dotted_line"
982 echo "changed lines:"982 echo "changed lines:"
983- cat $CHANGED_FILES983+ cat "$CHANGED_FILES"
984- echo $dotted_line984+ echo "$dotted_line"
985 985 
986- COMPILED_OPS=$(python3 scripts/ci/parse_changed_ops.py $CHANGED_FILES "$ENABLE_EXPERIMENTAL")986+ COMPILED_OPS=$(python3 scripts/ci/parse_changed_ops.py "$CHANGED_FILES" "$ENABLE_EXPERIMENTAL")
987- echo "related ops "$COMPILED_OPS987+ echo "related ops $COMPILED_OPS"
988 988 
989 if [[ -z $COMPILED_OPS ]]; then989 if [[ -z $COMPILED_OPS ]]; then
990 if [[ "$ENABLE_EXPERIMENTAL" == "TRUE" ]]; then990 if [[ "$ENABLE_EXPERIMENTAL" == "TRUE" ]]; then
@@ -999,10 +999,10 @@ parse_changed_files() {
999 return999 return
1000 fi1000 fi
1001 1001 
1002- local script_ret=$(python3 scripts/ci/parse_changed_files.py $CHANGED_FILES "$ENABLE_EXPERIMENTAL")1002+ local script_ret=$(python3 scripts/ci/parse_changed_files.py "$CHANGED_FILES" "$ENABLE_EXPERIMENTAL")
1003 IFS='&&' read -r related_ut soc_info <<<"$script_ret"1003 IFS='&&' read -r related_ut soc_info <<<"$script_ret"
1004- echo "related ut "$related_ut1004+ echo "related ut $related_ut"
1005- echo "related soc_info "$soc_info1005+ echo "related soc_info $soc_info"
1006 1006 
1007 COMPUTE_UNIT=$soc_info1007 COMPUTE_UNIT=$soc_info
1008 1008 
@@ -1170,36 +1170,36 @@ cmake_init() {
1170 mkdir -p "${BUILD_OUT_PATH}"1170 mkdir -p "${BUILD_OUT_PATH}"
1171 fi1171 fi
1172 1172 
1173- [ -f "${BUILD_PATH}/CMakeCache.txt" ] && rm -f ${BUILD_PATH}/CMakeCache.txt1173+ [ -f "${BUILD_PATH}/CMakeCache.txt" ] && rm -f "${BUILD_PATH}/CMakeCache.txt"
1174 1174 
1175 cd "${BUILD_PATH}" && cmake ${CMAKE_ARGS} ..1175 cd "${BUILD_PATH}" && cmake ${CMAKE_ARGS} ..
1176}1176}
1177 1177 
1178clean_build() {1178clean_build() {
1179 if [ -d "${BUILD_PATH}" ]; then1179 if [ -d "${BUILD_PATH}" ]; then
1180- rm -rf ${BUILD_PATH}/*1180+ rm -rf "${BUILD_PATH}"/*
1181 fi1181 fi
1182}1182}
1183 1183 
1184clean_build_out() {1184clean_build_out() {
1185 if [ -d "${BUILD_OUT_PATH}" ]; then1185 if [ -d "${BUILD_OUT_PATH}" ]; then
1186- rm -rf ${BUILD_OUT_PATH}/*1186+ rm -rf "${BUILD_OUT_PATH}"/*
1187 fi1187 fi
1188}1188}
1189 1189 
1190clean_build_binary() {1190clean_build_binary() {
1191 if [ -d "${BUILD_PATH}/tbe" ]; then1191 if [ -d "${BUILD_PATH}/tbe" ]; then
1192- rm -rf ${BUILD_PATH}/tbe/1192+ rm -rf "${BUILD_PATH}/tbe/"
1193 fi1193 fi
1194 if [ -d "${BUILD_PATH}/autogen" ]; then1194 if [ -d "${BUILD_PATH}/autogen" ]; then
1195- rm -rf ${BUILD_PATH}/autogen/1195+ rm -rf "${BUILD_PATH}/autogen/"
1196 fi1196 fi
1197 if [ -d "${BUILD_PATH}/binary" ]; then1197 if [ -d "${BUILD_PATH}/binary" ]; then
1198- rm -rf ${BUILD_PATH}/binary/1198+ rm -rf "${BUILD_PATH}/binary/"
1199 fi1199 fi
1200 if [[ "$ENABLE_STATIC" == "TRUE" ]]; then1200 if [[ "$ENABLE_STATIC" == "TRUE" ]]; then
1201 if [ -d "${BUILD_PATH}/static_library_files" ]; then1201 if [ -d "${BUILD_PATH}/static_library_files" ]; then
1202- rm -rf ${BUILD_PATH}/static_library_files/1202+ rm -rf "${BUILD_PATH}/static_library_files/"
1203 fi1203 fi
1204 fi1204 fi
1205}1205}
@@ -1210,8 +1210,8 @@ build_static_lib() {
1210 1210 
1211 cd "${BUILD_PATH}" && cmake ${CMAKE_ARGS} ..1211 cd "${BUILD_PATH}" && cmake ${CMAKE_ARGS} ..
1212 local all_targets=$(cmake --build . --target help)1212 local all_targets=$(cmake --build . --target help)
1213- rm -fr ${BUILD_PATH}/bin_tmp1213+ rm -fr "${BUILD_PATH}/bin_tmp"
1214- mkdir -p ${BUILD_PATH}/bin_tmp1214+ mkdir -p "${BUILD_PATH}/bin_tmp"
1215 if grep -wq "ophost_cv_static" <<< "${all_targets}"; then1215 if grep -wq "ophost_cv_static" <<< "${all_targets}"; then
1216 cmake --build . --target ophost_cv_static -- ${VERBOSE} -j $THREAD_NUM1216 cmake --build . --target ophost_cv_static -- ${VERBOSE} -j $THREAD_NUM
1217 fi1217 fi
@@ -1222,9 +1222,9 @@ build_static_lib() {
1222 fi1222 fi
1223 cmake --build . --target opapi_cv_static -- ${VERBOSE} -j $THREAD_NUM1223 cmake --build . --target opapi_cv_static -- ${VERBOSE} -j $THREAD_NUM
1224 for unit in "${UNITS[@]}"; do1224 for unit in "${UNITS[@]}"; do
1225- rm -fr ${BUILD_PATH}/bin_tmp/${unit}1225+ rm -fr "${BUILD_PATH}/bin_tmp/${unit}"
1226- python3 "${BASE_PATH}/scripts/util/build_opp_kernel_static.py" GenStaticOpResourceIni -s ${unit} -b ${BUILD_PATH}1226+ python3 "${BASE_PATH}/scripts/util/build_opp_kernel_static.py" GenStaticOpResourceIni -s ${unit} -b "${BUILD_PATH}"
1227- python3 "${BASE_PATH}/scripts/util/build_opp_kernel_static.py" StaticCompile -s ${unit} -b ${BUILD_PATH} -n=0 -a=${ARCH_INFO}1227+ python3 "${BASE_PATH}/scripts/util/build_opp_kernel_static.py" StaticCompile -s ${unit} -b "${BUILD_PATH}" -n=0 -a=${ARCH_INFO}
1228 done1228 done
1229 cd "${BUILD_PATH}" && cmake ${CMAKE_ARGS} ..1229 cd "${BUILD_PATH}" && cmake ${CMAKE_ARGS} ..
1230 cmake --build . --target cann_cv_static -- ${VERBOSE} -j $THREAD_NUM1230 cmake --build . --target cann_cv_static -- ${VERBOSE} -j $THREAD_NUM
@@ -1295,8 +1295,7 @@ build_binary() {
1295 UNITS+=("ascend910b")1295 UNITS+=("ascend910b")
1296 fi1296 fi
1297 for unit in "${UNITS[@]}"; do1297 for unit in "${UNITS[@]}"; do
1298- remove_opc_cmd="rm -rf ${BUILD_PATH}/binary/${unit}/bin/opc_cmd"1298+ rm -rf "${BUILD_PATH}/binary/${unit}/bin/opc_cmd"
1299- ${remove_opc_cmd}
1300 if grep -wq "prepare_binary_compile_${unit}" <<< "${all_targets}"; then1299 if grep -wq "prepare_binary_compile_${unit}" <<< "${all_targets}"; then
1301 cmake --build . --target prepare_binary_compile_${unit} -- ${VERBOSE} -j 11300 cmake --build . --target prepare_binary_compile_${unit} -- ${VERBOSE} -j 1
1302 if [ $? -ne 0 ]; then1301 if [ $? -ne 0 ]; then
@@ -1310,16 +1309,16 @@ build_binary() {
1310 cd "$BUILD_PATH" && cmake .. ${CMAKE_ARGS}1309 cd "$BUILD_PATH" && cmake .. ${CMAKE_ARGS}
1311 1310 
1312 local cur_path=$(pwd)1311 local cur_path=$(pwd)
1313- mkdir -p ${cur_path}/op_impl/ai_core/tbe/op_tiling1312+ mkdir -p "${cur_path}/op_impl/ai_core/tbe/op_tiling"
1314 if [ ! -L op_impl/ai_core/tbe/op_tiling/liboptiling.so ]; then1313 if [ ! -L op_impl/ai_core/tbe/op_tiling/liboptiling.so ]; then
1315- if [ -e ${cur_path}/libophost_cv.so ]; then1314+ if [ -e "${cur_path}/libophost_cv.so" ]; then
1316- ln -s ${cur_path}/libophost_cv.so op_impl/ai_core/tbe/op_tiling/liboptiling.so1315+ ln -s "${cur_path}/libophost_cv.so" op_impl/ai_core/tbe/op_tiling/liboptiling.so
1317 else1316 else
1318 cmake --build . --target ophost_cv -- ${VERBOSE} -j $THREAD_NUM1317 cmake --build . --target ophost_cv -- ${VERBOSE} -j $THREAD_NUM
1319- ln -s ${cur_path}/libophost_cv.so op_impl/ai_core/tbe/op_tiling/liboptiling.so1318+ ln -s "${cur_path}/libophost_cv.so" op_impl/ai_core/tbe/op_tiling/liboptiling.so
1320 fi1319 fi
1321 fi1320 fi
1322- export ASCEND_CUSTOM_OPP_PATH=${cur_path}1321+ export ASCEND_CUSTOM_OPP_PATH="${cur_path}"
1323 if echo "${all_targets}" | grep -wq "binary"; then1322 if echo "${all_targets}" | grep -wq "binary"; then
1324 cmake --build . --target binary -- ${VERBOSE} -j $THREAD_NUM1323 cmake --build . --target binary -- ${VERBOSE} -j $THREAD_NUM
1325 if [ $? -ne 0 ]; then1324 if [ $? -ne 0 ]; then
@@ -30,7 +30,7 @@ function(kernel_src_copy)
30 COMMAND30 COMMAND
31 ${CMAKE_COMMAND} -E make_directory ${KNCPY_DST_DIR}/${OP_NAME}31 ${CMAKE_COMMAND} -E make_directory ${KNCPY_DST_DIR}/${OP_NAME}
32 COMMAND32 COMMAND
33- bash -c "find ${SRC_DIR} -mindepth 1 -maxdepth 1 -exec cp -r {} ${KNCPY_DST_DIR}/${OP_NAME} \\;"33+ find "${SRC_DIR}" -mindepth 1 -maxdepth 1 -exec cp -r {} "${KNCPY_DST_DIR}/${OP_NAME}" \;
34 VERBATIM34 VERBATIM
35 )35 )
36 add_dependencies(${KNCPY_TARGET} ${OP_NAME}_src_copy)36 add_dependencies(${KNCPY_TARGET} ${OP_NAME}_src_copy)
@@ -46,9 +46,9 @@ function(kernel_src_copy)
46 COMMAND46 COMMAND
47 ${CMAKE_COMMAND} -E make_directory ${KNCPY_DST_DIR}/common47 ${CMAKE_COMMAND} -E make_directory ${KNCPY_DST_DIR}/common
48 COMMAND48 COMMAND
49- bash -c "cp -r ${OPBASE_SOURCE_PATH}/pkg_inc/op_common/atvoss ${KNCPY_DST_DIR}/common"49+ cp -r "${OPBASE_SOURCE_PATH}/pkg_inc/op_common/atvoss" "${KNCPY_DST_DIR}/common"
50 COMMAND50 COMMAND
51- bash -c "cp -r ${OPBASE_SOURCE_PATH}/include/op_common/op_kernel ${KNCPY_DST_DIR}/common"51+ cp -r "${OPBASE_SOURCE_PATH}/include/op_common/op_kernel" "${KNCPY_DST_DIR}/common"
52 VERBATIM52 VERBATIM
53 )53 )
54 add_dependencies(${KNCPY_TARGET} atvoss_src_copy)54 add_dependencies(${KNCPY_TARGET} atvoss_src_copy)
@@ -539,9 +539,8 @@ endfunction()
539# get op_type from *_def.cpp539# get op_type from *_def.cpp
540# ######################################################################################################################540# ######################################################################################################################
541function(check_op_supported OP_NAME OP_DIR COMPUTE_UNIT OP_SUPPORTED_COMPUTE_UNIT)541function(check_op_supported OP_NAME OP_DIR COMPUTE_UNIT OP_SUPPORTED_COMPUTE_UNIT)
542- set(cmd "find ${OP_DIR} -name ${OP_NAME}_def.cpp -exec grep '\.AddConfig(\\s*\"${COMPUTE_UNIT}\"' {} \;")
543 execute_process(542 execute_process(
544- COMMAND bash -c "${cmd}"543+ COMMAND find "${OP_DIR}" -name "${OP_NAME}_def.cpp" -exec grep "\\.AddConfig(\\s*\"${COMPUTE_UNIT}\"" {} \;
545 OUTPUT_VARIABLE op_supported_compute_unit544 OUTPUT_VARIABLE op_supported_compute_unit
546 )545 )
547 if(NOT op_supported_compute_unit)546 if(NOT op_supported_compute_unit)
@@ -343,11 +343,11 @@ function(gen_aicpu_json_symbol enable_built_in)
343 set(MERGED_JSON ${CMAKE_BINARY_DIR}/aicpu_cv.json)343 set(MERGED_JSON ${CMAKE_BINARY_DIR}/aicpu_cv.json)
344 endif()344 endif()
345 345 
346- set(cmd "python3 ${CMAKE_SOURCE_DIR}/scripts/kernel/binary_script/parser_ini.py ${ASCEND_AUTOGEN_PATH}/aicpu_kernel.ini ${MERGED_JSON}")346+ set(cmd python3 "${CMAKE_SOURCE_DIR}/scripts/kernel/binary_script/parser_ini.py" "${ASCEND_AUTOGEN_PATH}/aicpu_kernel.ini" "${MERGED_JSON}")
347- message("cmd: ${cmd}")347+ message("cmd: ${cmd}")
348 348 
349 execute_process(349 execute_process(
350- COMMAND bash -c "${cmd}"350+ COMMAND ${cmd}
351 WORKING_DIRECTORY ${ASCEND_AUTOGEN_PATH}351 WORKING_DIRECTORY ${ASCEND_AUTOGEN_PATH}
352 OUTPUT_VARIABLE result352 OUTPUT_VARIABLE result
353 ERROR_VARIABLE error353 ERROR_VARIABLE error
@@ -421,13 +421,16 @@ if(UT_TEST_ALL OR OP_KERNEL_UT)
421 set(gen_tiling_head_file ${OPS_CV_DIR}/tests/ut/op_kernel/scripts/gen_tiling_head_file.sh)421 set(gen_tiling_head_file ${OPS_CV_DIR}/tests/ut/op_kernel/scripts/gen_tiling_head_file.sh)
422 set(gen_tiling_so_path ${CMAKE_CURRENT_BINARY_DIR}/lib${opName}_${socVersion}_tiling_tmp.so)422 set(gen_tiling_so_path ${CMAKE_CURRENT_BINARY_DIR}/lib${opName}_${socVersion}_tiling_tmp.so)
423 set(gen_tiling_head_tag ${opName}_${socVersion}_gen_head)423 set(gen_tiling_head_tag ${opName}_${socVersion}_gen_head)
424- set(gen_cmd "bash ${gen_tiling_head_file} ${OP_TYPE} ${opName} ${gen_tiling_so_path} ${CUSTOM_TILING_DATA_KEYS}")424+ set(gen_cmd bash "${gen_tiling_head_file}" "${OP_TYPE}" "${opName}" "${gen_tiling_so_path}")
425+ if(CUSTOM_TILING_DATA_KEYS)
426+ list(APPEND gen_cmd "${CUSTOM_TILING_DATA_KEYS}")
427+ endif()
425 message("gen tiling head file to ${tilingFile}, command:")428 message("gen tiling head file to ${tilingFile}, command:")
426 message("${gen_cmd}")429 message("${gen_cmd}")
427 add_custom_command(430 add_custom_command(
428 OUTPUT ${tilingFile}431 OUTPUT ${tilingFile}
429 COMMAND rm -f ${tilingFile}432 COMMAND rm -f ${tilingFile}
430- COMMAND bash -c ${gen_cmd}433+ COMMAND ${gen_cmd}
431 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}434 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
432 DEPENDS ${opName}_${socVersion}_tiling_tmp435 DEPENDS ${opName}_${socVersion}_tiling_tmp
433 )436 )
@@ -126,8 +126,9 @@ upgrade()
126 return 0126 return 0
127 elif [ "$orn" = m ]; then127 elif [ "$orn" = m ]; then
128 break;128 break;
129- elif [ "$0rn" = r ]; then129+ elif [ "$orn" = r ]; then
130- [ -n "${targetdir}/$vendordir/$1/" ] && rm -rf "${targetdir}/$vendordir/$1"/*130+ [ -n "$targetdir" ] && [ -n "$vendordir" ] && [ -n "$1" ] && \
131+ [ -d "${targetdir}/$vendordir/$1" ] && rm -rf "${targetdir}/$vendordir/$1"/*
131 break;132 break;
132 else133 else
133 echo "[ERROR] input error, please input again!"134 echo "[ERROR] input error, please input again!"
@@ -9,10 +9,10 @@
9# -----------------------------------------------------------------------------------------------------------9# -----------------------------------------------------------------------------------------------------------
10 10 
11echo "source ${ASCEND_OPP_PATH}/../bin/setenv.bash"11echo "source ${ASCEND_OPP_PATH}/../bin/setenv.bash"
12-source ${ASCEND_OPP_PATH}/../bin/setenv.bash12+source "${ASCEND_OPP_PATH}/../bin/setenv.bash"
13export ASCEND_GLOBAL_LOG_LEVEL=213export ASCEND_GLOBAL_LOG_LEVEL=2
14export ASCEND_SLOG_PRINT_TO_STDOUT=114export ASCEND_SLOG_PRINT_TO_STDOUT=1
15 15 
16-CURR_PATH=$(cd $(dirname $0); pwd)16+CURR_PATH=$(cd "$(dirname "$0")"; pwd)
17-echo "python3 ${CURR_PATH}/gen_tiling_head_file.py $@"17+echo "python3 ${CURR_PATH}/gen_tiling_head_file.py $*"
18-python3 ${CURR_PATH}/gen_tiling_head_file.py $@18+python3 "${CURR_PATH}/gen_tiling_head_file.py" "$@"