Skip to content
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 fail @step 'libtbb' #102

Open
subwaystation opened this issue Aug 3, 2017 · 2 comments
Open

build fail @step 'libtbb' #102

subwaystation opened this issue Aug 3, 2017 · 2 comments

Comments

@subwaystation
Copy link

subwaystation commented Aug 3, 2017

Hi@all,
I tried to build sailfish on ArchLinux, but I get stuck here:

[ 40%] Performing build step for 'libtbb' cd /home/heumos/git/sailfish/external/tbb43_20140724oss && make "CXXFLAGS= -UDO_ITT_NOTIFY" lambdas=1 compiler=gcc cfg=release tbb_build_prefix=LIBS make[3]: Entering directory '/home/heumos/git/sailfish/external/tbb43_20140724oss' Created ./build/LIBS_release and ..._debug directories make -C "./build/LIBS_debug" -r -f ../../build/Makefile.tbb cfg=debug make[4]: Entering directory '/home/heumos/git/sailfish/external/tbb43_20140724oss/build/LIBS_debug' ../../build/Makefile.tbb:31: CONFIG: cfg=debug arch=intel64 compiler=gcc target=linux runtime=cc7.1.1_libc2.25_kernel4.12.3 g++ -o pipeline.o -c -MMD -DTBB_USE_DEBUG -DDO_ITT_NOTIFY -g -O0 -DUSE_PTHREAD -m64 -fPIC -D__TBB_BUILD=1 -Wall -Wno-parentheses -Wno-non-virtual-dtor -UDO_ITT_NOTIFY -std=c++0x -D_TBB_CPP0X -I../../src -I../../src/rml/include -I../../include ../../src/tbb/pipeline.cpp In file included from ../../src/tbb/pipeline.cpp:21:0: ../../include/tbb/pipeline.h:328:74: error: ‘has_trivial_copy_constructor’ is not a member of ‘std’ template<typename T> struct tbb_trivially_copyable { enum { value = std::has_trivial_copy_constructor<T>::value }; }; ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../include/tbb/pipeline.h:328:74: note: suggested alternative: ‘is_trivially_copy_constructible’ template<typename T> struct tbb_trivially_copyable { enum { value = std::has_trivial_copy_constructor<T>::value }; }; ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ is_trivially_copy_constructible ../../include/tbb/pipeline.h:328:104: error: expected primary-expression before ‘>’ token template<typename T> struct tbb_trivially_copyable { enum { value = std::has_trivial_copy_constructor<T>::value }; }; ^ ../../include/tbb/pipeline.h:328:107: error: ‘::value’ has not been declared template<typename T> struct tbb_trivially_copyable { enum { value = std::has_trivial_copy_constructor<T>::value }; }; ^~~~~ make[4]: *** [../../build/common_rules.inc:77: pipeline.o] Error 1 make[4]: Leaving directory '/home/heumos/git/sailfish/external/tbb43_20140724oss/build/LIBS_debug' make[3]: *** [Makefile:32: tbb] Error 2 make[3]: Leaving directory '/home/heumos/git/sailfish/external/tbb43_20140724oss' make[2]: *** [CMakeFiles/libtbb.dir/build.make:115: libtbb-prefix/src/libtbb-stamp/libtbb-build] Error 2 make[2]: Leaving directory '/home/heumos/git/sailfish/build' make[1]: *** [CMakeFiles/Makefile2:219: CMakeFiles/libtbb.dir/all] Error 2 make[1]: Leaving directory '/home/heumos/git/sailfish/build' make: *** [Makefile:166: all] Error 2
I used the following building commands to build sailfish:
cmake -DFETCH_BOOST=TRUE ../
make

Any help would be appreciated!
All the best,
Simon

@studident
Copy link

Is there a solution to this problem yet?

I ran in to the same errors and couldn't find a way to resolve them...

@gmarcais
Copy link

I built sailfish on Arch by using the tbb library distributed with the system. Install the intel-tbb package with pacman, reconfigure and you should be good to go.

Well, almost good, I had to apply the following patch to compile properly, to fix a totally different error (a conflict with the macro CHAR_WIDTH):

diff --git a/include/spdlog/details/format.cc b/include/spdlog/details/format.cc
index dde4aa5..ca1c921 100644
--- a/include/spdlog/details/format.cc
+++ b/include/spdlog/details/format.cc
@@ -480,23 +480,23 @@ public:
         typedef typename BasicWriter<Char>::CharPtr CharPtr;
         Char fill = internal::CharTraits<Char>::cast(spec_.fill());
         CharPtr out = CharPtr();
-        const unsigned CHAR_WIDTH = 1;
-        if (spec_.width_ > CHAR_WIDTH) {
+        const unsigned _CHAR_WIDTH = 1;
+        if (spec_.width_ > _CHAR_WIDTH) {
             out = writer_.grow_buffer(spec_.width_);
             if (spec_.align_ == ALIGN_RIGHT) {
-                std::fill_n(out, spec_.width_ - CHAR_WIDTH, fill);
-                out += spec_.width_ - CHAR_WIDTH;
+                std::fill_n(out, spec_.width_ - _CHAR_WIDTH, fill);
+                out += spec_.width_ - _CHAR_WIDTH;
             }
             else if (spec_.align_ == ALIGN_CENTER) {
                 out = writer_.fill_padding(out, spec_.width_,
-                                           internal::check(CHAR_WIDTH), fill);
+                                           internal::check(_CHAR_WIDTH), fill);
             }
             else {
-                std::fill_n(out + CHAR_WIDTH, spec_.width_ - CHAR_WIDTH, fill);
+                std::fill_n(out + _CHAR_WIDTH, spec_.width_ - _CHAR_WIDTH, fill);
             }
         }
         else {
-            out = writer_.grow_buffer(CHAR_WIDTH);
+            out = writer_.grow_buffer(_CHAR_WIDTH);
         }
         *out = internal::CharTraits<Char>::cast(value);
     }

Hope this helps.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants