aws / aws/aws-sdk-cpp

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

Ouverte
#995 11 commentaires 5 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

feature-request p2
Langage dominant
C++
Étoiles
2.2k
Forks
1.2k
Merge moyen
4 j 11 h
PR mergées (30 j)
13

Description

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

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Reproduisez le build Android arm64-v8a avec les arguments CMake indiqués, puis inspectez make install et les chemins des dépendances sous external/curl/lib, external/openssl/lib et external/zlib/lib. Vérifiez si le SDK installé peut être lié sur une autre machine sans le répertoire de build ; c’est terminé lorsque les dépendances requises curl, OpenSSL et zlib sont installées ou référencées correctement.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
android, cmake, cpp
Domaine
build-system, mobile
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.