共 5 个文件变更+64-47
| @@ -7,8 +7,8 @@ | |||
| 7 | ## 文件权限控制 | 7 | ## 文件权限控制 |
| 8 | 8 | ||
| 9 | - 建议用户在主机(包括宿主机)及容器中设置运行系统umask值为0027及以上,保障新增文件夹默认最高权限为750,新增文件默认最高权限为640。 | 9 | - 建议用户在主机(包括宿主机)及容器中设置运行系统umask值为0027及以上,保障新增文件夹默认最高权限为750,新增文件默认最高权限为640。 |
| 10 | -- 建议用户对个人隐私数据、商业资产、源文件和代码开发过程中保存的各类文件等敏感内容做好权限控制等安全措施。例如涉及本项目安装目录权限管控、输入公共数据文件权限管控,设定的权限建议参考[A-文件(夹)各场景权限管控推荐最大值](#a-文件夹各场景权限管控推荐最大值)。 | 10 | +- 建议用户对个人隐私数据、商业资产、源文件和代码开发过程中保存的各类文件等敏感内容做好权限控制等安全措施。例如涉及本项目安装目录权限管控、输入公共数据文件权限管控,设定的权限建议参考[A-文件(夹)各场景权限管控推荐最大值](https://gitcode.com/cann/asc-devkit/blob/master/SECURITY.md#a-文件夹各场景权限管控推荐最大值)。 |
| 11 | -- 用户安装和使用过程需要做好权限控制,建议参考[A-文件(夹)各场景权限管控推荐最大值](#a-文件夹各场景权限管控推荐最大值)文件权限参考进行设置。 | 11 | +- 用户安装和使用过程需要做好权限控制,建议参考[A-文件(夹)各场景权限管控推荐最大值](https://gitcode.com/cann/asc-devkit/blob/master/SECURITY.md#a-文件夹各场景权限管控推荐最大值)文件权限参考进行设置。 |
| 12 | 12 | ||
| 13 | ## 构建安全声明 | 13 | ## 构建安全声明 |
| 14 | 14 | ||
| @@ -24,7 +24,7 @@ | |||
| 24 | 24 | ||
| 25 | | 类型 | 开源代码地址 | 文件名 | 公网IP地址/公网URL地址/域名/邮箱地址/压缩文件地址 | 用途说明 | | 25 | | 类型 | 开源代码地址 | 文件名 | 公网IP地址/公网URL地址/域名/邮箱地址/压缩文件地址 | 用途说明 | |
| 26 | | :------------: |:------------------------------------------------------------------------------------------:|:----------------------------------------------------------| :---------------------------------------------------------- |:-----------------------------------------| | 26 | | :------------: |:------------------------------------------------------------------------------------------:|:----------------------------------------------------------| :---------------------------------------------------------- |:-----------------------------------------| |
| 27 | -| 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | | 27 | +| 依赖 | 不涉及 | cmake/third_party/gtest.cmake | https://gitcode.com/cann-src-third-party/googletest/releases/download/v1.14.0/googletest-1.14.0.tar.gz | 从gitcode下载googletest源码,作用编译依赖 | |
| 28 | --- | 28 | --- |
| 29 | 29 | ||
| 30 | ## 漏洞机制说明 | 30 | ## 漏洞机制说明 |
| @@ -24,6 +24,7 @@ CPU_CORES=$(grep -c "^processor" /proc/cpuinfo) | |||
| 24 | THREAD_NUM="${CPU_CORES}" | 24 | THREAD_NUM="${CPU_CORES}" |
| 25 | 25 | ||
| 26 | Ascend_CANN_PACKAGE_PATH="" | 26 | Ascend_CANN_PACKAGE_PATH="" |
| 27 | +CANN_3RD_LIB_PATH="${SCRIPT_DIR}/third_party" | ||
| 27 | 28 | ||
| 28 | # 默认构建类型:Release / Debug | 29 | # 默认构建类型:Release / Debug |
| 29 | BUILD_TYPE="Release" | 30 | BUILD_TYPE="Release" |
| @@ -91,6 +92,8 @@ usage() { | |||
| 91 | echo " -t, --test Build and run all unit tests" | 92 | echo " -t, --test Build and run all unit tests" |
| 92 | echo " --cov Enable code coverage for unit tests" | 93 | echo " --cov Enable code coverage for unit tests" |
| 93 | echo " --make_clean Clean build artifacts" | 94 | echo " --make_clean Clean build artifacts" |
| 95 | + echo " --cann_3rd_lib_path=<PATH>" | ||
| 96 | + echo " Set CANN third_party package install path, Default:./third_party" | ||
| 94 | echo " --build-type=<TYPE>" | 97 | echo " --build-type=<TYPE>" |
| 95 | echo " Specify build type (TYPE options: Release/Debug), Default:Release" | 98 | echo " Specify build type (TYPE options: Release/Debug), Default:Release" |
| 96 | } | 99 | } |
| @@ -114,6 +117,10 @@ parse_args() { | |||
| 114 | clean_build | 117 | clean_build |
| 115 | exit 0 | 118 | exit 0 |
| 116 | ;; | 119 | ;; |
| 120 | + --cann_3rd_lib_path=*) | ||
| 121 | + CANN_3RD_LIB_PATH="$(realpath "${1#*=}")" | ||
| 122 | + shift | ||
| 123 | + ;; | ||
| 117 | *) | 124 | *) |
| 118 | log "ERROR" "未知参数:$1" | 125 | log "ERROR" "未知参数:$1" |
| 119 | usage | 126 | usage |
| @@ -136,6 +143,7 @@ set_env() { | |||
| 136 | log "INFO" "the path of cann package is ${ASCEND_HOME_PATH}" | 143 | log "INFO" "the path of cann package is ${ASCEND_HOME_PATH}" |
| 137 | Ascend_CANN_PACKAGE_PATH=${ASCEND_HOME_PATH} | 144 | Ascend_CANN_PACKAGE_PATH=${ASCEND_HOME_PATH} |
| 138 | CUSTOM_OPTION+=("-DASCEND_CANN_PACKAGE_PATH=${Ascend_CANN_PACKAGE_PATH}") | 145 | CUSTOM_OPTION+=("-DASCEND_CANN_PACKAGE_PATH=${Ascend_CANN_PACKAGE_PATH}") |
| 146 | + CUSTOM_OPTION+=("-DCANN_3RD_LIB_PATH=${CANN_3RD_LIB_PATH}") | ||
| 139 | } | 147 | } |
| 140 | 148 | ||
| 141 | clean_build() { | 149 | clean_build() { |
| @@ -0,0 +1,39 @@ | |||
| 1 | +# ---------------------------------------------------------------------------------------------------------- | ||
| 2 | +# Copyright (c) 2026 Huawei Technologies Co., Ltd. | ||
| 3 | +# This program is free software, you can redistribute it and/or modify it under the terms and conditions of | ||
| 4 | +# CANN Open Software License Agreement Version 2.0 (the "License"). | ||
| 5 | +# Please refer to the License for details. You may not use this file except in compliance with the License. | ||
| 6 | +# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, | ||
| 7 | +# INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. | ||
| 8 | +# See LICENSE in the root of the software repository for the full text of the License. | ||
| 9 | +# ---------------------------------------------------------------------------------------------------------- | ||
| 10 | + | ||
| 11 | +# 引入 CANN/cmake 库 | ||
| 12 | +if(NOT PROJECT_SOURCE_DIR) | ||
| 13 | + if(CANN_3RD_LIB_PATH AND IS_DIRECTORY "${CANN_3RD_LIB_PATH}/cann-cmake") | ||
| 14 | + include("${CANN_3RD_LIB_PATH}/cann-cmake/function/prepare.cmake") | ||
| 15 | + else() | ||
| 16 | + include(FetchContent) | ||
| 17 | + | ||
| 18 | + set(CANN_CMAKE_TAG "master-025") | ||
| 19 | + if(CANN_3RD_LIB_PATH AND EXISTS "${CANN_3RD_LIB_PATH}/cmake-${CANN_CMAKE_TAG}.tar.gz") | ||
| 20 | + FetchContent_Declare( | ||
| 21 | + cann-cmake | ||
| 22 | + URL "${CANN_3RD_LIB_PATH}/cmake-${CANN_CMAKE_TAG}.tar.gz" | ||
| 23 | + URL_HASH SHA256=1e8888249828083f059bdc9614ce09cdaefac8a682defe18b73b83cd45bde213 | ||
| 24 | + ) | ||
| 25 | + else() | ||
| 26 | + FetchContent_Declare( | ||
| 27 | + cann-cmake | ||
| 28 | + GIT_REPOSITORY https://gitcode.com/cann/cmake.git | ||
| 29 | + GIT_TAG ${CANN_CMAKE_TAG} | ||
| 30 | + GIT_SHALLOW TRUE | ||
| 31 | + ) | ||
| 32 | + endif() | ||
| 33 | + FetchContent_GetProperties(cann-cmake) | ||
| 34 | + if(NOT cann-cmake_POPULATED) | ||
| 35 | + FetchContent_Populate(cann-cmake) | ||
| 36 | + endif() | ||
| 37 | + include("${cann-cmake_SOURCE_DIR}/function/prepare.cmake") | ||
| 38 | + endif() | ||
| 39 | +endif() | ||
| @@ -10,14 +10,20 @@ | |||
| 10 | 10 | ||
| 11 | cmake_minimum_required(VERSION 3.16) | 11 | cmake_minimum_required(VERSION 3.16) |
| 12 | 12 | ||
| 13 | +set(ASCCOMM_UT_ROOT ${CMAKE_CURRENT_LIST_DIR}) | ||
| 14 | +get_filename_component(ASCCOMM_ROOT ${ASCCOMM_UT_ROOT}/../.. ABSOLUTE) | ||
| 15 | +if(NOT CANN_3RD_LIB_PATH) | ||
| 16 | + set(CANN_3RD_LIB_PATH "${ASCCOMM_ROOT}/third_party" CACHE PATH "CANN third_party path" FORCE) | ||
| 17 | +endif() | ||
| 18 | + | ||
| 19 | +include("${ASCCOMM_ROOT}/cmake/fetch_cann_cmake.cmake") | ||
| 20 | + | ||
| 13 | project(asccomm_hcomm_ut LANGUAGES C CXX) | 21 | project(asccomm_hcomm_ut LANGUAGES C CXX) |
| 22 | +init_cann_project(PREPEND_MODULE_PATH) | ||
| 14 | 23 | ||
| 15 | set(CMAKE_CXX_STANDARD 17) | 24 | set(CMAKE_CXX_STANDARD 17) |
| 16 | set(CMAKE_CXX_STANDARD_REQUIRED ON) | 25 | set(CMAKE_CXX_STANDARD_REQUIRED ON) |
| 17 | 26 | ||
| 18 | -set(ASCCOMM_UT_ROOT ${CMAKE_CURRENT_LIST_DIR}) | ||
| 19 | -get_filename_component(ASCCOMM_ROOT ${ASCCOMM_UT_ROOT}/../.. ABSOLUTE) | ||
| 20 | - | ||
| 21 | set(PRODUCT_TYPE_LIST "ascend950pr_9599_AIV;ascend910B1_AIC" CACHE STRING "Hcomm UT product types") | 27 | set(PRODUCT_TYPE_LIST "ascend950pr_9599_AIV;ascend910B1_AIC" CACHE STRING "Hcomm UT product types") |
| 22 | set(TEST_MOD "all" CACHE STRING "Comma-separated UT targets to build and run, or all") | 28 | set(TEST_MOD "all" CACHE STRING "Comma-separated UT targets to build and run, or all") |
| 23 | option(ASCCOMM_UT_RUN_AFTER_BUILD "Run UT targets after build" ON) | 29 | option(ASCCOMM_UT_RUN_AFTER_BUILD "Run UT targets after build" ON) |
| @@ -52,58 +58,24 @@ set(ASCENDC_DIR "${ASCEND_CANN_ARCH_DIR}/asc" CACHE PATH "AscendC headers path") | |||
| 52 | 58 | ||
| 53 | set(ASCCOMM_CANN_INCLUDE_DIRS | 59 | set(ASCCOMM_CANN_INCLUDE_DIRS |
| 54 | ${ASCEND_CANN_PACKAGE_PATH}/include | 60 | ${ASCEND_CANN_PACKAGE_PATH}/include |
| 55 | - ${ASCEND_CANN_ARCH_DIR}/include | ||
| 56 | - ${ASCEND_CANN_ARCH_DIR}/include/acl | ||
| 57 | - ${ASCEND_CANN_ARCH_DIR}/pkg_inc | ||
| 58 | - ${ASCEND_CANN_ARCH_DIR}/pkg_inc/base | ||
| 59 | - ${ASCEND_CANN_ARCH_DIR}/pkg_inc/mmpa | ||
| 60 | - ${ASCEND_CANN_ARCH_DIR}/pkg_inc/profiling | ||
| 61 | - ${ASCEND_CANN_ARCH_DIR}/pkg_inc/runtime | ||
| 62 | - ${ASCEND_CANN_ARCH_DIR}/pkg_inc/runtime/runtime | ||
| 63 | ${ASCENDC_DIR} | 61 | ${ASCENDC_DIR} |
| 64 | ${ASCENDC_DIR}/include | 62 | ${ASCENDC_DIR}/include |
| 65 | ${ASCENDC_DIR}/include/basic_api | 63 | ${ASCENDC_DIR}/include/basic_api |
| 66 | - ${ASCENDC_DIR}/include/simt_api | ||
| 67 | - ${ASCENDC_DIR}/include/adv_api | ||
| 68 | - ${ASCENDC_DIR}/include/utils | ||
| 69 | - ${ASCENDC_DIR}/include/utils/tiling | ||
| 70 | - ${ASCENDC_DIR}/impl | ||
| 71 | ${ASCENDC_DIR}/impl/basic_api | 64 | ${ASCENDC_DIR}/impl/basic_api |
| 72 | - ${ASCENDC_DIR}/impl/simt_api | ||
| 73 | ) | 65 | ) |
| 74 | set(ASCCOMM_TIKICPU_DIR ${ASCEND_CANN_PACKAGE_PATH}/tools/tikicpulib/lib) | 66 | set(ASCCOMM_TIKICPU_DIR ${ASCEND_CANN_PACKAGE_PATH}/tools/tikicpulib/lib) |
| 75 | set(ASCCOMM_TIKICPU_INCLUDE_DIR ${ASCCOMM_TIKICPU_DIR}/include) | 67 | set(ASCCOMM_TIKICPU_INCLUDE_DIR ${ASCCOMM_TIKICPU_DIR}/include) |
| 76 | set(ASCCOMM_TIKICPU_LIB64_DIR ${ASCEND_CANN_PACKAGE_PATH}/tools/tikicpulib/lib64) | 68 | set(ASCCOMM_TIKICPU_LIB64_DIR ${ASCEND_CANN_PACKAGE_PATH}/tools/tikicpulib/lib64) |
| 77 | set(ASCCOMM_CPUDEBUG_LIB64_DIR ${ASCEND_CANN_PACKAGE_PATH}/tools/cpudebug/lib64) | 69 | set(ASCCOMM_CPUDEBUG_LIB64_DIR ${ASCEND_CANN_PACKAGE_PATH}/tools/cpudebug/lib64) |
| 78 | -set(ASCCOMM_UT_RUNTIME_DIRS | ||
| 79 | - ${ASCEND_CANN_PACKAGE_PATH}/lib64 | ||
| 80 | - ${ASCEND_CANN_ARCH_DIR}/lib64 | ||
| 81 | - ${ASCEND_CANN_ARCH_DIR}/devlib/device | ||
| 82 | - ${ASCCOMM_TIKICPU_DIR} | ||
| 83 | - ${ASCCOMM_TIKICPU_LIB64_DIR} | ||
| 84 | - ${ASCCOMM_CPUDEBUG_LIB64_DIR} | ||
| 85 | -) | ||
| 86 | -string(REPLACE ";" ":" ASCCOMM_UT_LD_LIBRARY_PATH "${ASCCOMM_UT_RUNTIME_DIRS}") | ||
| 87 | - | ||
| 88 | -link_directories( | ||
| 89 | - ${ASCEND_CANN_PACKAGE_PATH}/lib64 | ||
| 90 | - ${ASCEND_CANN_ARCH_DIR}/lib64 | ||
| 91 | -) | ||
| 92 | 70 | ||
| 93 | find_package(GTest QUIET) | 71 | find_package(GTest QUIET) |
| 94 | if(TARGET GTest::gtest) | 72 | if(TARGET GTest::gtest) |
| 95 | set(ASCCOMM_GTEST_TARGET GTest::gtest) | 73 | set(ASCCOMM_GTEST_TARGET GTest::gtest) |
| 96 | set(ASCCOMM_GTEST_USES_CXX11_ABI0 OFF) | 74 | set(ASCCOMM_GTEST_USES_CXX11_ABI0 OFF) |
| 97 | -elseif(CANN_3RD_LIB_PATH AND EXISTS "${CANN_3RD_LIB_PATH}/gtest/include/gtest/gtest.h") | ||
| 98 | - add_library(asccomm_gtest STATIC IMPORTED) | ||
| 99 | - set_target_properties(asccomm_gtest PROPERTIES | ||
| 100 | - IMPORTED_LOCATION "${CANN_3RD_LIB_PATH}/gtest/lib64/libgtest.a" | ||
| 101 | - INTERFACE_INCLUDE_DIRECTORIES "${CANN_3RD_LIB_PATH}/gtest/include" | ||
| 102 | - ) | ||
| 103 | - set(ASCCOMM_GTEST_TARGET asccomm_gtest) | ||
| 104 | - set(ASCCOMM_GTEST_USES_CXX11_ABI0 ON) | ||
| 105 | else() | 75 | else() |
| 106 | - message(FATAL_ERROR "GTest not found. Install GTest or set CANN_3RD_LIB_PATH to the CANN third_party directory.") | 76 | + add_cann_third_party(gtest) |
| 77 | + set(ASCCOMM_GTEST_TARGET GTest::gtest) | ||
| 78 | + set(ASCCOMM_GTEST_USES_CXX11_ABI0 ON) | ||
| 107 | endif() | 79 | endif() |
| 108 | 80 | ||
| 109 | add_library(intf_llt_pub_basic INTERFACE) | 81 | add_library(intf_llt_pub_basic INTERFACE) |
| @@ -187,10 +159,7 @@ function(run_llt_test) | |||
| 187 | set(ENV_PREFIX "") | 159 | set(ENV_PREFIX "") |
| 188 | endif() | 160 | endif() |
| 189 | 161 | ||
| 190 | - set(_llt_runtime_dirs ${ASCCOMM_UT_RUNTIME_DIRS}) | 162 | + set(_llt_runtime_dirs ${LLT_RUNTIME_DIRS}) |
| 191 | - if(LLT_RUNTIME_DIRS) | ||
| 192 | - set(_llt_runtime_dirs ${LLT_RUNTIME_DIRS}) | ||
| 193 | - endif() | ||
| 194 | string(REPLACE ";" ":" _llt_ld_library_path "${_llt_runtime_dirs}") | 163 | string(REPLACE ";" ":" _llt_ld_library_path "${_llt_runtime_dirs}") |
| 195 | 164 | ||
| 196 | if(LLT_FILTERS) | 165 | if(LLT_FILTERS) |