-
Notifications
You must be signed in to change notification settings - Fork 85
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
build errors: std::numeric_limits & _mm_storeu_si32 #119
Comments
Can you see if this is while compiling the TensorFlow Light library or while building |
this is the part of the output of
About the question which part is beeing built here: I don't know, sorry.
|
Okay, this looks quite strange, but it at least answers the question of which part it's trying to build. Given the path that it failed at this looks like XNNPACK inside the TensorFlow Light build. Can you have a shot at trying to build the One oddity though: What compiler is your |
okey, I have checked out the
|
Sorry, when I replied yesterday I didn't have the time to read through your complete comment. Under I find quite a few related binaries there:
Running About not using parallel threads anymore, I guess I'm already not doing that anymore since you told me to use Lastly, I think I'm having troubles following your instruction to
How do I do that? I mean I'd know how to do a fresh clone, but not how to clone a different branch, only how to UPDATE: ah, okey, it seem's I can directly checkout a branch by using this command: So what I did now was:
But sadly, the result looks to still be exactly the same:
|
Thanks for digging in @thomas725, I'll pull a Manjaro docker image and try to reproduce today. It looks like Tensorflow Lite is not built or tested on Manjaro (https://www.tensorflow.org/lite/guide/build_cmake), so we may have a number of compatibility challenges ahead! |
Okay, digging into the source of Problem is, they are violating the rules of IWYU (include what you use) and rely on the various headers to pull in the proper dependencies for them. May work, but will easily break in unexpected ways when you least suspect it. |
Reproduction1/ Create isolated, fresh manjaro image using docker: % docker pull manjarolinux/base:latest
% docker run -it --name manjaro manjarolinux/base 2/ Install dependencies: # pacman -Syu opencv 3/ Pull # cd ~
# git clone https://github.com/phlash/backscrub.git
# cd backscrub 4/ Attempt build: # cmake -B build
# cmake --build build -v This produces the same error as @thomas725
AnalysisA Tensorflow Lite dependency (Abseil libraries) uses the C++11 # cd /root/backscrub/build/_deps/abseil-cpp-build/absl/synchronization
# /usr/bin/c++ -DTFLITE_BUILD_WITH_XNNPACK_DELEGATE -D__CLANG_SUPPORT_DYN_ANNOTATION__ -I/root/backscrub/build/abseil-cpp -O3 -DNDEBUG -fPIC -Wall -Wextra -Wcast-qual -Wconversion-null -Wmissing-declarations -Woverlength-strings -Wpointer-arith -Wunused-local-typedefs -Wunused-result -Wvarargs -Wvla -Wwrite-strings -Wno-missing-field-initializers -Wno-sign-compare -std=c++14 -MD -MT _deps/abseil-cpp-build/absl/synchronization/CMakeFiles/absl_graphcycles_internal.dir/internal/graphcycles.cc.o -MF CMakeFiles/absl_graphcycles_internal.dir/internal/graphcycles.cc.o.d -o CMakeFiles/absl_graphcycles_internal.dir/internal/graphcycles.cc.o -E /root/backscrub/build/abseil-cpp/absl/synchronization/internal/graphcycles.cc
# vi CMakeFiles/absl_graphcycles_internal.dir/internal/graphcycles.cc.o from which we note that the required header is not included. What happens on a working system (my Debian stable) when doing the same? % c++ --version
c++ (Debian 10.2.1-6) 10.2.1 20210110
% cmake --build build -v
[ 5%] Building CXX object _deps/abseil-cpp-build/absl/synchronization/CMakeFiles/absl_graphcycles_internal.dir/internal/graphcycles.cc.o
cd /home/phlash/code/backscrub/build/_deps/abseil-cpp-build/absl/synchronization && /usr/bin/c++ -DTFLITE_BUILD_WITH_XNNPACK_DELEGATE -D__CLANG_SUPPORT_DYN_ANNOTATION__ -I/home/phlash/code/backscrub/build/abseil-cpp -O3 -DNDEBUG -fPIC -Wall -Wextra -Wcast-qual -Wconversion-null -Wmissing-declarations -Woverlength-strings -Wpointer-arith -Wunused-local-typedefs -Wunused-result -Wvarargs -Wvla -Wwrite-strings -Wno-missing-field-initializers -Wno-sign-compare -std=c++14 -o CMakeFiles/absl_graphcycles_internal.dir/internal/graphcycles.cc.o -c /home/phlash/code/backscrub/build/abseil-cpp/absl/synchronization/internal/graphcycles.cc
% cd /home/phlash/code/backscrub/build/_deps/abseil-cpp-build/absl/synchronization
% /usr/bin/c++ -DTFLITE_BUILD_WITH_XNNPACK_DELEGATE -D__CLANG_SUPPORT_DYN_ANNOTATION__ -I/home/phlash/code/backscrub/build/abseil-cpp -O3 -DNDEBUG -fPIC -Wall -Wextra -Wcast-qual -Wconversion-null -Wmissing-declarations -Woverlength-strings -Wpointer-arith -Wunused-local-typedefs -Wunused-result -Wvarargs -Wvla -Wwrite-strings -Wno-missing-field-initializers -Wno-sign-compare -std=c++14 -o CMakeFiles/absl_graphcycles_internal.dir/internal/graphcycles.cc.o -E /home/phlash/code/backscrub/build/abseil-cpp/absl/synchronization/internal/graphcycles.cc
% vi CMakeFiles/absl_graphcycles_internal.dir/internal/graphcycles.cc.o where we find: # 37 "/home/phlash/code/backscrub/build/abseil-cpp/absl/synchronization/internal/graphcycles.cc" 2
# 1 "/usr/include/c++/10/algorithm" 1 3
...
# 62 "/usr/include/c++/10/algorithm" 2 3
# 1 "/usr/include/c++/10/stl_algo.h" 1 3
...
# 63 "/usr/include/c++/10/stl_algo.h" 2 3
# 1 "/usr/include/c++/10/bits/uniform_int_dist.h" 1 3
# 35 "/usr/include/c++/10/bits/uniform_int_dist.h" 3
# 1 "/usr/include/c++/10/limits" 1 3
... now let's compare to the failing build: # 37 "/root/backscrub/build/abseil-cpp/absl/synchronization/internal/graphcycles.cc" 2
# 1 "/usr/include/c++/10/algorithm" 1 3
...
# 62 "/usr/include/c++/10/algorithm" 2 3
# 1 "/usr/include/c++/10/stl_algo.h" 1 3
...
# 63 "/usr/include/c++/10/stl_algo.h" 2 3
# 1 "/usr/include/c++/10/bits/uniform_int_dist.h" 1 3
# 41 "/usr/include/c++/10/bits/uniform_int_dist.h" 3
...
# 58 "/usr/include/c++/10/bits/uniform_int_dist.h" 3 which indicates that # pacman -Syu clang
# clang++ --version
clang version 12.0.1
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
# cmake -B build -DCMAKE_CXX_COMPILER=clang++
# cmake --build build that would be a no:
I wonder if we can downgrade g++? # pacman -Ss gcc
...
community/gcc10 1:10.3.0-1
The GNU Compiler Collection - C and C++ frontends (Version 10) looks like we can, let's try it: # pacman -Syu gcc10
# cmake --build build -t clean
# cmake -B build -DCMAKE_C_COMPILER=gcc-10 -DCMAKE_CXX_COMPILER=g++-10
# cmake --build build
...
[100%] Built target backscrub Fixed! 😄 It looks like Tensorflow and it's dependencies do not support GCC11+ nor clang 12+ at version 2.5.0 that we are using, possibly (untested) later versions |
Addendum - there are notes in #93 about GCC-11 builds, which we all should have noticed 😄 |
For closure - this is fixed by upgrading Tensorflow to 2.6.0 (or above) - which has now been merged - please updated your build 😄 |
I have a few problems that prevent me from building your project:
Can you help me? I'm running Manjaro Linux (=Arch derivate)
The text was updated successfully, but these errors were encountered: