Como construir caracóis com boringssl?

Estou a tentar construir caracóis com boringssl no Ubuntu 16.04.

Tenho boringssl construído bem.

com curva 7.53 I configurar usando:

./configure --with-ssl=/home/john/dev/boringssl

e o resultado diz " suporte SSL: activo (BoringSSL)" OK.

Mas quando eu make, recebo erros a começar por

  CC       vtls/libcurl_la-openssl.lo
In file included from vtls/openssl.c:86:0:
/usr/include/openssl/ui.h:85:1: error: unknown type name ‘UI’
 UI *UI_new(void);
 ^
/usr/include/openssl/ui.h:86:1: error: unknown type name ‘UI’
 UI *UI_new_method(const UI_METHOD *method);
 ^
/usr/include/openssl/ui.h:86:25: error: unknown type name ‘UI_METHOD’
 UI *UI_new_method(const UI_METHOD *method);
                         ^

e termina com

Makefile:2023: recipe for target 'vtls/libcurl_la-openssl.lo' failed
make[2]: *** [vtls/libcurl_la-openssl.lo] Error 1
make[2]: Leaving directory '/home/john/dev/curl-7.53.0/lib'
Makefile:734: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/home/john/dev/curl-7.53.0/lib'
Makefile:893: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1

Não tenho a certeza se este cabeçalho /usr/include/openssl/ui.h deverá ser usado quando o curl estiver configurado para compilar com o boringssl, parece que este ficheiro só existe no OpenSSL, não boringssl.

Author: user3340499, 2017-02-22

1 answers

Não há nenhum {[[2]} na árvore boringssl, a sua compilação encontrou claramente outro conjunto de ficheiros include (OpenSSL simples, eu diria).

É assim que eu construo com boringssl:

Construir boringssl

$HOME / src é onde eu coloco o código neste exemplo. Podes escolher onde quiseres.

$ cd $HOME/src
$ git clone https://boringssl.googlesource.com/boringssl
$ cd boringssl
$ mkdir build
$ cd build
$ cmake ..
$ make

Configure a árvore de compilação para ser detectada pela configuração do curl

Na raiz da árvore fonte de boringssl, certifique-se de que há um lib e um include dir. The lib dir deve conter as duas libs (eu faço-as symlinks na pasta de compilação). A pasta include já está presente por omissão. Make and populate lib like this (commands issued in the source tree root, not in the build/ subdirectory).

$ mkdir lib
$ cd lib
$ ln -s ../build/ssl/libssl.a
$ ln -s ../build/crypoto/libcrypto.a

Configurar o curl

LIBS=-lpthread ./configure --with-ssl=$HOME/src/boringssl (onde eu aponto a raiz da árvore de boringssl)

Verifique se, no final da execução do configure, deverá dizer-se que detectou BoringSSL a ser usado

Construir curva

Corre make na curva árvore de origem

Agora pode instalar o curl normalmente com make install etc.

 5
Author: Daniel Stenberg, 2017-02-23 12:55:57