ktprime / emhash

Fast and memory efficient c++ flat hash map/set
MIT License
471 stars 35 forks source link

Compiling on an older linux intel machine #6

Closed 1ykos closed 4 years ago

1ykos commented 4 years ago

I tried compiling the project on a Intel i5-3320M running Linux , first some includes were missing, then pthreads was not linked, then the default build seems to be the DEBUG, which is also missing -march=native, I fixed those minor things, CMakeLists.txt but now I'm stuck with this error message, do you know more?

[ 16%] Linking CXX executable hbench
[ 33%] Built target hbench
[ 50%] Linking CXX executable mbench
[ 66%] Built target mbench
Scanning dependencies of target ebench
[ 83%] Building CXX object CMakeFiles/ebench.dir/bench/ebench.cpp.o
In file included from /home/usr/src/emhash/thirdparty/phmap/phmap_config.h:637,
                 from /home/usr/src/emhash/thirdparty/phmap/phmap_bits.h:51,
                 from /home/usr/src/emhash/thirdparty/phmap/phmap_utils.h:34,
                 from /home/usr/src/emhash/thirdparty/phmap/phmap.h:68,
                 from /home/usr/src/emhash/bench/ebench.cpp:133:
/usr/lib64/gcc/x86_64-suse-linux/10/include/tmmintrin.h: In member function ‘void phmap::priv::GroupSse2Impl::ConvertSpecialToEmptyAndFullToDeleted(phmap::priv::ctrl_t*) const’:
/usr/lib64/gcc/x86_64-suse-linux/10/include/tmmintrin.h:136:1: error: inlining failed in call to ‘always_inline’ ‘__m128i _mm_shuffle_epi8(__m128i, __m128i)’: target specific option mismatch
  136 | _mm_shuffle_epi8 (__m128i __X, __m128i __Y)
      | ^~~~~~~~~~~~~~~~
In file included from /home/usr/src/emhash/bench/ebench.cpp:133:
/home/usr/src/emhash/thirdparty/phmap/phmap.h:377:32: note: called from here
  377 |         auto res = _mm_or_si128(_mm_shuffle_epi8(x126, ctrl), msbs);
      |                    ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/usr/src/emhash/thirdparty/phmap/phmap_config.h:637,
                 from /home/usr/src/emhash/thirdparty/phmap/phmap_bits.h:51,
                 from /home/usr/src/emhash/thirdparty/phmap/phmap_utils.h:34,
                 from /home/usr/src/emhash/thirdparty/phmap/phmap.h:68,
                 from /home/usr/src/emhash/bench/ebench.cpp:133:
/usr/lib64/gcc/x86_64-suse-linux/10/include/tmmintrin.h:136:1: error: inlining failed in call to ‘always_inline’ ‘__m128i _mm_shuffle_epi8(__m128i, __m128i)’: target specific option mismatch
  136 | _mm_shuffle_epi8 (__m128i __X, __m128i __Y)
      | ^~~~~~~~~~~~~~~~
In file included from /home/usr/src/emhash/bench/ebench.cpp:133:
/home/usr/src/emhash/thirdparty/phmap/phmap.h:377:32: note: called from here
  377 |         auto res = _mm_or_si128(_mm_shuffle_epi8(x126, ctrl), msbs);
      |                    ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [CMakeFiles/ebench.dir/build.make:82: CMakeFiles/ebench.dir/bench/ebench.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:153: CMakeFiles/ebench.dir/all] Error 2
make: *** [Makefile:103: all] Error 2
ktprime commented 4 years ago

thanks, I have fix the issuse. you can add patchmap to my bench.