已合并
fix: 解决编译依赖告警问题 #3992
yelongjian创建于 7月14日
fix: 解决编译依赖告警问题 #3992
已合并
yelongjian创建于 7月14日
yelongjian成员
7月14日

Pull Request

描述

修复 dflow_wrapper 等 target 编译时 CMake 输出的 "Cannot generate a safe dependent library path / cycle in the constraint graph" 告警。

根因分析:

dflow_wrapper 通过 ge_runner_v2dflow_runnerge_compiler 等传递依赖 ascend_hal_stub,该库由 Findascend_hal.cmake 在 toolkit 的 devlib 目录中找到。而 devlib 同时含有 libgert.solibge_compiler.solibge_common.so 等库的副本(这些库也在构建输出目录和 lib64 中)。

CMake 在计算 -rpath-linkOrderDependentRPath)时,发现同一 .so 存在于多个目录中,产生约束图环(cycle in constraint graph),输出告警。该告警不受 CMAKE_SKIP_BUILD_RPATH=TRUE 控制,因为后者只控制 RPATH 嵌入,不影响 -rpath-linkcmOrderDirectories 计算。

修复方案:

dflow/pydflow/wrapper/CMakeLists.txt 中设置 CMAKE_LINK_DEPENDENT_LIBRARY_FILES ON,将 CMake 的 SharedDependencyModeSharedDepModeDir(通过 -rpath-link 目录查找传递依赖)切换为 SharedDepModeLink(直接链接传递依赖的共享库),从而跳过 OrderDependentRPath 的环检测。该设置仅影响此目录下的 target(dflow_wrapperdata_wrapperflowfunc_wrapper),不影响其他模块。

变更类型

请选择本次引入的变更类型:

关联的Issue

如何测试

  1. source CANN 环境变量
  2. 分别执行以下三个编译命令,确认编译过程中无 "Cannot generate a safe" 和 "cycle in the constraint graph" 告警:
    • bash build.sh --ge_compiler
    • bash build.sh --ge_executor
    • bash build.sh --dflow
  3. 三个编译包均成功生成,exit code 为 0

验证结果:三个编译包的 log.txtgrep -c "Cannot generate a safe|cycle in the constraint" 均为 0。

核对清单

其他信息

修改仅一处文件 dflow/pydflow/wrapper/CMakeLists.txt,新增 6 行(含注释),无其他文件变更。

likedislike
Pull Request已成功合入, 合并人@CANN-robot
(感谢 yelongjian 的贡献)
Yyelongjian成员
7月14日 添加了label:enhancement
Yyelongjian成员
7月14日 创建了 pull request,commit 285eb8a8
atomgit-bot
atomgit-bot
7月14日 评论:

变更摘要

本次 PR 旨在解决项目编译过程中出现的依赖告警问题,属于一次小型 Bug 修复。变更仅涉及 1 个文件,新增 1 行代码,无删除操作,改动范围极小。

主要改动

  • 编译依赖告警修复:对构建脚本或依赖配置文件进行了微调(新增 1 行),以消除编译阶段的依赖相关告警,确保使用 build.sh 脚本编译时不再出现此类告警信息。
likedislike
atomgit-bot
atomgit-bot
7月14日 评论:

代码审查

审查结束总结

  • 已审查文件: dflow/pydflow/wrapper/CMakeLists.txt — 发现 1 个问题
  • 问题按优先级统计: P0: 0, P1: 0, P2: 0, P3: 1
  • 整体风险判断: 低风险。该变更新增一行 set(CMAKE_LINK_DEPENDENT_LIBRARY_FILES ON) 用于抑制编译依赖告警,变更本身简单且经过作者自测。唯一的潜在问题是该 set() 命令的作用域会泄漏到同文件后续的 data_wrapper target 以及 flow_func_wrapper 子目录,但由于 data_wrapper 仅链接 header-only 接口库(影响可忽略),且 flowfunc_wrapper 的链接行为变更大概率也是良性的,实际触发问题的概率较低。建议按需收窄作用域以提升代码清晰度。

⚠️ 已识别出整体风险,但无法提取行内评论,请参考整体评估。

likedislike
CANN-robotCANN-robot成员
7月14日 添加了label:cann-cla/yes
CANN-robot
CANN-robot成员
7月14日 评论:

Thanks for your pull-request.
The full list of commands accepted by me can be found at here
You can get sig-info at here


PR Approval Progress

Congratulations! All modules have met the lgtm and approve requirements.

Module Approval Details

module lgtm status approve status
repo-cann/ge kobemini, lining23666, zhanj (3/2) zhanj (1/1)

💡 Tip:

  • Committer can comment /approve or /lgtm
  • Commenting /approve implies both code review (lgtm) and intent to merge (approve)

CLA Signature Pass

yelongjian, thanks for your pull request. All authors of the commits have signed the CLA. 👍

likedislike
CANN-robotCANN-robot成员
7月14日 将yangyongqiang0606,kobemini,tangqunzhang,xchu42,hugo111,lining23666,fu-jun2,depeng1994,wqtshg_wt,peiyang,shengnan666,zhangfan_hanq,zhanj,zhujingjing,Mexyy,wangxiaotian995,stevenaw0,yuht9设为评审人
CANN-robotCANN-robot成员
7月14日 将yangyongqiang0606,kobemini,tangqunzhang,xchu42,hugo111,lining23666,fu-jun2,depeng1994,wqtshg_wt,peiyang,shengnan666,zhangfan_hanq,zhanj,zhujingjing,Mexyy,wangxiaotian995,stevenaw0,yuht9设为审查人
Yyelongjian成员
7月14日 修改了pull request 的描述
yelongjian成员
7月14日 评论:

compile

likedislike
Yyelongjian成员
7月14日 update merge request[project id: 8824148, iid: 3992, commit_id: 09521a7af9b4d59010f874fae08e62d7313a9665] virtual merging success
CANN-robotCANN-robot成员
7月14日 添加了label:ci-pipeline-running
CANN-robot
CANN-robot成员
7月14日 评论:

流水线任务触发成功
任务链接 [44ca1caf129a40ab8512a5b830c9a106][流水线指导]

任务名称状态日志下载链接
pre_comment ✅ SUCCESS >>>>>
Compile_ARM_compiler ✅ SUCCESS >>>>> >>>>>
Compile_ARM_executor ✅ SUCCESS >>>>> >>>>>
Compile_ARM_dflow ✅ SUCCESS >>>>> >>>>>
API_Check ✅ SUCCESS >>>>>
PreSmoke_A900_npupool ✅ SUCCESS >>>>>

[2026-07-14 14:13:16]    CI执行结束

likedislike
CANN-robot
CANN-robot成员
7月14日 评论:

流水线任务触发成功
任务链接 [10b94b295d954e49a135da00989ed3f7][流水线指导]

任务名称状态日志下载链接
pre_comment ✅ SUCCESS >>>>>
Compile_X86_compiler ✅ SUCCESS >>>>> >>>>>
Compile_X86_executor ✅ SUCCESS >>>>> >>>>>
Compile_X86_dflow ✅ SUCCESS >>>>> >>>>>
UT_Test_dflow ✅ SUCCESS
UT_Test_ge_common ✅ SUCCESS
UT_Test_parser ✅ SUCCESS
UT_Test_python ✅ SUCCESS >>>>>
UT_Test_rt ✅ SUCCESS
UT_Test_acl ✅ SUCCESS
UT_Test_autofuse ✅ SUCCESS
UT_Test_executor ✅ SUCCESS
UT_Test_autofuse_ascendc_api ✅ SUCCESS
ST_Test_dflow ✅ SUCCESS
ST_Test_ge_common ✅ SUCCESS
ST_Test_parser ✅ SUCCESS
ST_Test_python ✅ SUCCESS >>>>>
ST_Test_rt ✅ SUCCESS
ST_Test_autofuse ✅ SUCCESS
ST_Test_executor ✅ SUCCESS
ST_Test_hetero ✅ SUCCESS
ST_Test_autofuse_ascendc_api ✅ SUCCESS
ST_Test_autofuse_e2e ✅ SUCCESS
UT_Test_fe ✅ SUCCESS
UT_Test_tefusion ✅ SUCCESS
ST_Test_fe ✅ SUCCESS
ST_Test_tefusion ✅ SUCCESS
ST_Test_ge_common_atc ✅ SUCCESS
UT_Test_Report_graphengine ✅ SUCCESS >>>>>
UT_Test_Report_ge_executor_c ✅ SUCCESS >>>>>
UT_Test_Report_ge_autofuse ✅ SUCCESS >>>>>
ST_Test_Report_graphengine ✅ SUCCESS >>>>>
ST_Test_Report_ge_executor_c ✅ SUCCESS >>>>>
ST_Test_Report_ge_autofuse ✅ SUCCESS >>>>>
UT_Test_Report_fe ✅ SUCCESS >>>>>
ST_Test_Report_fe ✅ SUCCESS >>>>>

[2026-07-14 14:20:35]    CI执行结束

likedislike
CANN-robot
CANN-robot成员
7月14日 评论:

流水线任务触发成功
任务链接 [649e18d9d41b451d9d462044f5ca43f1][流水线指导]

任务名称状态日志下载链接
codecheck_Pr ✅ SUCCESS
codecheck ✅ SUCCESS >>>>>
antipoison ✅ SUCCESS >>>>>
SCA ✅ SUCCESS >>>>>
codecheck_dt ✅ SUCCESS >>>>>
codecheck_precommit ✅ SUCCESS >>>>>
StaticCheck_codespell ✅ SUCCESS
StaticCheck_link_validity ✅ SUCCESS
StaticCheck_resource_existence ✅ SUCCESS
StaticCheck_tag_closed ✅ SUCCESS
StaticCheck_markdownlint ✅ SUCCESS

[2026-07-14 14:12:41]    CI执行结束

likedislike
CANN-robotCANN-robot成员
7月14日 添加了label:api-check-pass
CANN-robotCANN-robot成员
7月14日 删除了label:api-check-pass
CANN-robotCANN-robot成员
7月14日 删除了label:ci-pipeline-running
CANN-robotCANN-robot成员
7月14日 添加了label:ci-pipeline-passed
GengChao
GengChao成员
7月14日 评论:

/lgtm

likedislike
lining23666成员
7月14日 评论:

/lgtm

likedislike
CANN-robotCANN-robot成员
7月14日 添加了label:lgtm
zhanj
zhanj成员
7月14日 评论:

/approve

likedislike
CANN-robotCANN-robot成员
7月14日 添加了label:approved
CANN-robotCANN-robot成员
7月14日 合入了pull request