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.