Сборка Perf с Babeltrace (для преобразования Perf в CTF) завершается неудачно с неопределенной ссылкой на bt_ctf_validate_identifier - PullRequest
0 голосов
/ 01 января 2019

Я следовал инструкциям, предоставленным существующим вопросом / ответом Stackoverflow Создание Perf с Babeltrace (для преобразования Perf в CTF)

Создание linux / tools / perf с поддержкой преобразования Babeltrace завершается неудачно сследующая ошибка:

LINK perf libperf.a(libperf-in.o): In function event_class_add_field: /tools/perf/util/data-convert-bt.c:988: undefined reference to bt_ctf_validate_identifier collect2: error: ld returned 1 exit status Makefile.perf:567: recipe for target 'perf' failed

Я попытался собрать linux / tools / perf с Babeltrace, установленной из пакетов в дистрибутиве Debian Linux, а также собрать Babeltrace из исходного кода.

В обоих случаях Babeltrace была успешно установлена ​​и доступна до попытки сборки linux / tools / perf с поддержкой Babeltrace CTF.

1 Ответ

0 голосов
/ 04 января 2019

bt_ctf_validate_identifier функция, по-видимому, определена и реализована только в 1,5 ветви babeltrace, а не в 2.0 (v2.0.0-pre4)

https://github.com/efficios/babeltrace/blob/stable-1.5/formats/ctf/ir/utils.c https://github.com/efficios/babeltrace/blob/v1.5.6/formats/ctf/ir/utils.c

75   int bt_ctf_validate_identifier(const char *input_string)

Попробуйте перекомпилировать и переустановить babeltrace из тега git v1.5.6, а затем очистить и перекомпилировать perf с этой версией.

инструмент perf из версий ядра linux 4.15 - 4.20, похоже, написан для stable-1.5ветви babeltrace.

...