Eu tenho tentado compilar o Ncat para a arquitetura MIPS (big endian), e eu realmente preciso de suporte SSL, então primeiro eu devo compilar o OpenSSL. Eu baixei a última versão do Github e configurei assim porque meus binários de toolchain são nomeados como 'mips-gcc mips-ld ... etc:
export PATH=$PATH:/path/to/toolchain
./Configure linux-mips32 --cross-compile-prefix=mips-
Isso configurou o makefile usando o conjunto de ferramentas cruzadas, como:
CC=mips-gcc
LD=mips-ld
AR=mips-ar
RANLIB=mips-ranlib
Então, eu corri make
Eu recebi esses erros na primeira execução:
../libcrypto.a(async_posix.o): In function 'async_global_init':
async_posix.c:(.text+0x278): undefined reference to 'pthread_key_create'
async_posix.c:(.text+0x2a4): undefined reference to 'pthread_key_create'
make[2]: *** [link_app.] Error 1
make[2]: Leaving directory '/home/anon/Source/openssl/apps'
make[1]: *** [openssl] Error 2
make[1]: Leaving directory '/home/anon/Source/openssl/apps'
make: *** [build_apps] Error 1
Eu li em outro thread para adicionar a opção -lpthread
aos meus CFLAGS, mas ainda estou recebendo o mesmo erro. Alguém sugeriu usar o G ++ em vez do GCC (isso faz sentido?). Agora recebo este erro:
s_socket.o: In function 'do_server':
s_socket.c:(.text+0x6d4): warning: gethostbyaddr is obsolescent, usegetaddrinfo() instead.
s_socket.o: In function 'host_ip':
s_socket.c:(.text+0x100): warning: gethostbyname is obsolescent, use getnameinfo() instead.
../libcrypto.a(async.o): In function 'async_fibre_swapcontext':
async.c:(.text+0x248): undefined reference to 'setcontext'
../libcrypto.a(async_posix.o): In function 'async_fibre_makecontext':
async_posix.c:(.text+0x154): undefined reference to 'getcontext'
async_posix.c:(.text+0x1b4): undefined reference to 'makecontext'
make[2]: *** [link_app.] Error 1
make[2]: Leaving directory '/home/anon/Source/openssl/apps'
make[1]: *** [openssl] Error 2
make[1]: Leaving directory '/home/anon/Source/openssl/apps'
make: *** [build_apps] Error 1
Os cflags que estou usando são:
CFLAG= -DOPENSSL_THREADS -pthread -DDSO_DLFCN -DHAVE_DLFCN_H -mips2 -mabi=32 -Wall -DBN_DIV3W -O3 -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DAES_ASM -lpthread
OPÇÕES parecem:
--cross-compile-prefix=mips- no-deprecated no-ec_nistp_64_gcc_128 no-jpake no-md2 no-rc5 no-sctp no-shared no-ssl-trace no-store no-unit-test no-zlib no-zlib-dynamic static-engine
Eu pesquisei por toda a rede procurando uma solução. Eu não tenho muita experiência em compilar o C, e neste momento estou preso. Eu realmente aprecio alguma ajuda. O que estou fazendo errado?