1

我希望将 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.

提前致谢。

4

0 回答 0