Hello everyone

Might be interesting when running into this problem:
https://github.com/grpc/grpc/blob/4f81c3b706deed639cf4ecc9f3fc97da36230899/test/distrib/cpp/run_distrib_test_cmake_aarch64_cross.sh

Had the same issue while cross-compiling gRPC v1.46.7 for ARM using 
gcc-linaro-7.4.1 (Ubuntu 22.04).
With the script, it ran through the cross-compilion without errors by using 
OpenSSL instead of bssl.

Best regards
Adrian

cle...@gmail.com schrieb am Mittwoch, 16. November 2016 um 11:36:42 UTC+1:

> Hi,
>
> I am trying to cross-compile gRPC with arm-linux-gnueabi.
> I am on Ubuntu 14.04, i686-linux-gnu.
> I have already cross-compiled all the third parties (OpenSSL, zlib and 
> protobuf) in particular directories.
> To cross-compile gRPC I use CMakeLists. For that, I create a cmake-build 
> directory in which I use the command : cmake ../ -G"Unix Makefiles" 
> -DCMAKE_C_COMPILER=arm-linux-gnueabi-gcc 
> -DCMAKE_CXX_COMPILER=arm-linux-gnueabi-g++.
> Then I run make.
> Every thing seems fine until 80% where I get these errors :
>
> third_party/boringssl/crypto/libcrypto.a(sha1.c.o): In function 
> `SHA1_Update':
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/sha/../digest/md32_common.h:188:
>  
> undefined reference to `sha1_block_data_order'
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/sha/../digest/md32_common.h:204:
>  
> undefined reference to `sha1_block_data_order'
> third_party/boringssl/crypto/libcrypto.a(sha1.c.o): In function 
> `SHA1_Transform':
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/sha/../digest/md32_common.h:219:
>  
> undefined reference to `sha1_block_data_order'
> third_party/boringssl/crypto/libcrypto.a(sha1.c.o): In function 
> `SHA1_Final':
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/sha/../digest/
> md32_common.h:235: undefined reference to `sha1_block_data_order'
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/sha/../digest/md32_common.h:249:
>  
> undefined reference to `sha1_block_data_order'
> third_party/boringssl/crypto/libcrypto.a(sha256.c.o): In function 
> `SHA256_Update':
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/sha/../digest/
> md32_common.h:188: undefined reference to `sha256_block_data_order'
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/sha/../digest/md32_common.h:204:
>  
> undefined reference to `sha256_block_data_order'
> third_party/boringssl/crypto/libcrypto.a(sha256.c.o): In function 
> `SHA256_Transform':
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/sha/../digest/
> md32_common.h:219: undefined reference to `sha256_block_data_order'
> third_party/boringssl/crypto/libcrypto.a(sha256.c.o): In function `
> SHA256_Final':
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/sha/../digest/md32_common.h:235:
>  
> undefined reference to `sha256_block_data_order'
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/sha/../digest/
> md32_common.h:249: undefined reference to `sha256_block_data_order'
> third_party/boringssl/crypto/libcrypto.a(sha512.c.o): In function `
> SHA512_Transform':
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/sha/sha512.c:174: 
> undefined reference to `sha512_block_data_order'
> third_party/boringssl/crypto/libcrypto.a(sha512.c.o): In function 
> `SHA512_Update':
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/sha/sha512.c:206: 
> undefined reference to `sha512_block_data_order'
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/sha/sha512.c:215: 
> undefined reference to `sha512_block_data_order'
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/sha/sha512.c:222: 
> undefined reference to `sha512_block_data_order'
> third_party/boringssl/crypto/libcrypto.a(sha512.c.o): In function `
> SHA512_Final':
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/sha/sha512.c:246: 
> undefined reference to `sha512_block_data_order'
> third_party/boringssl/crypto/libcrypto.a(sha512.c.o):/home/<my_name>
> /grpc_arm/third_party/boringssl/crypto/sha/sha512.c:267: more undefined 
> references to `sha512_block_data_order' follow
> third_party/boringssl/crypto/libcrypto.a(e_aes.c.o): In function `
> CRYPTO_is_NEON_capable':
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/../include/openssl/cpu.h:116:
>  
> undefined reference to `CRYPTO_is_NEON_capable_at_runtime'
> third_party/boringssl/crypto/libcrypto.a(e_aes.c.o): In function 
> `hwaes_capable':
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/cipher/e_aes.c:123: 
> undefined reference to `CRYPTO_is_ARMv8_AES_capable'
> third_party/boringssl/crypto/libcrypto.a(e_aes.c.o): In function 
> `aes_init_key':
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/cipher/e_aes.c:299: 
> undefined reference to `aes_v8_set_decrypt_key'
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/cipher/e_aes.c:321: 
> undefined reference to `aes_v8_set_encrypt_key'
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/cipher/e_aes.c:351: 
> undefined reference to `aes_v8_decrypt'
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/cipher/e_aes.c:351: 
> undefined reference to `aes_v8_cbc_encrypt'
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/cipher/e_aes.c:351: 
> undefined reference to `bsaes_cbc_encrypt'
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/cipher/e_aes.c:351: 
> undefined reference to `aes_v8_encrypt'
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/cipher/e_aes.c:351: 
> undefined reference to `aes_v8_ctr32_encrypt_blocks'
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/cipher/e_aes.c:351: 
> undefined reference to `bsaes_ctr32_encrypt_blocks'
> third_party/boringssl/crypto/libcrypto.a(e_aes.c.o): In function 
> `aes_ctr_set_key':
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/cipher/e_aes.c:427: 
> undefined reference to `aes_v8_set_encrypt_key'
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/cipher/e_aes.c:467: 
> undefined reference to `aes_v8_encrypt'
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/cipher/e_aes.c:467: 
> undefined reference to `aes_v8_ctr32_encrypt_blocks'
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/cipher/e_aes.c:467: 
> undefined reference to `bsaes_ctr32_encrypt_blocks'
> third_party/boringssl/crypto/libcrypto.a(e_aes.c.o): In function `
> EVP_has_aes_hardware':
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/cipher/e_aes.c:1763: 
> undefined reference to `CRYPTO_is_ARMv8_PMULL_capable'
> third_party/boringssl/crypto/libcrypto.a(gcm.c.o): In function 
> `CRYPTO_gcm128_init':
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/modes/gcm.c:491: 
> undefined reference to `gcm_gmult_4bit'
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/modes/gcm.c:491: 
> undefined reference to `gcm_ghash_4bit'
> third_party/boringssl/crypto/libcrypto.a(gcm.c.o): In function 
> `CRYPTO_gcm128_setiv':
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/modes/gcm.c:525: 
> undefined reference to `gcm_gmult_4bit'
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/modes/gcm.c:533: 
> undefined reference to `gcm_gmult_4bit'
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/modes/gcm.c:553: 
> undefined reference to `gcm_gmult_4bit'
> third_party/boringssl/crypto/libcrypto.a(gcm.c.o): In function `
> CRYPTO_gcm128_aad':
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/modes/gcm.c:601: 
> undefined reference to `gcm_gmult_4bit'
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/modes/gcm.c:611: 
> undefined reference to `gcm_ghash_4bit'
> third_party/boringssl/crypto/libcrypto.a(gcm.c.o): In function `
> CRYPTO_gcm128_encrypt':
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/modes/gcm.c:664: 
> undefined reference to `gcm_gmult_4bit'
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/modes/gcm.c:682: 
> undefined reference to `gcm_gmult_4bit'
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/modes/gcm.c:702: 
> undefined reference to `gcm_gmult_4bit'
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/modes/gcm.c:731: 
> undefined reference to `gcm_ghash_4bit'
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/modes/gcm.c:755: 
> undefined reference to `gcm_ghash_4bit'
> third_party/boringssl/crypto/libcrypto.a(gcm.c.o): In function `
> CRYPTO_gcm128_decrypt':
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/modes/gcm.c:824: 
> undefined reference to `gcm_gmult_4bit'
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/modes/gcm.c:844: 
> undefined reference to `gcm_gmult_4bit'
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/modes/gcm.c:867: 
> undefined reference to `gcm_gmult_4bit'
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/modes/gcm.c:878: 
> undefined reference to `gcm_ghash_4bit'
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/modes/gcm.c:901: 
> undefined reference to `gcm_ghash_4bit'
> third_party/boringssl/crypto/libcrypto.a(gcm.c.o): In function `
> CRYPTO_gcm128_encrypt_ctr32':
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/modes/gcm.c:990: 
> undefined reference to `gcm_gmult_4bit'
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/modes/gcm.c:1008: 
> undefined reference to `gcm_gmult_4bit'
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/modes/gcm.c:1023: 
> undefined reference to `gcm_ghash_4bit'
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/modes/gcm.c:1043: 
> undefined reference to `gcm_ghash_4bit'
> third_party/boringssl/crypto/libcrypto.a(gcm.c.o): In function 
> `CRYPTO_gcm128_decrypt_ctr32':
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/modes/gcm.c:1099: 
> undefined reference to `gcm_gmult_4bit'
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/modes/gcm.c:1119: 
> undefined reference to `gcm_gmult_4bit'
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/modes/gcm.c:1127: 
> undefined reference to `gcm_ghash_4bit'
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/modes/gcm.c:1145: 
> undefined reference to `gcm_ghash_4bit'
> third_party/boringssl/crypto/libcrypto.a(gcm.c.o): In function 
> `CRYPTO_gcm128_finish':
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/modes/gcm.c:1201: 
> undefined reference to `gcm_gmult_4bit'
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/modes/gcm.c:1221: 
> undefined reference to `gcm_gmult_4bit'
> third_party/boringssl/crypto/libcrypto.a(aes.c.o): In function 
> `hwaes_capable':
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/aes/aes.c:1066: 
> undefined reference to `CRYPTO_is_ARMv8_AES_capable'
> third_party/boringssl/crypto/libcrypto.a(aes.c.o): In function `
> AES_encrypt':
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/aes/aes.c:1109: 
> undefined reference to `aes_v8_encrypt'
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/aes/aes.c:1111: 
> undefined reference to `asm_AES_encrypt'
> third_party/boringssl/crypto/libcrypto.a(aes.c.o): In function `
> AES_decrypt':
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/aes/aes.c:1118: 
> undefined reference to `aes_v8_decrypt'
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/aes/aes.c:1120: 
> undefined reference to `asm_AES_decrypt'
> third_party/boringssl/crypto/libcrypto.a(aes.c.o): In function `
> AES_set_encrypt_key':
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/aes/aes.c:1127: 
> undefined reference to `aes_v8_set_encrypt_key'
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/aes/aes.c:1129: 
> undefined reference to `asm_AES_set_encrypt_key'
> third_party/boringssl/crypto/libcrypto.a(aes.c.o): In function `
> AES_set_decrypt_key':
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/aes/aes.c:1136: 
> undefined reference to `aes_v8_set_decrypt_key'
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/aes/aes.c:1138: 
> undefined reference to `asm_AES_set_decrypt_key'
> third_party/boringssl/crypto/libcrypto.a(montgomery.c.o): In function `
> BN_mod_mul_montgomery':
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/bn/montgomery.c:525: 
> undefined reference to `bn_mul_mont'
> third_party/boringssl/crypto/libcrypto.a(chacha_generic.c.o): In function 
> `CRYPTO_is_NEON_capable':
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/../include/openssl/cpu.h:116:
>  
> undefined reference to `CRYPTO_is_NEON_capable_at_runtime'
> third_party/boringssl/crypto/libcrypto.a(chacha_generic.c.o): In function 
> `CRYPTO_chacha_20':
> /home/<my_name>/grpc_arm/third_party/boringssl/crypto/chacha/
> chacha_generic.c:96: undefined reference to `CRYPTO_chacha_20_neon'
> collect2: error: ld returned 1 exit status
> make[2]: *** [grpc_create_jwt] Error 1
> make[1]: *** [CMakeFiles/grpc_create_jwt.dir/all] Error 2
> make: *** [all] Error 2
>
> I think it is linked with OpenSSL, but I don't know how to link my 
> corss-compiled openssl to the makefile.
> Thank you.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"grpc.io" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to grpc-io+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/1a231e5b-f464-430a-aec9-9272f1040e11n%40googlegroups.com.

Reply via email to