补充几点要求
1)范围涉及 include/dfx,pkg_inc/base,pkg_inc/toolchain,pkg_inc/trace,pkg_inc/watchdog和src/dfx/log、src/dfx/trace目录下的头文件,逐个排查,并给出冗余头文件的现状
2)消除所有软链,只保留一份头文件实体,排查runtime仓编译依赖是否需要适配。如果外部组件涉及绝对路径依赖,给出对应的cmake整改方法


冗余头文件最新扫描结果如下:
src/dfx/trace/inc/toolchain/cpu_detect.h
src/dfx/log/syslog/log_daemon/cpu_detect/cpu_detect.h
src/dfx/log/inc/toolchain/plog.h
pkg_inc/base/plog.h
src/dfx/log/inc/toolchain/dlog_pub.h
pkg_inc/base/dlog_pub.h
include/dfx/base/log_types.h
pkg_inc/base/log_types.h
src/dfx/log/inc/toolchain/alog_pub.h
include/dfx/base/alog_pub.h


log 组件冗余头文件整改已提交:https://gitcode.com/cann/runtime/merge_requests/4643
范围与结果:删除 5 份冗余(1 个软链 pkg_inc/base/log_types.h + 4 份 src/dfx/log/inc/toolchain/ 下实体副本),保留 4 份实体在 include/dfx/base 与 pkg_inc/base。整改后 log/trace 范围内软链数为 0。trace 组件(pkg_inc/trace、pkg_inc/watchdog、src/dfx/trace/inc/toolchain)逐个排查无多副本,零改动。
编译依赖适配:slog_headers 加一条 include 路径即覆盖 153 个消费者;另有 24 处用 include_directories() 硬写路径的工程逐个补齐。外部组件如涉及绝对路径依赖,推荐改为 target_link_libraries(<target> PRIVATE $<BUILD_INTERFACE:slog_headers>),可自动获得全部路径。
需评审:新增对外可见枚举 DQS = 13。该值原仅存在于源码树 src 副本,因 install(DIRECTORY) 晚于 install(FILES) 执行,整改前发布包两处 log_types.h 均不含它,故本次为首次外露。填补 12 与 22 之间空位,不改变既有值。
验证:完整构建 0 error;预处理输出与整改前逐字节相同(sha256 一致);发布包 8 个头文件的形式与软链指向完全不变。
另:最新扫描列出的 cpu_detect.h 一对,两者同名但非副本(trace 侧是 libcpu_detect.so 对外 API 头,log 侧是 log_daemon 内部实现头,符号集合不相交),真实缺陷是共用 include guard。处置为将 log_daemon 那份的目录名/文件名/guard 统一改为 cpu_detect_server(对齐已有 target 名与产物名 libcpu_detect_server.so),另起独立 PR。


Backgroud(背景信息)
代码仓的include目录、pkg_inc目录以及src目录下,存在冗余定义的头文件,需要整改归一
附件提供了runtime仓下的所有冗余头文件信息,可以作为参考(信息可能过时,不一定匹配最新代码)
9320456123bf48e5a3a1aac7871e5c82.xlsx
1)本次整个只涉及log、trace组件
2)对外开放程度 include > pkg_inc > src
3)可以参考已经整改过的组件如何处理的,有一些使用的软链接
Origin(信息来源)
维测工具团队
Benefit / Necessity (价值/作用)
Design(设计方案)