segfaults ao compilar o VLC no sistema de pouca memória

5

Estou tentando compilar o VLC de este repositório GitHub no meu dispositivo Allwinner (ARM Cortex-A8 NEON com kernel armhf e cerca de 380 MB de RAM) usando as instruções fornecidas aqui .

Eu continuo recebendo segfaults, então criei uma partição de swap assim:

 root@lianro:~/# dd if=/dev/zero of=/swap bs=1M count=1024
 root@linaro:~/# mkswap -c /swap
 root@linaro:~/# swapon /swap

Melhorou; em vez de quebrar aleatoriamente após cerca de um minuto, ele quebra aleatoriamente depois de um longo tempo, a última vez que quase terminou, mas eu tenho um segfault em um dos últimos módulos.

O swap não parece ser usado em nenhum momento durante a compilação. Eu tenho muito espaço livre em disco.

Qual pode ser o problema?

    
por NotGaeL 27.07.2013 / 18:00

1 resposta

1

Se a compilação de um módulo em particular exigir mais RAM do que a que você tem fisicamente disponível, o swap não ajudará, porque o programa tentará alocar e usar significativamente mais RAM do que você tem no sistema e swap não pode compensar isso. O Linux não pode trocar a memória que está ativamente em uso.

Você pode tentar alterar manualmente a CFLAGS ou a regra Makefile para compilação do módulo específico que está falhando para não realizar a otimização ( -O0 ) ou para usar um nível mais baixo de otimização ( -O1 ou -Os por exemplo) . Isso usará significativamente menos memória durante a compilação e, embora não seja ideal, poderá permitir que a compilação seja bem-sucedida. Os media players tendem a usar otimizações caras que exigem muita memória RAM, tanto em tempo de compilação quanto em tempo de execução.

    
por 04.08.2013 / 18:31