已合并
fix: 解决编译依赖告警问题 #3992
yelongjian创建于 7月14日
fix: 解决编译依赖告警问题 #3992
已合并
Pull Request已成功合入, 合并人@CANN-robot
(感谢 yelongjian 的贡献)7月14日 添加了label:enhancement
7月14日 创建了 pull request,commit 285eb8a8
atomgit-bot
7月14日 评论:
7月14日 评论:
atomgit-bot
7月14日 评论:
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_wrappertarget 以及flow_func_wrapper子目录,但由于data_wrapper仅链接 header-only 接口库(影响可忽略),且flowfunc_wrapper的链接行为变更大概率也是良性的,实际触发问题的概率较低。建议按需收窄作用域以提升代码清晰度。
⚠️ 已识别出整体风险,但无法提取行内评论,请参考整体评估。


7月14日 添加了label:cann-cla/yes
CANN-robot
7月14日 评论:
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
/approveor/lgtm- Commenting
/approveimplies 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. 👍


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


Yyelongjian
7月14日 update merge request[project id: 8824148, iid: 3992, commit_id: 09521a7af9b4d59010f874fae08e62d7313a9665] virtual merging success
7月14日 update merge request[project id: 8824148, iid: 3992, commit_id: 09521a7af9b4d59010f874fae08e62d7313a9665] virtual merging success
7月14日 添加了label:ci-pipeline-running
CANN-robot
7月14日 评论:
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执行结束


CANN-robot
7月14日 评论:
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执行结束


CANN-robot
7月14日 评论:
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执行结束


7月14日 添加了label:api-check-pass
7月14日 删除了label:api-check-pass
7月14日 删除了label:ci-pipeline-running
7月14日 添加了label:ci-pipeline-passed
GengChao
7月14日 评论:
7月14日 评论:
/lgtm


lining23666
7月14日 评论:
7月14日 评论:
/lgtm


7月14日 添加了label:lgtm
zhanj
7月14日 评论:
7月14日 评论:
/approve


7月14日 添加了label:approved
7月14日 合入了pull request
Pull Request
描述
修复
dflow_wrapper等 target 编译时 CMake 输出的 "Cannot generate a safe dependent library path / cycle in the constraint graph" 告警。根因分析:
dflow_wrapper通过ge_runner_v2→dflow_runner→ge_compiler等传递依赖ascend_hal_stub,该库由Findascend_hal.cmake在 toolkit 的devlib目录中找到。而devlib同时含有libgert.so、libge_compiler.so、libge_common.so等库的副本(这些库也在构建输出目录和lib64中)。CMake 在计算
-rpath-link(OrderDependentRPath)时,发现同一.so存在于多个目录中,产生约束图环(cycle in constraint graph),输出告警。该告警不受CMAKE_SKIP_BUILD_RPATH=TRUE控制,因为后者只控制 RPATH 嵌入,不影响-rpath-link的cmOrderDirectories计算。修复方案:
在
dflow/pydflow/wrapper/CMakeLists.txt中设置CMAKE_LINK_DEPENDENT_LIBRARY_FILES ON,将 CMake 的SharedDependencyMode从SharedDepModeDir(通过-rpath-link目录查找传递依赖)切换为SharedDepModeLink(直接链接传递依赖的共享库),从而跳过OrderDependentRPath的环检测。该设置仅影响此目录下的 target(dflow_wrapper、data_wrapper、flowfunc_wrapper),不影响其他模块。变更类型
请选择本次引入的变更类型:
关联的Issue
如何测试
bash build.sh --ge_compilerbash build.sh --ge_executorbash build.sh --dflow验证结果:三个编译包的
log.txt中grep -c "Cannot generate a safe|cycle in the constraint"均为 0。核对清单
其他信息
修改仅一处文件
dflow/pydflow/wrapper/CMakeLists.txt,新增 6 行(含注释),无其他文件变更。