我希望将 CTF 转换与 perf 一起使用。从周围稀缺的信息中,我发现我需要重新编译 perf。
我已经安装了epel存储库并使用yum安装
babeltrace and libbabeltrace
对于运行时间以及
libunwind-devel slang-devel libbabeltrace-devel and asciidoc
用于编译。
我克隆了 git.kernel.org(作为替代方案,我也尝试了 github.com/torvalds)并使用了
LIBBABELTRACE=1 make
使用 babeltrace 支持构建 perf。但是,我收到错误:
Makefile.config:780: No libbabeltrace found, disables 'perf data' CTF format support, please install libbabeltrace-dev[el]/libbabeltrace-ctf-dev
所以我尝试添加LIBBABELTRACE_DIR
,/usr
但这也失败了。检查 Makefile.conf,我发现配置在错误的位置:它被设置为使用本地编译的 babeltrace 以及定义明确的子目录(include 和 lib),但是从 rpm 安装时不使用这些(yum )。rpm 将它们放在 /usr/include/babeltrace 和 /usr/lib64 中。
修补 Makefile 也无济于事。
所以,除了被迫使用本地编译的 babeltrace,我还有什么选择?
这是针对 26 个节点的集群,我真的更喜欢简单的“yum 安装”,因为这可以在节点损坏时简化重新暂存节点(我们对它们进行研究并定期损坏东西),并且不需要设置特定的环境。
附录:
我尝试从以下位置编译 babeltrace https://github.com/efficios/babeltrace.git
:这也失败并出现错误:
babeltrace-cfg-cli-args.c:2390:29: error: ‘POPT_ARG_LONGLONG’ undeclared (first use in this function)
而且,当然,popt.h 没有定义POPT_ARG_LONGLONG
.
提前致谢。