gcc - compile - openssl windows 10
¿Cómo compilar openssl 1.0.2f en Beaglebone Black? (1)
Actualmente, uso el comando a continuación para compilar openssl 1.0.2f del paquete openssl:
$ tar xzf openssl-1.0.2e.tar.gz
$ cd openssl-1.0.2e
$export PREFIX={PREFIX}
$./Configure -DOPENSSL_NO_HEARTBEATS --openssldir=$PREFIX shared os/compiler:${TARGET}
$ make
Esta es la arquitectura de Beaglebone Black
$uname -a
$Linux beaglebone 3.8.13-bone70 #1 SMP Fri Jan 23 02:15:42 UTC 2015 armv7l GNU/Linux
También trato de establecer TARGET de la lista:
- linux-armv7l || linux-aarch64 || linux-alpha + bwx-ccc || linux-alpha + bwx-gcc || linux-alpha-ccc || linux-alpha-gcc || linux-aout || linux-armv4 || linux-elf || linux-generic32 || linux-generic64 || linux-ia32-icc || linux-ia64 || linux-ia64-icc || linux-mips32 || linux-mips64 || linux-ppc || linux-ppc64 || linux-ppc64le || linux-sparcv8 || linux-sparcv9 || linux-x32 || linux-x86_64 || linux-x86_64-clang || linux-x86_64-icc || linux32-s390x || linux64-mips64 || linux64-s390x || linux64-sparcv9
Pero cuando crea openssl, regresa:
make[1]: {TARGET}: Command not found
También intento establecer:
os/compiler:gcc
versión de gcc:
$ gcc --version
gcc (Debian 4.9.2-10) 4.9.2
Pero cuando crea openssl, regresa:
/bin/sh: 1: ./pod2mantest: Permission denied
installing man1/CA.pl.1
sh: 1: --section=1: not found
Makefile:634: recipe for target ''install_docs'' failed
make: *** [install_docs] Error 127
¿Podría decirme qué está mal aquí?
¿Cómo compilar openssl 1.0.2f en Beaglebone Black?
Creo que quieres el objetivo linux-armv4
.
$ ./Configure LIST | grep -i arm
android-armeabi
linux-arm64ilp32
linux-armv4
Ver también Compilación e Instalación en el wiki de OpenSSL.
Probablemente sea más fácil seguir el consejo de Leśny y ejecutar ./config
. config
intenta adivinar el objetivo. Si la suposición es incorrecta, entonces use ./Configure
con el triplete:
$ wget https://www.openssl.org/source/openssl-1.0.2g.tar.gz
...
$ tar xzf openssl-1.0.2g.tar.gz
...
$ cd openssl-1.0.2g
Y luego (observe linux-armv4
):
$ ./config shared no-ssl2 no-ssl3 no-comp -DOPENSSL_NO_HEARTBEATS
Operating system: armv7l-whatever-linux2
Configuring for linux-armv4
no-comp [option] OPENSSL_NO_COMP (skip dir)
no-ec_nistp_64_gcc_128 [default] OPENSSL_NO_EC_NISTP_64_GCC_128 (skip dir)
no-gmp [default] OPENSSL_NO_GMP (skip dir)
no-jpake [experimental] OPENSSL_NO_JPAKE (skip dir)
no-krb5 [krb5-flavor not specified] OPENSSL_NO_KRB5
no-libunbound [experimental] OPENSSL_NO_LIBUNBOUND (skip dir)
no-md2 [default] OPENSSL_NO_MD2 (skip dir)
no-rc5 [default] OPENSSL_NO_RC5 (skip dir)
no-rfc3779 [default] OPENSSL_NO_RFC3779 (skip dir)
no-sctp [default] OPENSSL_NO_SCTP (skip dir)
no-ssl-trace [default] OPENSSL_NO_SSL_TRACE (skip dir)
no-ssl2 [option] OPENSSL_NO_SSL2 (skip dir)
no-ssl3 [option] OPENSSL_NO_SSL3 (skip dir)
no-store [experimental] OPENSSL_NO_STORE (skip dir)
no-unit-test [default] OPENSSL_NO_UNIT_TEST (skip dir)
no-weak-ssl-ciphers [default] OPENSSL_NO_WEAK_SSL_CIPHERS (skip dir)
no-zlib [default]
no-zlib-dynamic [default]
...
Es posible que deba recurrir a algo como esto:
$./Configure linux-armv4 shared no-ssl2 no-ssl3 no-comp -DOPENSSL_NO_HEARTBEATS
...
$ make depend
...
$ make clean
...
$ make
Para completar, estaba trabajando desde un Black Beagle Black utilizando una imagen de la consola Debian de diciembre de 2015 (necesitaba la pequeña huella de 2GB para que el almacenamiento estuviera disponible para otras cosas):
$ uname -a
Linux beaglebone 4.1.15-ti-rt-r40 #1 SMP PREEMPT RT Thu Jan 7 23:32:08 UTC 2016 armv7l GNU/Linux