Eu tenho um problema particular que eu preciso resolver agora, mas eu realmente gostaria de saber uma boa estratégia para abordar esse tipo de problema - falhas de segmentação ao compilar o código de outras pessoas, então eu estou feliz por qualquer particular ou geral digite respostas.
Os detalhes
Estou tentando instalar o OpenSSL 1.0.1g em um Synology DS412 +. A versão do GCC que eu tenho (v4.2.1) não tem 64 bits compilada, que o OpenSSL reclama:
$ ./config --prefix=/opt \
--openssldir=/etc/ssl \
--libdir=lib \
shared \
zlib-dynamic
$ make
recorte!
cryptlib.c:1: sorry, unimplemented: 64-bit mode not compiled in
cryptlib.c: In function 'OPENSSL_ia32cap_loc':
cryptlib.c:677: warning: dereferencing type-punned pointer will break strict-ali
asing rules
make[1]: *** [cryptlib.o] Error 1
Então, , estou tentando instalar o GCC 4.8.2 (já experimentei várias versões) e toda vez que ele parece falhar no GMP parte do make
. Aconteceu tanto que eu decidi baixar o GMP e tentar compilar isso:
$ ./configure --prefix=/opt --build=i386-pc-linux-gnu
$ make
./gen-fac 32 0 >fac_table.h || (rm -f fac_table.h; exit 1)
/opt/bin/bash: line 1: 20507 Segmentation fault (core dumped) ./gen-fac 32
0 > fac_table.h
make: *** [fac_table.h] Error 1
Eu não sou um programador C, e isso nem é o meu código, então a probabilidade de eu roubar o Valgrind para inspecionar o núcleo é baixa. Eu tive isso acontecer muitas vezes compilando bibliotecas, e aprender C não é algo que está na minha lista de prioridades. Existem alternativas para ...?
- aprendendo C
- perguntando em um fórum / lista de discussão
O único gerenciador de pacotes ao qual eu tenho acesso é o ipkg, e ele forneceu o GCC que não está à altura do full muster. Eu poderia configurar uma VM, construir um binário para o ipkg e colocá-lo no DS412? Não tendo feito algo assim antes, não sei quão viável é.
Qualquer ajuda ou percepção é muito apreciada.