WebAssembly/wasp

LLVM version dependency in parallel-hashmap?

Closed this issue · 3 comments

I'm trying to get wasp to build, so I can report my numbers for WebAssembly/design#1277. So far, I've done the following:

Environment

OS: macOS Mojave 10.14.6

Steps

  1. git clone git@github.com:binji/wasp.git binji/wasp
  2. cd binji/wasp
  3. git submodule update --init --recursive
  4. make

Error

In file included from /Users/luke.imhoff/github/binji/wasp/third_party/parallel-hashmap/parallel_hashmap/phmap.h:49:
/Users/luke.imhoff/github/binji/wasp/third_party/parallel-hashmap/parallel_hashmap/phmap_utils.h:139:16: error: implicit instantiation of undefined template
      'std::__1::hash

Full Log

mkdir -p out/clang/Debug/
cd out/clang/Debug/ && cmake -G "Unix Makefiles" /Users/luke.imhoff/github/binji/wasp/ -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Debug 
-- The C compiler identification is Clang 7.0.1
-- The CXX compiler identification is Clang 7.0.1
-- Check for working C compiler: /usr/local/opt/llvm/bin/clang
-- Check for working C compiler: /usr/local/opt/llvm/bin/clang -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/local/opt/llvm/bin/clang++
-- Check for working CXX compiler: /usr/local/opt/llvm/bin/clang++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found PythonInterp: /usr/bin/python (found version "2.7.10") 
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - found
-- Found Threads: TRUE  
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/luke.imhoff/github/binji/wasp/out/clang/Debug
/Applications/Xcode.app/Contents/Developer/usr/bin/make --no-print-directory -C out/clang/Debug/ all
Scanning dependencies of target wasplib
[  1%] Building CXX object CMakeFiles/wasplib.dir/src/base/features.cc.o
[  2%] Building CXX object CMakeFiles/wasplib.dir/src/base/file.cc.o
[  3%] Building CXX object CMakeFiles/wasplib.dir/src/base/span.cc.o
[  4%] Building CXX object CMakeFiles/wasplib.dir/src/base/str_to_u32.cc.o
[  5%] Building CXX object CMakeFiles/wasplib.dir/src/base/v128.cc.o
[  6%] Building CXX object CMakeFiles/wasplib.dir/src/binary/br_on_exn_immediate.cc.o
[  7%] Building CXX object CMakeFiles/wasplib.dir/src/binary/br_table_immediate.cc.o
[  8%] Building CXX object CMakeFiles/wasplib.dir/src/binary/call_indirect_immediate.cc.o
[  9%] Building CXX object CMakeFiles/wasplib.dir/src/binary/code.cc.o
[ 10%] Building CXX object CMakeFiles/wasplib.dir/src/binary/comdat.cc.o

[ 11%] Building CXX object CMakeFiles/wasplib.dir/src/binary/comdat_symbol.cc.o
In file included from /Users/luke.imhoff/github/binji/wasp/src/binary/comdat_symbol.cc:20:
In file included from /Users/luke.imhoff/github/binji/wasp/src/base/std_hash_macros.h:20:
In file included from /Users/luke.imhoff/github/binji/wasp/include/wasp/base/hash.h:22:
In file included from /Users/luke.imhoff/github/binji/wasp/third_party/parallel-hashmap/parallel_hashmap/phmap.h:49:
/Users/luke.imhoff/github/binji/wasp/third_party/parallel-hashmap/parallel_hashmap/phmap_utils.h:139:16: error: implicit instantiation of undefined template
      'std::__1::hash<wasp::binary::ComdatSymbolKind>'
        return std::hash<T>()(val);
               ^
/Users/luke.imhoff/github/binji/wasp/third_party/parallel-hashmap/parallel_hashmap/phmap_utils.h:144:16: note: in instantiation of function template specialization
      'phmap::Hash<wasp::binary::ComdatSymbolKind>::_hash<wasp::binary::ComdatSymbolKind, 0>' requested here
        return _hash<T>(val);
               ^
/Users/luke.imhoff/github/binji/wasp/third_party/parallel-hashmap/parallel_hashmap/phmap_utils.h:302:48: note: in instantiation of member function
      'phmap::Hash<wasp::binary::ComdatSymbolKind>::operator()' requested here
                                         seed, phmap::Hash<T>()(v)),  vs...);
                                               ^
/Users/luke.imhoff/github/binji/wasp/src/binary/comdat_symbol.cc:30:1: note: in instantiation of function template specialization 'phmap::HashStateBase<unsigned
      long>::combine<wasp::binary::ComdatSymbolKind, unsigned int>' requested here
WASP_STD_HASH_2(::wasp::binary::ComdatSymbol, kind, index)
^
/Users/luke.imhoff/github/binji/wasp/src/base/std_hash_macros.h:37:31: note: expanded from macro 'WASP_STD_HASH_2'
    return ::wasp::HashState::combine(0, v.f1, v.f2);  \
                              ^
/usr/local/Cellar/llvm/7.0.1/include/c++/v1/type_traits:412:50: note: template is declared here
template <class _Tp> struct _LIBCPP_TEMPLATE_VIS hash;
                                                 ^
1 error generated.
make[3]: *** [CMakeFiles/wasplib.dir/src/binary/comdat_symbol.cc.o] Error 1
make[2]: *** [CMakeFiles/wasplib.dir/all] Error 2
make[1]: *** [all] Error 2
make: *** [clang-debug] Error 2

Any tips for how to get parallel-hashmap to compile?

binji commented

I just pushed 44a9e06, maybe that will fix the issue?

How I updated:

  1. git pull

    Got your change:

     remote: Enumerating objects: 5, done.
     remote: Counting objects: 100% (5/5), done.
     remote: Compressing objects: 100% (5/5), done.
     remote: Total 5 (delta 0), reused 2 (delta 0), pack-reused 0
     Unpacking objects: 100% (5/5), done.
     From github.com:binji/wasp
        f0fc078..44a9e06  master     -> origin/master
    
  2. make clean

  3. git submodule update --init --recursive

  4. make

Same error

mkdir -p out/clang/Debug/
cd out/clang/Debug/ && cmake -G "Unix Makefiles" /Users/luke.imhoff/github/binji/wasp/ -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Debug 
-- The C compiler identification is Clang 7.0.1
-- The CXX compiler identification is Clang 7.0.1
-- Check for working C compiler: /usr/local/opt/llvm/bin/clang
-- Check for working C compiler: /usr/local/opt/llvm/bin/clang -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/local/opt/llvm/bin/clang++
-- Check for working CXX compiler: /usr/local/opt/llvm/bin/clang++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found PythonInterp: /usr/bin/python (found version "2.7.10") 
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - found
-- Found Threads: TRUE  
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/luke.imhoff/github/binji/wasp/out/clang/Debug
/Applications/Xcode.app/Contents/Developer/usr/bin/make --no-print-directory -C out/clang/Debug/ all
Scanning dependencies of target wasplib
[  1%] Building CXX object CMakeFiles/wasplib.dir/src/base/features.cc.o
[  2%] Building CXX object CMakeFiles/wasplib.dir/src/base/file.cc.o
[  3%] Building CXX object CMakeFiles/wasplib.dir/src/base/span.cc.o
[  4%] Building CXX object CMakeFiles/wasplib.dir/src/base/str_to_u32.cc.o
[  5%] Building CXX object CMakeFiles/wasplib.dir/src/base/v128.cc.o
[  6%] Building CXX object CMakeFiles/wasplib.dir/src/binary/br_on_exn_immediate.cc.o
[  7%] Building CXX object CMakeFiles/wasplib.dir/src/binary/br_table_immediate.cc.o
[  8%] Building CXX object CMakeFiles/wasplib.dir/src/binary/call_indirect_immediate.cc.o
[  9%] Building CXX object CMakeFiles/wasplib.dir/src/binary/code.cc.o
[ 10%] Building CXX object CMakeFiles/wasplib.dir/src/binary/comdat.cc.o
[ 11%] Building CXX object CMakeFiles/wasplib.dir/src/binary/comdat_symbol.cc.o
In file included from /Users/luke.imhoff/github/binji/wasp/src/binary/comdat_symbol.cc:20:
In file included from /Users/luke.imhoff/github/binji/wasp/src/base/std_hash_macros.h:22:
In file included from /Users/luke.imhoff/github/binji/wasp/include/wasp/base/hash.h:22:
In file included from /Users/luke.imhoff/github/binji/wasp/third_party/parallel-hashmap/parallel_hashmap/phmap.h:49:
/Users/luke.imhoff/github/binji/wasp/third_party/parallel-hashmap/parallel_hashmap/phmap_utils.h:139:16: error: implicit instantiation of undefined template
      'std::__1::hash<wasp::binary::ComdatSymbolKind>'
        return std::hash<T>()(val);
               ^
/Users/luke.imhoff/github/binji/wasp/third_party/parallel-hashmap/parallel_hashmap/phmap_utils.h:144:16: note: in instantiation of function template specialization
      'phmap::Hash<wasp::binary::ComdatSymbolKind>::_hash<wasp::binary::ComdatSymbolKind, 0>' requested here
        return _hash<T>(val);
               ^
/Users/luke.imhoff/github/binji/wasp/third_party/parallel-hashmap/parallel_hashmap/phmap_utils.h:302:48: note: in instantiation of member function
      'phmap::Hash<wasp::binary::ComdatSymbolKind>::operator()' requested here
                                         seed, phmap::Hash<T>()(v)),  vs...);
                                               ^
/Users/luke.imhoff/github/binji/wasp/src/binary/comdat_symbol.cc:30:1: note: in instantiation of function template specialization 'phmap::HashStateBase<unsigned
      long>::combine<wasp::binary::ComdatSymbolKind, unsigned int>' requested here
WASP_STD_HASH_2(::wasp::binary::ComdatSymbol, kind, index)
^
/Users/luke.imhoff/github/binji/wasp/src/base/std_hash_macros.h:39:31: note: expanded from macro 'WASP_STD_HASH_2'
    return ::wasp::HashState::combine(0, v.f1, v.f2);  \
                              ^
/usr/local/Cellar/llvm/7.0.1/include/c++/v1/type_traits:412:50: note: template is declared here
template <class _Tp> struct _LIBCPP_TEMPLATE_VIS hash;
                                                 ^
1 error generated.
make[3]: *** [CMakeFiles/wasplib.dir/src/binary/comdat_symbol.cc.o] Error 1
make[2]: *** [CMakeFiles/wasplib.dir/all] Error 2
make[1]: *** [all] Error 2
make: *** [clang-debug] Error 2
binji commented

The parallel-hashmap library has been removed in favor of abseil. This may have the same issue; if so, please re-open.