LINUX.ORG.RU

Сборка ltrace для android (ARMv7).

 , , , ,


0

1

Здравствуйте. Есть цель собрать ltrace, чтобы она работала на Android 7.1.2 (ARMv7). Пытаюсь сделать кросскомпиляцию под ARM на host машине debian 10 x86_64 вот такими командами: $autoreconf -i $./configure –build x86_64-pc-linux-gnu –host=arm-none-linux-gnueabi –target=arm-none-linux-gnueabi LDFLAGS=«-static» CC=arm-linux-gnueabihf-gcc –disable-maintainer-mode

Все это падает с такими словами: checking for elf.h… yes checking gelf.h usability… yes checking gelf.h presence… yes checking for gelf.h… yes checking for elf_begin in -lelf… no configure: error: *** libelf not found on your system

Немного погуглив понял, что для сборки нужны библиотеки из elfutils.

Отсюда два вопроса:

  1. Правилно я понимаю, что для решения проблема нужно отложить сборку ltrace и сначала аналогичными командами собать elfutils для ARMv7? Потом уже при сборке ltrace указывать на пути к elf под ARMv7? Или нужно как то специальным образом править configure.ac, чтобы оба исходника собирались одновременно?

  2. Я понял, что в configure.ac есть макрос, который проверяет есть ли в библиотеке elf функция elf_begin AC_CHECK_LIB([elf], [elf_begin], [libelf_LIBS=«-lelf»], [AC_MSG_ERROR([*** libelf not found on your system])]

Отсюда вопрос. Как можно добавить вывод путей по которым он делает поиск библиотеки elf? Как я понимаю он сейчас делает поиск по библиотекам host системы, которые собраны для x86_64.

Ответ на: комментарий от izzholtik

На host машине libelf-dev и прочие libelf установлены. Это не помогло.

vm_prog ()

Хз. Можно попробовать из реп Termux выцепить, наверное, если это та утилита.

izzholtik ★★★ ()

Надо собирать тулчейном и всеми зависимостями из ндк, желательно той сборочной системой которая вместе с ндк идет. Если в ндк чегото не хватает собирать отдельно.в ранних версиях андроида либц и другие либы были довольно кастрированные по сравнению с десктопом, сейчас уже может подругому.

anonymous ()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.