已合并
【fix】: InternalAllocator::Free实现从.h文件移到.cc文件 #4014
luanchaowei创建于 7月15日
【fix】: InternalAllocator::Free实现从.h文件移到.cc文件 #4014
已合并
Pull Request已成功合入, 合并人@CANN-robot
(感谢 luanchaowei 的贡献)7月15日 添加了label:enhancement
7月15日 创建了 pull request,commit 0affdb24
atomgit-bot
7月15日 评论:
7月15日 评论:
变更摘要
本次变更将 InternalAllocator::Free 方法的实现从头文件 stream_resource.h 的内联定义移动到源文件 stream_resource.cc 中,以解决 libhybrid_executor.so 动态库中出现 aclrtFree 未定义符号(undefined symbol)的链接问题。当 Free 以内联形式定义在头文件中时,使用该头文件的其他编译单元可能无法正确解析对外部 RT 库中 aclrtFree 符号的依赖,从而导致运行时符号缺失。
主要改动
InternalAllocator::Free实现位置迁移:将Free方法的实现从stream_resource.h的内联函数体移至stream_resource.cc,使符号依赖限定在.cc编译单元内部,避免因头文件内联展开导致aclrtFree符号在不同.so中产生未定义引用。- 头文件声明精简:
stream_resource.h中InternalAllocator::Free从带完整实现的override内联函数改为纯虚函数声明void Free(MemBlock *block) override;,不再在头文件中直接调用aclrtFree。


atomgit-bot
7月15日 评论:
7月15日 评论:
7月15日 添加了label:cann-cla/yes
此处折叠了43条消息 查看更多
tangqunzhang
7月15日 评论:
7月15日 评论:
/lgtm


tangqunzhang
7月15日 评论:
7月15日 评论:
【MR评价】评价分数:3,
评价意见:
编码规范遵守度:无编码规范问题;
代码设计:不涉及代码设计;
DT质量:基本逻辑DT测试覆盖充足;


yangyongqiang
7月15日 评论:
7月15日 评论:
/approve


7月15日 添加了label:approved
7月15日 合入了pull request
Pull Request
描述
libhybrid_executor.so存在未定义符号aclrtFree问题修改
变更类型
请选择本次引入的变更类型:
关联的Issue
如何测试
描述测试此变更的步骤和前提条件:
1.安装cann包后进入cann安装目录x86_64-linux/devlib/linux/x86_64执行ldd -r libhybrid_executor.so |grep "undefined symbol" |grep -i " acl" |grep -v "acl.so"
2.预期不会存在undefined symbol: aclrtFree
核对清单
其他信息
在此添加任何其他关于本次 PR 的说明。