lhelontra / tensorflow-on-arm

TensorFlow for Arm
MIT License
1.05k stars 274 forks source link

C Library on Release 1.14.0 #77

Closed snowzach closed 4 years ago

snowzach commented 4 years ago

Hi @lhelontra I am trying to use this to build the C library and am running into compile issues. I am building by just replacing the //tensorflow/tools/pip_package:build_pip_package with //tensorflow:libtensorflow.so and I also tried //tensorflow/tools/lib_package:libtensorflow but it ends up with compile errors like below.

Do you have any hints on how to fix this?

/root/tensorflow-on-arm/build_tensorflow/sources/toolchain/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/../arm-linux-gnueabihf/libc/usr/include/stdlib.h:95:1: error: '__BEGIN_NAMESPACE_STD' does not n
ame a type                                                                                                                                                                                                          __BEGIN_NAMESPACE_STD
 ^~~~~~~~~~~~~~~~~~~~~
/root/tensorflow-on-arm/build_tensorflow/sources/toolchain/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/../arm-linux-gnueabihf/libc/usr/include/stdlib.h:101:5: error: 'div_t' does not name a type
   } div_t;                                                                                                                                                                                                             ^~~~~
/root/tensorflow-on-arm/build_tensorflow/sources/toolchain/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/../arm-linux-gnueabihf/libc/usr/include/stdlib.h:112:1: error: '__END_NAMESPACE_STD' does not na
me a type
 __END_NAMESPACE_STD
 ^~~~~~~~~~~~~~~~~~~
/root/tensorflow-on-arm/build_tensorflow/sources/toolchain/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/../arm-linux-gnueabihf/libc/usr/include/stdlib.h:121:5: error: 'lldiv_t' does not name a type
   } lldiv_t;
     ^~~~~~~
/root/tensorflow-on-arm/build_tensorflow/sources/toolchain/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/../arm-linux-gnueabihf/libc/usr/include/stdlib.h:123:1: error: '__END_NAMESPACE_C99' does not na
me a type
 __END_NAMESPACE_C99
lhelontra commented 4 years ago

Hi, verify v1.14.0-buster tag, crosstool should be 5.5.0 not 6.3.1. I recommend your using dockerfile for cross-compile.

snowzach commented 4 years ago

Okay, I verified that I was using the right tag now, which I wasn't. This is the other error I've been getting with building boringssl. I wonder if there's a way to not use boringssl.

In file included from external/boringssl/src/ssl/tls13_server.cc:29:0:
external/boringssl/src/include/openssl/digest.h:267:50: error: macro "EVP_MD_CTX_create" passed 1 arguments, but takes just 0
 OPENSSL_EXPORT EVP_MD_CTX *EVP_MD_CTX_create(void);
                                                  ^
In file included from external/boringssl/src/ssl/../crypto/internal.h:112:0,
                 from external/boringssl/src/ssl/tls13_server.cc:35:
external/boringssl/src/include/openssl/ex_data.h:181:52: error: macro "CRYPTO_cleanup_all_ex_data" passed 1 arguments, but takes just 0
 OPENSSL_EXPORT void CRYPTO_cleanup_all_ex_data(void);
                                                    ^
In file included from external/boringssl/src/ssl/../crypto/internal.h:114:0,
                 from external/boringssl/src/ssl/tls13_server.cc:35:
external/boringssl/src/include/openssl/thread.h:120:41: error: macro "CRYPTO_num_locks" passed 1 arguments, but takes just 0
 OPENSSL_EXPORT int CRYPTO_num_locks(void);
                                         ^
external/boringssl/src/include/openssl/thread.h:131:55: error: macro "CRYPTO_get_locking_callback" passed 1 arguments, but takes just 0
 OPENSSL_EXPORT void (*CRYPTO_get_locking_callback(void))(int mode, int lock_num,
                                                       ^
external/boringssl/src/include/openssl/thread.h:176:45: error: macro "CRYPTO_get_dynlock_create_callback" passed 1 arguments, but takes just 0
     *CRYPTO_get_dynlock_create_callback(void))(const char *file, int line);
                                             ^
external/boringssl/src/include/openssl/thread.h:179:60: error: macro "CRYPTO_get_dynlock_lock_callback" passed 1 arguments, but takes just 0
 OPENSSL_EXPORT void (*CRYPTO_get_dynlock_lock_callback(void))(
                                                            ^
external/boringssl/src/include/openssl/thread.h:183:63: error: macro "CRYPTO_get_dynlock_destroy_callback" passed 1 arguments, but takes just 0
 OPENSSL_EXPORT void (*CRYPTO_get_dynlock_destroy_callback(void))(
......
snowzach commented 4 years ago

I figured it out now. I had installed a version of libssl-dev:armh and it was conflicting with boringssl apparently. Thanks for the pointers.