How to compile on Linux ARM64? #3

Open
opened 2021-10-05 05:06:23 -05:00 by hippie68 · 1 comment
hippie68 commented 2021-10-05 05:06:23 -05:00 (Migrated from github.com)

The program won't compile nor link on Linux ARM64.

Here's what I did:

cd src
cmake ../
make

But then an error shows up:

cc: error: unrecognized command line option ‘-masm=intel’
make[2]: *** [CMakeFiles/pkg_pfs_tool.dir/build.make:63: CMakeFiles/pkg_pfs_tool.dir/compression.c.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:73: CMakeFiles/pkg_pfs_tool.dir/all] Error 2
make: *** [Makefile:84: all] Error 2

To "fix" it, I changed this line in CMakeLists.txt

12 #add_compile_options(-masm=intel -march=native)                                  

And then "make" compiles, but can't link because the architecture is recognized as "linux64":

[...]
[100%] Linking C executable pkg_pfs_tool
/usr/bin/ld: ../thirdparty/lib/linux64/libmbedcrypto.a(aes.c.o): Relocations in generic ELF (EM: 62)
/usr/bin/ld: ../thirdparty/lib/linux64/libmbedcrypto.a(aes.c.o): Relocations in generic ELF (EM: 62)
/usr/bin/ld: ../thirdparty/lib/linux64/libmbedcrypto.a: error adding symbols: file in wrong format
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/pkg_pfs_tool.dir/build.make:433: pkg_pfs_tool] Error 1
make[1]: *** [CMakeFiles/Makefile2:73: CMakeFiles/pkg_pfs_tool.dir/all] Error 2
make: *** [Makefile:84: all] Error 2

If I force "../thirdparty/lib/darwin-arm64" via CMakeLists.txt, it won't link either:

67 set(THIRDPARTY_LIB_DIR "${THIRDPARTY_ROOT_DIR}/lib/darwin-arm64")                

"make" output:

/usr/bin/ld: CMakeFiles/pkg_pfs_tool.dir/crypto.c.o: in function `crypto_initialize':
crypto.c:(.text+0x10): undefined reference to `mbedtls_entropy_init'
/usr/bin/ld: crypto.c:(.text+0x1c): undefined reference to `mbedtls_ctr_drbg_init'
/usr/bin/ld: crypto.c:(.text+0x34): undefined reference to `mbedtls_cipher_info_from_type'
/usr/bin/ld: crypto.c:(.text+0x74): undefined reference to `mbedtls_md_info_from_type'
/usr/bin/ld: crypto.c:(.text+0xc0): undefined reference to `mbedtls_entropy_func'
/usr/bin/ld: crypto.c:(.text+0xc4): undefined reference to `mbedtls_entropy_func'
/usr/bin/ld: crypto.c:(.text+0xd0): undefined reference to `mbedtls_ctr_drbg_seed'
/usr/bin/ld: CMakeFiles/pkg_pfs_tool.dir/crypto.c.o: in function `crypto_finalize':
crypto.c:(.text+0x138): undefined reference to `mbedtls_ctr_drbg_free'
/usr/bin/ld: crypto.c:(.text+0x144): undefined reference to `mbedtls_entropy_free'
/usr/bin/ld: CMakeFiles/pkg_pfs_tool.dir/crypto.c.o: in function `rsa_public':
crypto.c:(.text+0x20c): undefined reference to `mbedtls_rsa_init'
/usr/bin/ld: crypto.c:(.text+0x244): undefined reference to `mbedtls_rsa_public'
/usr/bin/ld: crypto.c:(.text+0x2a0): undefined reference to `mbedtls_rsa_free'
/usr/bin/ld: CMakeFiles/pkg_pfs_tool.dir/crypto.c.o: in function `rsa_private':
crypto.c:(.text+0x368): undefined reference to `mbedtls_rsa_init'
/usr/bin/ld: crypto.c:(.text+0x3a8): undefined reference to `mbedtls_ctr_drbg_random'
/usr/bin/ld: crypto.c:(.text+0x3ac): undefined reference to `mbedtls_ctr_drbg_random'
/usr/bin/ld: crypto.c:(.text+0x3b4): undefined reference to `mbedtls_rsa_private'
/usr/bin/ld: crypto.c:(.text+0x410): undefined reference to `mbedtls_rsa_free'
/usr/bin/ld: CMakeFiles/pkg_pfs_tool.dir/crypto.c.o: in function `mbedtls_rsa_rsaes_pkcs1_v15_decrypt_ex':
crypto.c:(.text+0x4c0): undefined reference to `mbedtls_rsa_public'
/usr/bin/ld: crypto.c:(.text+0x4e0): undefined reference to `mbedtls_rsa_private'
/usr/bin/ld: CMakeFiles/pkg_pfs_tool.dir/crypto.c.o: in function `rsa_pkcsv15_decrypt':
crypto.c:(.text+0x88c): undefined reference to `mbedtls_rsa_init'
/usr/bin/ld: crypto.c:(.text+0x944): undefined reference to `mbedtls_ctr_drbg_random'
/usr/bin/ld: crypto.c:(.text+0x948): undefined reference to `mbedtls_ctr_drbg_random'
/usr/bin/ld: crypto.c:(.text+0x9b8): undefined reference to `mbedtls_rsa_free'
/usr/bin/ld: CMakeFiles/pkg_pfs_tool.dir/crypto.c.o: in function `rsa_pkcsv15_verify_by_hash':
crypto.c:(.text+0xa8c): undefined reference to `mbedtls_rsa_init'
/usr/bin/ld: crypto.c:(.text+0xb08): undefined reference to `mbedtls_ctr_drbg_random'
/usr/bin/ld: crypto.c:(.text+0xb0c): undefined reference to `mbedtls_ctr_drbg_random'
/usr/bin/ld: crypto.c:(.text+0xb14): undefined reference to `mbedtls_rsa_pkcs1_verify'
/usr/bin/ld: crypto.c:(.text+0xb48): undefined reference to `mbedtls_rsa_free'
/usr/bin/ld: CMakeFiles/pkg_pfs_tool.dir/crypto.c.o: in function `setup_rsa_keyset':
crypto.c:(.text+0xce8): undefined reference to `mbedtls_mpi_read_string'
/usr/bin/ld: crypto.c:(.text+0xd74): undefined reference to `mbedtls_mpi_read_string'
/usr/bin/ld: crypto.c:(.text+0xe0c): undefined reference to `mbedtls_mpi_read_string'
/usr/bin/ld: crypto.c:(.text+0xe78): undefined reference to `mbedtls_mpi_read_string'
/usr/bin/ld: crypto.c:(.text+0xee4): undefined reference to `mbedtls_mpi_read_string'
/usr/bin/ld: CMakeFiles/pkg_pfs_tool.dir/crypto.c.o:crypto.c:(.text+0xf34): more undefined references to `mbedtls_mpi_read_string' follow
/usr/bin/ld: CMakeFiles/pkg_pfs_tool.dir/crypto.c.o: in function `setup_rsa_keyset':
crypto.c:(.text+0x10a8): undefined reference to `mbedtls_mpi_size'
/usr/bin/ld: CMakeFiles/pkg_pfs_tool.dir/crypto.c.o: in function `sha256_buffer':
crypto.c:(.text+0x1144): undefined reference to `mbedtls_md_init'
/usr/bin/ld: crypto.c:(.text+0x115c): undefined reference to `mbedtls_md_setup'
/usr/bin/ld: crypto.c:(.text+0x1164): undefined reference to `mbedtls_md_starts'
/usr/bin/ld: crypto.c:(.text+0x1174): undefined reference to `mbedtls_md_update'
/usr/bin/ld: crypto.c:(.text+0x1180): undefined reference to `mbedtls_md_finish'
/usr/bin/ld: crypto.c:(.text+0x1188): undefined reference to `mbedtls_md_free'
/usr/bin/ld: CMakeFiles/pkg_pfs_tool.dir/crypto.c.o: in function `sha256_buffer_chunked':
crypto.c:(.text+0x1250): undefined reference to `mbedtls_md_init'
/usr/bin/ld: crypto.c:(.text+0x1268): undefined reference to `mbedtls_md_setup'
/usr/bin/ld: crypto.c:(.text+0x1270): undefined reference to `mbedtls_md_starts'
/usr/bin/ld: crypto.c:(.text+0x12bc): undefined reference to `mbedtls_md_update'
/usr/bin/ld: crypto.c:(.text+0x12d4): undefined reference to `mbedtls_md_finish'
/usr/bin/ld: crypto.c:(.text+0x12ec): undefined reference to `mbedtls_md_free'
/usr/bin/ld: CMakeFiles/pkg_pfs_tool.dir/crypto.c.o: in function `hmac_sha256_buffer':
crypto.c:(.text+0x13b0): undefined reference to `mbedtls_md_init'
/usr/bin/ld: crypto.c:(.text+0x13c8): undefined reference to `mbedtls_md_setup'
/usr/bin/ld: crypto.c:(.text+0x13d8): undefined reference to `mbedtls_md_hmac_starts'
/usr/bin/ld: crypto.c:(.text+0x13e8): undefined reference to `mbedtls_md_hmac_update'
/usr/bin/ld: crypto.c:(.text+0x13f4): undefined reference to `mbedtls_md_hmac_finish'
/usr/bin/ld: crypto.c:(.text+0x13fc): undefined reference to `mbedtls_md_free'
/usr/bin/ld: CMakeFiles/pkg_pfs_tool.dir/crypto.c.o: in function `hmac_sha256_buffer_chunked':
crypto.c:(.text+0x14f8): undefined reference to `mbedtls_md_init'
/usr/bin/ld: crypto.c:(.text+0x1510): undefined reference to `mbedtls_md_setup'
/usr/bin/ld: crypto.c:(.text+0x1520): undefined reference to `mbedtls_md_hmac_starts'
/usr/bin/ld: crypto.c:(.text+0x156c): undefined reference to `mbedtls_md_hmac_update'
/usr/bin/ld: crypto.c:(.text+0x1584): undefined reference to `mbedtls_md_hmac_finish'
/usr/bin/ld: crypto.c:(.text+0x1594): undefined reference to `mbedtls_md_free'
/usr/bin/ld: CMakeFiles/pkg_pfs_tool.dir/crypto.c.o: in function `aes_encrypt_cbc_cts':
crypto.c:(.text+0x16f0): undefined reference to `mbedtls_aes_init'
/usr/bin/ld: crypto.c:(.text+0x1708): undefined reference to `mbedtls_aes_setkey_enc'
/usr/bin/ld: crypto.c:(.text+0x17bc): undefined reference to `mbedtls_aes_crypt_cbc'
/usr/bin/ld: crypto.c:(.text+0x181c): undefined reference to `mbedtls_aes_crypt_ecb'
/usr/bin/ld: crypto.c:(.text+0x18b0): undefined reference to `mbedtls_aes_free'
/usr/bin/ld: crypto.c:(.text+0x18d4): undefined reference to `mbedtls_aes_free'
/usr/bin/ld: CMakeFiles/pkg_pfs_tool.dir/crypto.c.o: in function `aes_decrypt_cbc_cts':
crypto.c:(.text+0x1ad0): undefined reference to `mbedtls_aes_init'
/usr/bin/ld: crypto.c:(.text+0x1ae8): undefined reference to `mbedtls_aes_setkey_dec'
/usr/bin/ld: crypto.c:(.text+0x1b10): undefined reference to `mbedtls_aes_crypt_cbc'
/usr/bin/ld: crypto.c:(.text+0x1b20): undefined reference to `mbedtls_aes_free'
/usr/bin/ld: crypto.c:(.text+0x1b74): undefined reference to `mbedtls_aes_init'
/usr/bin/ld: crypto.c:(.text+0x1b8c): undefined reference to `mbedtls_aes_setkey_enc'
/usr/bin/ld: crypto.c:(.text+0x1bb0): undefined reference to `mbedtls_aes_crypt_ecb'
/usr/bin/ld: crypto.c:(.text+0x1bc0): undefined reference to `mbedtls_aes_free'
/usr/bin/ld: crypto.c:(.text+0x1c70): undefined reference to `mbedtls_aes_free'
/usr/bin/ld: CMakeFiles/pkg_pfs_tool.dir/crypto.c.o: in function `aes_decrypt_oex':
crypto.c:(.text+0x1ec4): undefined reference to `mbedtls_aes_setkey_enc'
/usr/bin/ld: crypto.c:(.text+0x1f30): undefined reference to `mbedtls_aes_crypt_ecb'
/usr/bin/ld: crypto.c:(.text+0x2000): undefined reference to `mbedtls_aes_free'
/usr/bin/ld: crypto.c:(.text+0x201c): undefined reference to `mbedtls_aes_free'
/usr/bin/ld: CMakeFiles/pkg_pfs_tool.dir/crypto.c.o: in function `aes_cmac':
crypto.c:(.text+0x20f8): undefined reference to `mbedtls_cipher_cmac'
/usr/bin/ld: CMakeFiles/pkg_pfs_tool.dir/crypto.c.o: in function `encdec_device_alloc':
crypto.c:(.text+0x22ac): undefined reference to `mbedtls_aes_xts_init'
/usr/bin/ld: crypto.c:(.text+0x22d8): undefined reference to `mbedtls_aes_xts_setkey_enc'
/usr/bin/ld: crypto.c:(.text+0x2300): undefined reference to `mbedtls_aes_xts_init'
/usr/bin/ld: crypto.c:(.text+0x2330): undefined reference to `mbedtls_aes_xts_setkey_dec'
/usr/bin/ld: CMakeFiles/pkg_pfs_tool.dir/crypto.c.o: in function `encdec_device_free':
crypto.c:(.text+0x23d0): undefined reference to `mbedtls_aes_xts_free'
/usr/bin/ld: crypto.c:(.text+0x23dc): undefined reference to `mbedtls_aes_xts_free'
/usr/bin/ld: CMakeFiles/pkg_pfs_tool.dir/crypto.c.o: in function `encdec_device_process':
crypto.c:(.text+0x2584): undefined reference to `mbedtls_aes_crypt_xts'
/usr/bin/ld: crypto.c:(.text+0x2614): undefined reference to `mbedtls_aes_crypt_xts'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/pkg_pfs_tool.dir/build.make:433: pkg_pfs_tool] Error 1
make[1]: *** [CMakeFiles/Makefile2:73: CMakeFiles/pkg_pfs_tool.dir/all] Error 2
make: *** [Makefile:84: all] Error 2

Do you know how to fix this and add Linux ARM support?

The program won't compile nor link on Linux ARM64. Here's what I did: cd src cmake ../ make But then an error shows up: cc: error: unrecognized command line option ‘-masm=intel’ make[2]: *** [CMakeFiles/pkg_pfs_tool.dir/build.make:63: CMakeFiles/pkg_pfs_tool.dir/compression.c.o] Error 1 make[1]: *** [CMakeFiles/Makefile2:73: CMakeFiles/pkg_pfs_tool.dir/all] Error 2 make: *** [Makefile:84: all] Error 2 To "fix" it, I changed this line in CMakeLists.txt 12 #add_compile_options(-masm=intel -march=native) And then "make" compiles, but can't link because the architecture is recognized as "linux64": [...] [100%] Linking C executable pkg_pfs_tool /usr/bin/ld: ../thirdparty/lib/linux64/libmbedcrypto.a(aes.c.o): Relocations in generic ELF (EM: 62) /usr/bin/ld: ../thirdparty/lib/linux64/libmbedcrypto.a(aes.c.o): Relocations in generic ELF (EM: 62) /usr/bin/ld: ../thirdparty/lib/linux64/libmbedcrypto.a: error adding symbols: file in wrong format collect2: error: ld returned 1 exit status make[2]: *** [CMakeFiles/pkg_pfs_tool.dir/build.make:433: pkg_pfs_tool] Error 1 make[1]: *** [CMakeFiles/Makefile2:73: CMakeFiles/pkg_pfs_tool.dir/all] Error 2 make: *** [Makefile:84: all] Error 2 If I force "../thirdparty/lib/darwin-arm64" via CMakeLists.txt, it won't link either: 67 set(THIRDPARTY_LIB_DIR "${THIRDPARTY_ROOT_DIR}/lib/darwin-arm64") "make" output: /usr/bin/ld: CMakeFiles/pkg_pfs_tool.dir/crypto.c.o: in function `crypto_initialize': crypto.c:(.text+0x10): undefined reference to `mbedtls_entropy_init' /usr/bin/ld: crypto.c:(.text+0x1c): undefined reference to `mbedtls_ctr_drbg_init' /usr/bin/ld: crypto.c:(.text+0x34): undefined reference to `mbedtls_cipher_info_from_type' /usr/bin/ld: crypto.c:(.text+0x74): undefined reference to `mbedtls_md_info_from_type' /usr/bin/ld: crypto.c:(.text+0xc0): undefined reference to `mbedtls_entropy_func' /usr/bin/ld: crypto.c:(.text+0xc4): undefined reference to `mbedtls_entropy_func' /usr/bin/ld: crypto.c:(.text+0xd0): undefined reference to `mbedtls_ctr_drbg_seed' /usr/bin/ld: CMakeFiles/pkg_pfs_tool.dir/crypto.c.o: in function `crypto_finalize': crypto.c:(.text+0x138): undefined reference to `mbedtls_ctr_drbg_free' /usr/bin/ld: crypto.c:(.text+0x144): undefined reference to `mbedtls_entropy_free' /usr/bin/ld: CMakeFiles/pkg_pfs_tool.dir/crypto.c.o: in function `rsa_public': crypto.c:(.text+0x20c): undefined reference to `mbedtls_rsa_init' /usr/bin/ld: crypto.c:(.text+0x244): undefined reference to `mbedtls_rsa_public' /usr/bin/ld: crypto.c:(.text+0x2a0): undefined reference to `mbedtls_rsa_free' /usr/bin/ld: CMakeFiles/pkg_pfs_tool.dir/crypto.c.o: in function `rsa_private': crypto.c:(.text+0x368): undefined reference to `mbedtls_rsa_init' /usr/bin/ld: crypto.c:(.text+0x3a8): undefined reference to `mbedtls_ctr_drbg_random' /usr/bin/ld: crypto.c:(.text+0x3ac): undefined reference to `mbedtls_ctr_drbg_random' /usr/bin/ld: crypto.c:(.text+0x3b4): undefined reference to `mbedtls_rsa_private' /usr/bin/ld: crypto.c:(.text+0x410): undefined reference to `mbedtls_rsa_free' /usr/bin/ld: CMakeFiles/pkg_pfs_tool.dir/crypto.c.o: in function `mbedtls_rsa_rsaes_pkcs1_v15_decrypt_ex': crypto.c:(.text+0x4c0): undefined reference to `mbedtls_rsa_public' /usr/bin/ld: crypto.c:(.text+0x4e0): undefined reference to `mbedtls_rsa_private' /usr/bin/ld: CMakeFiles/pkg_pfs_tool.dir/crypto.c.o: in function `rsa_pkcsv15_decrypt': crypto.c:(.text+0x88c): undefined reference to `mbedtls_rsa_init' /usr/bin/ld: crypto.c:(.text+0x944): undefined reference to `mbedtls_ctr_drbg_random' /usr/bin/ld: crypto.c:(.text+0x948): undefined reference to `mbedtls_ctr_drbg_random' /usr/bin/ld: crypto.c:(.text+0x9b8): undefined reference to `mbedtls_rsa_free' /usr/bin/ld: CMakeFiles/pkg_pfs_tool.dir/crypto.c.o: in function `rsa_pkcsv15_verify_by_hash': crypto.c:(.text+0xa8c): undefined reference to `mbedtls_rsa_init' /usr/bin/ld: crypto.c:(.text+0xb08): undefined reference to `mbedtls_ctr_drbg_random' /usr/bin/ld: crypto.c:(.text+0xb0c): undefined reference to `mbedtls_ctr_drbg_random' /usr/bin/ld: crypto.c:(.text+0xb14): undefined reference to `mbedtls_rsa_pkcs1_verify' /usr/bin/ld: crypto.c:(.text+0xb48): undefined reference to `mbedtls_rsa_free' /usr/bin/ld: CMakeFiles/pkg_pfs_tool.dir/crypto.c.o: in function `setup_rsa_keyset': crypto.c:(.text+0xce8): undefined reference to `mbedtls_mpi_read_string' /usr/bin/ld: crypto.c:(.text+0xd74): undefined reference to `mbedtls_mpi_read_string' /usr/bin/ld: crypto.c:(.text+0xe0c): undefined reference to `mbedtls_mpi_read_string' /usr/bin/ld: crypto.c:(.text+0xe78): undefined reference to `mbedtls_mpi_read_string' /usr/bin/ld: crypto.c:(.text+0xee4): undefined reference to `mbedtls_mpi_read_string' /usr/bin/ld: CMakeFiles/pkg_pfs_tool.dir/crypto.c.o:crypto.c:(.text+0xf34): more undefined references to `mbedtls_mpi_read_string' follow /usr/bin/ld: CMakeFiles/pkg_pfs_tool.dir/crypto.c.o: in function `setup_rsa_keyset': crypto.c:(.text+0x10a8): undefined reference to `mbedtls_mpi_size' /usr/bin/ld: CMakeFiles/pkg_pfs_tool.dir/crypto.c.o: in function `sha256_buffer': crypto.c:(.text+0x1144): undefined reference to `mbedtls_md_init' /usr/bin/ld: crypto.c:(.text+0x115c): undefined reference to `mbedtls_md_setup' /usr/bin/ld: crypto.c:(.text+0x1164): undefined reference to `mbedtls_md_starts' /usr/bin/ld: crypto.c:(.text+0x1174): undefined reference to `mbedtls_md_update' /usr/bin/ld: crypto.c:(.text+0x1180): undefined reference to `mbedtls_md_finish' /usr/bin/ld: crypto.c:(.text+0x1188): undefined reference to `mbedtls_md_free' /usr/bin/ld: CMakeFiles/pkg_pfs_tool.dir/crypto.c.o: in function `sha256_buffer_chunked': crypto.c:(.text+0x1250): undefined reference to `mbedtls_md_init' /usr/bin/ld: crypto.c:(.text+0x1268): undefined reference to `mbedtls_md_setup' /usr/bin/ld: crypto.c:(.text+0x1270): undefined reference to `mbedtls_md_starts' /usr/bin/ld: crypto.c:(.text+0x12bc): undefined reference to `mbedtls_md_update' /usr/bin/ld: crypto.c:(.text+0x12d4): undefined reference to `mbedtls_md_finish' /usr/bin/ld: crypto.c:(.text+0x12ec): undefined reference to `mbedtls_md_free' /usr/bin/ld: CMakeFiles/pkg_pfs_tool.dir/crypto.c.o: in function `hmac_sha256_buffer': crypto.c:(.text+0x13b0): undefined reference to `mbedtls_md_init' /usr/bin/ld: crypto.c:(.text+0x13c8): undefined reference to `mbedtls_md_setup' /usr/bin/ld: crypto.c:(.text+0x13d8): undefined reference to `mbedtls_md_hmac_starts' /usr/bin/ld: crypto.c:(.text+0x13e8): undefined reference to `mbedtls_md_hmac_update' /usr/bin/ld: crypto.c:(.text+0x13f4): undefined reference to `mbedtls_md_hmac_finish' /usr/bin/ld: crypto.c:(.text+0x13fc): undefined reference to `mbedtls_md_free' /usr/bin/ld: CMakeFiles/pkg_pfs_tool.dir/crypto.c.o: in function `hmac_sha256_buffer_chunked': crypto.c:(.text+0x14f8): undefined reference to `mbedtls_md_init' /usr/bin/ld: crypto.c:(.text+0x1510): undefined reference to `mbedtls_md_setup' /usr/bin/ld: crypto.c:(.text+0x1520): undefined reference to `mbedtls_md_hmac_starts' /usr/bin/ld: crypto.c:(.text+0x156c): undefined reference to `mbedtls_md_hmac_update' /usr/bin/ld: crypto.c:(.text+0x1584): undefined reference to `mbedtls_md_hmac_finish' /usr/bin/ld: crypto.c:(.text+0x1594): undefined reference to `mbedtls_md_free' /usr/bin/ld: CMakeFiles/pkg_pfs_tool.dir/crypto.c.o: in function `aes_encrypt_cbc_cts': crypto.c:(.text+0x16f0): undefined reference to `mbedtls_aes_init' /usr/bin/ld: crypto.c:(.text+0x1708): undefined reference to `mbedtls_aes_setkey_enc' /usr/bin/ld: crypto.c:(.text+0x17bc): undefined reference to `mbedtls_aes_crypt_cbc' /usr/bin/ld: crypto.c:(.text+0x181c): undefined reference to `mbedtls_aes_crypt_ecb' /usr/bin/ld: crypto.c:(.text+0x18b0): undefined reference to `mbedtls_aes_free' /usr/bin/ld: crypto.c:(.text+0x18d4): undefined reference to `mbedtls_aes_free' /usr/bin/ld: CMakeFiles/pkg_pfs_tool.dir/crypto.c.o: in function `aes_decrypt_cbc_cts': crypto.c:(.text+0x1ad0): undefined reference to `mbedtls_aes_init' /usr/bin/ld: crypto.c:(.text+0x1ae8): undefined reference to `mbedtls_aes_setkey_dec' /usr/bin/ld: crypto.c:(.text+0x1b10): undefined reference to `mbedtls_aes_crypt_cbc' /usr/bin/ld: crypto.c:(.text+0x1b20): undefined reference to `mbedtls_aes_free' /usr/bin/ld: crypto.c:(.text+0x1b74): undefined reference to `mbedtls_aes_init' /usr/bin/ld: crypto.c:(.text+0x1b8c): undefined reference to `mbedtls_aes_setkey_enc' /usr/bin/ld: crypto.c:(.text+0x1bb0): undefined reference to `mbedtls_aes_crypt_ecb' /usr/bin/ld: crypto.c:(.text+0x1bc0): undefined reference to `mbedtls_aes_free' /usr/bin/ld: crypto.c:(.text+0x1c70): undefined reference to `mbedtls_aes_free' /usr/bin/ld: CMakeFiles/pkg_pfs_tool.dir/crypto.c.o: in function `aes_decrypt_oex': crypto.c:(.text+0x1ec4): undefined reference to `mbedtls_aes_setkey_enc' /usr/bin/ld: crypto.c:(.text+0x1f30): undefined reference to `mbedtls_aes_crypt_ecb' /usr/bin/ld: crypto.c:(.text+0x2000): undefined reference to `mbedtls_aes_free' /usr/bin/ld: crypto.c:(.text+0x201c): undefined reference to `mbedtls_aes_free' /usr/bin/ld: CMakeFiles/pkg_pfs_tool.dir/crypto.c.o: in function `aes_cmac': crypto.c:(.text+0x20f8): undefined reference to `mbedtls_cipher_cmac' /usr/bin/ld: CMakeFiles/pkg_pfs_tool.dir/crypto.c.o: in function `encdec_device_alloc': crypto.c:(.text+0x22ac): undefined reference to `mbedtls_aes_xts_init' /usr/bin/ld: crypto.c:(.text+0x22d8): undefined reference to `mbedtls_aes_xts_setkey_enc' /usr/bin/ld: crypto.c:(.text+0x2300): undefined reference to `mbedtls_aes_xts_init' /usr/bin/ld: crypto.c:(.text+0x2330): undefined reference to `mbedtls_aes_xts_setkey_dec' /usr/bin/ld: CMakeFiles/pkg_pfs_tool.dir/crypto.c.o: in function `encdec_device_free': crypto.c:(.text+0x23d0): undefined reference to `mbedtls_aes_xts_free' /usr/bin/ld: crypto.c:(.text+0x23dc): undefined reference to `mbedtls_aes_xts_free' /usr/bin/ld: CMakeFiles/pkg_pfs_tool.dir/crypto.c.o: in function `encdec_device_process': crypto.c:(.text+0x2584): undefined reference to `mbedtls_aes_crypt_xts' /usr/bin/ld: crypto.c:(.text+0x2614): undefined reference to `mbedtls_aes_crypt_xts' collect2: error: ld returned 1 exit status make[2]: *** [CMakeFiles/pkg_pfs_tool.dir/build.make:433: pkg_pfs_tool] Error 1 make[1]: *** [CMakeFiles/Makefile2:73: CMakeFiles/pkg_pfs_tool.dir/all] Error 2 make: *** [Makefile:84: all] Error 2 Do you know how to fix this and add Linux ARM support?
bucanero commented 2021-12-23 13:54:21 -06:00 (Migrated from github.com)

you need to build your own mbedTLS library for linux arm64, you can't use macOS arm64 libraries.

You need to download and compile mbedtls release 2.27 and in options enable CMAC_C in config.h and also add option -fPIE to CMakeLists.txt in project.

you need to build your own mbedTLS library for linux arm64, you can't use macOS arm64 libraries. You need to download and compile mbedtls release 2.27 and in options enable `CMAC_C` in `config.h` and also add option -fPIE to CMakeLists.txt in project.
Sign in to join this conversation.
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
gh-flatz/pkg_pfs_tool#3
No description provided.