Tentando compilar powertop para arm usando cross compile no Ubuntu com o malloc issue

0

Eu tenho tentado compilar o powertop para um dispositivo de braço. Eu vi powertop falou aqui um pouco e estou usando o Ubuntu para cruzar a compilação para o armv7l .

A configuração passa pela verificação e produz:

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

Ele chega ao devlist.cpp e morre porque o malloc não está lá.

...
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
...

Se eu fizer isso pule o devlist.cpp, então eu recebo outros problemas de função de memória como acima.

Eu acho que a minha pergunta é como eu poderia alterar a configuração ou fazer o malloc corretamente? Preciso construir outra biblioteca? Meu toolchain deve ter tudo que eu preciso.

Eu chamo configure e faça assim:

./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
    
por CaptainBli 20.08.2013 / 17:31

1 resposta

2

Você provavelmente precisa definir algumas variáveis de ambiente para executar a partir do seu conjunto de ferramentas. Um exemplo que uso abaixo, para um toolchain instalado no meu diretório local, como o seu:

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
    
por ubfan1 20.08.2013 / 18:00