Попытка скомпилировать powertop для руки с помощью кросс-компиляции в Ubuntu с проблемой malloc
Я пытался собрать powertop для устройства руки. Я видел, что Powertop говорил здесь довольно много, и я использую Ubuntu для кросс-компиляции для armv7l
,
Конфигурация проходит проверку и производит:
checking for uint32_t... yes
checking for uint64_t... yes
checking for stdlib.h... (cached) yes
checking for GNU libc compatible malloc... no
checking for stdlib.h... (cached) yes
checking for unistd.h... (cached) yes
checking for sys/param.h... yes
checking for getpagesize... yes
checking for working mmap... no
checking for stdlib.h... (cached) yes
checking for GNU libc compatible realloc... no
checking for working strtod... no
checking for pow... yes
Он попадает в devlist.cpp и умирает из-за отсутствия malloc.
...
CXX cpu/powertop-intel_cpus.o
CXX powertop-devlist.o
devlist.cpp: In function ‘void collect_open_devices()’:
devlist.cpp:147: error: ‘rpl_malloc’ was not declared in this scope
devlist.cpp: In function ‘void register_devpower(const char*, double, device*)’:
devlist.cpp:249: error: ‘rpl_malloc’ was not declared in this scope
make[3]: *** [powertop-devlist.o] Error 1
make[3]: Leaving directory `/home/lucid/powertop-2.4/src'
make[2]: *** [all] Error 2
...
Если я пропущу devlist.cpp, то получу другие проблемы с памятью, как и выше.
Я думаю, у меня вопрос, как я могу изменить конфигурацию или сделать так, чтобы правильно использовать malloc? Нужно ли создавать другую библиотеку? Мой набор инструментов должен иметь все, что мне нужно.
Я звоню настроить и сделать так:
./configure --prefix=/home/lucid/timesys/i_MX53start/toolchain --sysconfdir=/home/lucid/timesys/i_MX53start/toolchain/etc --disable-static --target=armv7l-timesys-linux --host=i686 --build=armv7l-timesys-linux && make
1 ответ
Возможно, вам нужно установить некоторые переменные окружения для запуска из вашей цепочки инструментов. Пример, который я использую ниже, для набора инструментов, установленного в моем локальном каталоге, как ваш:
MY_ARM_BASE=${HOME}/dev/toolchain/arm-2008q3
C_INCLUDE_PATH=${MY_ARM_BASE}/lib/gcc/arm-none-linux-gnueabi/4.3.2/include:${MY_ARM_BASE}/lib/gcc/arm-none-linux-gnueabi/4.3.2/include-fixed
LIBRARY_PATH=${MY_ARM_BASE}/arm-none-linux-gnueabi/libc/lib:${MY_ARM_BASE}/arm-none-linux-gnueabi/libc/usr/lib
CPLUS_INCLUDE_PATH=${MY_ARM_BASE}/arm-none-linux-gnueabi/include/c++/4.3.2
#OBJC_INCLUDE_PATH
COMPILER_PATH=${MY_ARM_BASE}/bin
#LD_RUN_PATH
#GPROF_PATH
#######
CC=${COMPILER_PATH}/gcc
CXX=${COMPILER_PATH}/g++
RANLIB=${COMPILER_PATH}/ranlib
STRIP=${COMPILER_PATH}/strip
export C_INCLUDE_PATH LIBRARY_PATH CPLUS_INCLUDE_PATH COMPILER_PATH
export CC CXX RANLIB STRIP