Re: 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 All,

I see for most of the errors below function definitions are already 
available in code files.
But its no compiled because of #ifdef , not sure how to fix this..

Regards
Ninad D

On Friday, 5 February 2021 at 00:57:38 UTC+5:30 Ninad Deshmukh wrote:

> 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/b54f7f27-7f96-410d-b1d3-b59d81db841an%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.