aws / aws/aws-sdk-cpp

Cross compiled OpenSSL and Curl android dependencies are not "installed"

Abierto
#995 11 comentarios 5 reacciones 0 asignados Ver en GitHub
feature-request p2
Lenguaje dominante
C++
Estrellas
2.2k
Forks
1.2k
Merge medio
4 d 11 h
PR fusionados (30 d)
13

Descripción

### What platform/OS are you using?
OSX 10.13.6 (and Ubuntu 16.04)
### What compiler are you using? what version?
Clang 6.0.2 via Android NDK r17c
(with some modifications to pass the right args & guess the version correctly)
### What's your CMake arguments?

export BUILD_ABI=arm64-v8a
export EXTRA_AWS_OPTIONS=" -DTARGET_ARCH=ANDROID -DANDROID_ABI=$BUILD_ABI "
cmake \
-DCMAKE_INSTALL_PREFIX=$INSTALL_DIR \
-DCMAKE_RULE_MESSAGES:BOOL=OFF \
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \
-DBUILD_SHARED_LIBS:BOOL=OFF \
-DFORCE_SHARED_CRT:BOOL=OFF \
$EXTRA_AWS_OPTIONS \
-DBUILD_ONLY='logs;core;iam;access-management;identity-management;cognito-identity;cognito-idp;s3;kinesis;sts' \
$PROJECTHOME/aws-sdk-cpp "

### Can you provide a TRACE level log? (sanitize any sensitive information)

After taring up the install directory, when moving to another machine linking against the installed files fails with:

/opt/work/test/../aws-sdk-cpp/lib/libaws-cpp-sdk-core.a(CryptoImpl.cpp.o): In function `Aws::Utils::Crypto::OpenSSL::init_static_state()':
CryptoImpl.cpp:(.text._ZN3Aws5Utils6Crypto7OpenSSL17init_static_stateEv+0xc): undefined reference to `ERR_load_CRYPTO_strings'
CryptoImpl.cpp:(.text._ZN3Aws5Utils6Crypto7OpenSSL17init_static_stateEv+0x10): undefined reference to `OPENSSL_add_all_algorithms_noconf'

And a bunch more, and some curl references.

The root cause appears to be that the libcurl.a and libssl.a live in the build directory and make install doesn't put the dependencies where aws can find them.

It would be nice if make install could install the special built components required (they exist in the build directory, but would prefer not to archive that.)
aws-sdk-cpp/external/curl/lib/libcurl.a
aws-sdk-cpp/external/openssl/lib/libssl.a
aws-sdk-cpp/external/openssl/lib/libcrypto.a
aws-sdk-cpp/external/zlib/lib/libz.a

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Reproduce la compilación de Android arm64-v8a con los argumentos de CMake indicados y, a continuación, inspecciona make install y las rutas de dependencias bajo external/curl/lib, external/openssl/lib y external/zlib/lib. Comprueba si el SDK instalado puede enlazarse en otra máquina sin el directorio de compilación; se considera hecho cuando las dependencias necesarias curl, OpenSSL y zlib están instaladas o referenciadas correctamente.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
android, cmake, cpp
Área
build-system, mobile
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.