Help needed for Linker error while building cryptopp for android (armeabi-v7a)

Ninad Deshmukh <[email protected]>
Newsgroups gmane.comp.encryption.cryptopp
Message-ID <[email protected]>
Hi
I am new to Crypto++ 
I was trying to build Crypto++ for *android *using documentation here: 
https://github.com/noloader/cryptopp-android

Note: Build succeeded for *arm64-v8a* and linker fails for *armeabi-v7a*
I am not able to resolve following linker errors:


ld: error: undefined symbol: CryptoPP::CPU_ProbeARMv7()
>>> referenced by cpu.cpp:1014 (./../cryptopp\cpu.cpp:1014)
>>>               cpu.o:(CryptoPP::DetectArmFeatures()) in archive 
./obj/local/armeabi-v7a/libcryptopp_static.a

ld: error: undefined symbol: CryptoPP::CPU_ProbeNEON()
>>> referenced by cpu.cpp:1015 (./../cryptopp\cpu.cpp:1015)
>>>               cpu.o:(CryptoPP::DetectArmFeatures()) in archive 
./obj/local/armeabi-v7a/libcryptopp_static.a

ld: error: undefined symbol: CryptoPP::CPU_ProbeCRC32()
>>> referenced by cpu.cpp:1016 (./../cryptopp\cpu.cpp:1016)
>>>               cpu.o:(CryptoPP::DetectArmFeatures()) in archive 
./obj/local/armeabi-v7a/libcryptopp_static.a

ld: error: undefined symbol: CryptoPP::CPU_ProbePMULL()
>>> referenced by cpu.cpp:1017 (./../cryptopp\cpu.cpp:1017)
>>>               cpu.o:(CryptoPP::DetectArmFeatures()) in archive 
./obj/local/armeabi-v7a/libcryptopp_static.a

ld: error: undefined symbol: CryptoPP::CPU_ProbeAES()
>>> referenced by cpu.cpp:1018 (./../cryptopp\cpu.cpp:1018)
>>>               cpu.o:(CryptoPP::DetectArmFeatures()) in archive 
./obj/local/armeabi-v7a/libcryptopp_static.a

ld: error: undefined symbol: CryptoPP::CPU_ProbeSHA1()
>>> referenced by cpu.cpp:1019 (./../cryptopp\cpu.cpp:1019)
>>>               cpu.o:(CryptoPP::DetectArmFeatures()) in archive 
./obj/local/armeabi-v7a/libcryptopp_static.a

ld: error: undefined symbol: CryptoPP::CPU_ProbeSHA256()
>>> referenced by cpu.cpp:1020 (./../cryptopp\cpu.cpp:1020)
>>>               cpu.o:(CryptoPP::DetectArmFeatures()) in archive 
./obj/local/armeabi-v7a/libcryptopp_static.a

ld: error: undefined symbol: 
CryptoPP::ARIA_UncheckedSetKey_Schedule_NEON(unsigned char*, unsigned int*, 
unsigned int)
>>> referenced by aria.cpp:182 (./../cryptopp\aria.cpp:182)
>>>               aria.o:(CryptoPP::ARIA::Base::UncheckedSetKey(unsigned 
char const*, unsigned int, CryptoPP::NameValuePairs const&)) in archive 
./obj/local/armeabi-v7a/libcryptopp_static.a

ld: error: undefined symbol: 
CryptoPP::ARIA_ProcessAndXorBlock_NEON(unsigned char const*, unsigned 
char*, unsigned char const*, unsigned int*)
>>> referenced by aria.cpp:293 (./../cryptopp\aria.cpp:293)
>>>               aria.o:(CryptoPP::ARIA::Base::ProcessAndXorBlock(unsigned 
char const*, unsigned char const*, unsigned char*) const) in archive 
./obj/local/armeabi-v7a/libcryptopp_static.a

ld: error: undefined symbol: CryptoPP::BLAKE2_Compress32_NEON(unsigned char 
const*, CryptoPP::BLAKE2s_State&)
>>> referenced by blake2.cpp:686 (./../cryptopp\blake2.cpp:686)
>>>               blake2.o:(CryptoPP::BLAKE2s::Compress(unsigned char 
const*)) in archive ./obj/local/armeabi-v7a/libcryptopp_static.a

ld: error: undefined symbol: CryptoPP::BLAKE2_Compress64_NEON(unsigned char 
const*, CryptoPP::BLAKE2b_State&)
>>> referenced by blake2.cpp:709 (./../cryptopp\blake2.cpp:709)
>>>               blake2.o:(CryptoPP::BLAKE2b::Compress(unsigned char 
const*)) in archive ./obj/local/armeabi-v7a/libcryptopp_static.a

ld: error: undefined symbol: 
CryptoPP::ChaCha_OperateKeystream_NEON(unsigned int const*, unsigned char 
const*, unsigned char*, unsigned int)
>>> referenced by chacha.cpp:142 (./../cryptopp\chacha.cpp:142)
>>>               chacha.o:((anonymous 
namespace)::ChaCha_OperateKeystream(CryptoPP::KeystreamOperation, unsigned 
int*, unsigned int&, unsigned int&, unsigned int, unsigned char*, unsigned 
char const*, unsigned int)) in archive 
./obj/local/armeabi-v7a/libcryptopp_static.a

ld: error: undefined symbol: CryptoPP::GCM_Xor16_NEON(unsigned char*, 
unsigned char const*, unsigned char const*)
>>> referenced by gcm.cpp:214 (./../cryptopp\gcm.cpp:214)
>>>               gcm.o:(CryptoPP::GCM_Base::SetKeyWithoutResync(unsigned 
char const*, unsigned int, CryptoPP::NameValuePairs const&)) in archive 
./obj/local/armeabi-v7a/libcryptopp_static.a
>>> referenced by gcm.cpp:276 (./../cryptopp\gcm.cpp:276)
>>>               gcm.o:(CryptoPP::GCM_Base::SetKeyWithoutResync(unsigned 
char const*, unsigned int, CryptoPP::NameValuePairs const&)) in archive 
./obj/local/armeabi-v7a/libcryptopp_static.a
>>> referenced by gcm.cpp:277 (./../cryptopp\gcm.cpp:277)
>>>               gcm.o:(CryptoPP::GCM_Base::SetKeyWithoutResync(unsigned 
char const*, unsigned int, CryptoPP::NameValuePairs const&)) in archive 
./obj/local/armeabi-v7a/libcryptopp_static.a

ld: error: undefined symbol: 
CryptoPP::LEA_Enc_AdvancedProcessBlocks_NEON(unsigned int const*, unsigned 
int, unsigned char const*, unsigned char const*, unsigned char*, unsigned 
int, unsigned int)
>>> referenced by lea.cpp:875 (./../cryptopp\lea.cpp:875)
>>>               lea.o:(CryptoPP::LEA::Enc::AdvancedProcessBlocks(unsigned 
char const*, unsigned char const*, unsigned char*, unsigned int, unsigned 
int) const) in archive ./obj/local/armeabi-v7a/libcryptopp_static.a

ld: error: undefined symbol: 
CryptoPP::LEA_Dec_AdvancedProcessBlocks_NEON(unsigned int const*, unsigned 
int, unsigned char const*, unsigned char const*, unsigned char*, unsigned 
int, unsigned int)
>>> referenced by lea.cpp:892 (./../cryptopp\lea.cpp:892)
>>>               lea.o:(CryptoPP::LEA::Dec::AdvancedProcessBlocks(unsigned 
char const*, unsigned char const*, unsigned char*, unsigned int, unsigned 
int) const) in archive ./obj/local/armeabi-v7a/libcryptopp_static.a

ld: error: undefined symbol: 
CryptoPP::SIMON128_Enc_AdvancedProcessBlocks_NEON(unsigned long long 
const*, unsigned int, unsigned char const*, unsigned char const*, unsigned 
char*, unsigned int, unsigned int)
>>> referenced by simon.cpp:472 (./../cryptopp\simon.cpp:472)
>>>              
 simon.o:(CryptoPP::SIMON128::Enc::AdvancedProcessBlocks(unsigned char 
const*, unsigned char const*, unsigned char*, unsigned int, unsigned int) 
const) in archive ./obj/local/armeabi-v7a/libcryptopp_static.a

ld: error: undefined symbol: 
CryptoPP::SIMON128_Dec_AdvancedProcessBlocks_NEON(unsigned long long 
const*, unsigned int, unsigned char const*, unsigned char const*, unsigned 
char*, unsigned int, unsigned int)
>>> referenced by simon.cpp:493 (./../cryptopp\simon.cpp:493)
>>>              
 simon.o:(CryptoPP::SIMON128::Dec::AdvancedProcessBlocks(unsigned char 
const*, unsigned char const*, unsigned char*, unsigned int, unsigned int) 
const) in archive ./obj/local/armeabi-v7a/libcryptopp_static.a

ld: error: undefined symbol: 
CryptoPP::SPECK128_Enc_AdvancedProcessBlocks_NEON(unsigned long long 
const*, unsigned int, unsigned char const*, unsigned char const*, unsigned 
char*, unsigned int, unsigned int)
>>> referenced by speck.cpp:454 (./../cryptopp\speck.cpp:454)
>>>              
 speck.o:(CryptoPP::SPECK128::Enc::AdvancedProcessBlocks(unsigned char 
const*, unsigned char const*, unsigned char*, unsigned int, unsigned int) 
const) in archive ./obj/local/armeabi-v7a/libcryptopp_static.a

ld: error: undefined symbol: 
CryptoPP::SPECK128_Dec_AdvancedProcessBlocks_NEON(unsigned long long 
const*, unsigned int, unsigned char const*, unsigned char const*, unsigned 
char*, unsigned int, unsigned int)
>>> referenced by speck.cpp:475 (./../cryptopp\speck.cpp:475)
>>>              
 speck.o:(CryptoPP::SPECK128::Dec::AdvancedProcessBlocks(unsigned char 
const*, unsigned char const*, unsigned char*, unsigned int, unsigned int) 
const) in archive ./obj/local/armeabi-v7a/libcryptopp_static.a
clang++: error: linker command failed with exit code 1 (use -v to see 
invocation)
make: *** 
[C:/Users/XXXXXX/AppData/Local/Android/Sdk/ndk/22.0.6917172/build//../build/core/build-binary.mk:741: 
obj/local/armeabi-v7a/cryptest.exe] Error 1

Any hint, suggestions please?

Regards
Ninad D

-- 
You received this message because you are subscribed to "Crypto++ Users". More information about Crypto++ and this group is available at http://www.cryptopp.com and http://groups.google.com/forum/#!forum/cryptopp-users.
--- 
You received this message because you are subscribed to the Google Groups "Crypto++ Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To view this discussion on the web visit https://groups.google.com/d/msgid/cryptopp-users/d1e90e3f-abae-4c1b-a91a-78df3b70d817n%40googlegroups.com.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.