aws / aws/aws-sdk-cpp

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

Aperta
#995 11 commenti 5 reazioni 0 assegnatari Vedi su GitHub
feature-request p2
Lingua principale
C++
Stelle
2.2k
Fork
1.2k
Merge medio
4g 11h
PR unite (30g)
13

Descrizione

### 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

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Riproduci la build Android arm64-v8a con gli argomenti CMake elencati, quindi esamina make install e i percorsi delle dipendenze in external/curl/lib, external/openssl/lib ed external/zlib/lib. Verifica se l'SDK installato può essere collegato su un'altra macchina senza la directory di build; l'attività è completata quando le dipendenze richieste curl, OpenSSL e zlib sono installate o referenziate correttamente.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
android, cmake, cpp
Ambito
build-system, mobile
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.