runtimeverification / evm-semantics

K Semantics of the Ethereum Virtual Machine (EVM)
BSD 3-Clause "New" or "Revised" License
508 stars 143 forks source link

Workflow for MacOS #1022

Open rybla opened 3 years ago

rybla commented 3 years ago

Log of troubleshooting for setting up evm-semantics on MacOS

rybla commented 3 years ago

The following is the process I got working for building evm-semantics from a fresh clone on MacOS.

Clone repository and subrepositories:

git clone git@github.com:kframework/evm-semantics.git
cd evm-semantics
git submodule update --init --recursive

Build dependencies:

mkdir -p .build/usr/bin
mkdir -p .build/usr/lib/kevm
make deps RELEASE=true -j8

Build libsecp256k1:

make libsecp256k1

Build plugin dependency: (I'm not sure why, but if I try to run make build RELEASE=true -j1 before this, then I get some C errors; I think it tries to use a different version of cmake than I have on path, somehow)

cd deps/plugin/deps/libff/build
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../../../../../.build/local -DWITH_PROCPS=OFF
make -s -j1
make install

Build evm-semantics:

cd ../../../../../
make build RELEASE=true -j1

Still gives me this warning though:

ld: warning: could not create compact unwind for _step: r15 is saved too far from return address

Add K to path:

export PATH="../evm-semantics/deps/k/k-distribution/bin:$PATH"

Add KEVM to path:

export PATH="/Users/henry/Documents/RV/evm-semantics/.build/usr/bin:$PATH"
ehildenb commented 3 years ago

This is great, thank you!

Singtah commented 3 years ago

cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../../../../../.build/local -DWITH_PROCPS=OFF did not work for me (cannot find OPENSSL_ROOT_DIR) had to use cmake .. -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -DOPENSSL_LIBRARIES=/usr/local/opt/openssl/lib

hujw77 commented 3 years ago

Branch

master

OS

macos bigSur 11.6

Build failed info

~/.d/k/evm-semantics (master ✔) make build RELEASE=true -j8
cd .build/usr/lib/kevm/node/build/ && cmake /Users/echo/.dapp/k/evm-semantics/cmake/node -DCMAKE_INSTALL_PREFIX=/usr/lib/kevm/node && /Library/Developer/CommandLineTools/usr/bin/make
kevm kompile --backend llvm                 \
            driver.md                     \
            --directory .build/usr/lib/kevm/llvm   \
            --main-module ETHEREUM-SIMULATION     \
            --syntax-module ETHEREUM-SIMULATION \
            --debug -I /usr/lib/kevm/include/kframework -I /usr/lib/kevm/blockchain-k-plugin/include/kframework -O2
+ case "$run_command-$backend" in
+ run_kompile --directory .build/usr/lib/kevm/llvm --main-module ETHEREUM-SIMULATION --syntax-module ETHEREUM-SIMULATION --debug -I /usr/lib/kevm/include/kframework -I /usr/lib/kevm/blockchain-k-plugin/include/kframework -O2
+ local kompile_opts openssl_root
+ kompile_opts=("${run_file}")
+ kompile_opts+=(-I "${INSTALL_INCLUDE}/kframework" -I "${plugin_include}/kframework")
+ kompile_opts+=(--hook-namespaces "JSON KRYPTO BLOCKCHAIN")
+ kompile_opts+=(--emit-json)
+ [[ ! -z '' ]]
+ case "${backend}" in
+ kompile_opts+=(--md-selector 'k & ! nobytes & ! node')
+ kompile_opts+=(--backend llvm)
+ kompile_opts+=(-ccopt -L${libff_dir}/lib -ccopt -I${libff_dir}/include)
+ kompile_opts+=(-ccopt ${plugin_include}/c/plugin_util.cpp)
+ kompile_opts+=(-ccopt ${plugin_include}/c/crypto.cpp)
+ kompile_opts+=(-ccopt ${plugin_include}/c/blake2.cpp)
+ kompile_opts+=(-ccopt -g -ccopt -std=c++14)
+ kompile_opts+=(-ccopt -lff -ccopt -lcryptopp -ccopt -lsecp256k1 -ccopt -lssl -ccopt -lcrypto)
++ uname -s
+ [[ Darwin == \L\i\n\u\x ]]
++ uname -s
+ [[ Darwin == \D\a\r\w\i\n ]]
++ brew --prefix openssl
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/node/build
Consolidate compiler generated dependencies of target kevm-vm
[  9%] Building CXX object CMakeFiles/kevm-vm.dir/Users/echo/.dapp/k/evm-semantics/node/vm/init.cpp.o
[ 27%] Building CXX object CMakeFiles/kevm-vm.dir/Users/echo/.dapp/k/evm-semantics/node/vm/main.cpp.o
[ 27%] Building CXX object CMakeFiles/kevm-vm.dir/Users/echo/.dapp/k/evm-semantics/node/vm/vm.cpp.o
[ 45%] Building CXX object CMakeFiles/kevm-vm.dir/Users/echo/.dapp/k/evm-semantics/node/vm/kevm/semantics.cpp.o
[ 45%] Building CXX object CMakeFiles/kevm-vm.dir/Users/echo/.dapp/k/evm-semantics/node/plugin-c/blockchain.cpp.o
[ 54%] Building CXX object CMakeFiles/kevm-vm.dir/Users/echo/.dapp/k/evm-semantics/node/plugin-c/world.cpp.o
[ 63%] Building CXX object CMakeFiles/kevm-vm.dir/Users/echo/.dapp/k/evm-semantics/deps/plugin/plugin-c/crypto.cpp.o
/Users/echo/.dapp/k/evm-semantics/deps/plugin/plugin-c/crypto.cpp:1:10: fatal error: 'cryptopp/keccak.h' file not found
#include <cryptopp/keccak.h>
         ^~~~~~~~~~~~~~~~~~~
In file included from /Users/echo/.dapp/k/evm-semantics/node/vm/init.cpp:8:
In file included from /Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/kframework/bin/../lib/../include/kllvm/runtime/header.h:17:
In file included from /Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/kframework/bin/../lib/../include/kllvm/immer/flex_vector.hpp:11:
In file included from /Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/kframework/bin/../lib/../include/kllvm/immer/detail/rbts/rrbtree.hpp:11:
/Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/kframework/bin/../lib/../include/kllvm/immer/config.hpp:90:7: error: 'auto' type specifier is a C++11 extension [-Werror,-Wc++11-extensions]
const auto default_bits           = 5;
      ^
/Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/kframework/bin/../lib/../include/kllvm/immer/config.hpp:91:7: error: 'auto' type specifier is a C++11 extension [-Werror,-Wc++11-extensions]
const auto default_free_list_size = 1 << 10;
      ^
In file included from /Users/echo/.dapp/k/evm-semantics/node/vm/init.cpp:8:
In file included from /Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/kframework/bin/../lib/../include/kllvm/runtime/header.h:17:
In file included from /Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/kframework/bin/../lib/../include/kllvm/immer/flex_vector.hpp:11:
In file included from /Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/kframework/bin/../lib/../include/kllvm/immer/detail/rbts/rrbtree.hpp:12:
In file included from /Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/kframework/bin/../lib/../include/kllvm/immer/detail/rbts/node.hpp:11:
/Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/kframework/bin/../lib/../include/kllvm/immer/detail/combine_standard_layout.hpp:42:19: error: variadic templates are a C++11 extension [-Werror,-Wc++11-extensions]
template <typename... Ts>
                  ^
/Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/kframework/bin/../lib/../include/kllvm/immer/detail/combine_standard_layout.hpp:45:19: error: variadic templates are a C++11 extension [-Werror,-Wc++11-extensions]
template <typename... Ts>
                  ^
/Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/kframework/bin/../lib/../include/kllvm/immer/detail/combine_standard_layout.hpp:46:35: error: alias declarations are a C++11 extension [-Werror,-Wc++11-extensions]
using combine_standard_layout_t = typename combine_standard_layout<Ts...>::type;
                                  ^
/Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/kframework/bin/../lib/../include/kllvm/immer/detail/combine_standard_layout.hpp:70:25: error: 'decltype(auto)' type specifier is a C++14 extension [-Werror,-Wc++14-extensions]
        friend decltype(auto) get(type& x)
                        ^
/Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/kframework/bin/../lib/../include/kllvm/immer/detail/combine_standard_layout.hpp:70:16: error: 'decltype(auto)' not allowed in function return type
        friend decltype(auto) get(type& x)
               ^~~~~~~~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/__config:893:24: note: expanded from macro 'decltype'
# define decltype(...) __decltype(__VA_ARGS__)
                       ^~~~~~~~~~
In file included from /Users/echo/.dapp/k/evm-semantics/node/vm/init.cpp:8:
In file included from /Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/kframework/bin/../lib/../include/kllvm/runtime/header.h:17:
In file included from /Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/kframework/bin/../lib/../include/kllvm/immer/flex_vector.hpp:11:
In file included from /Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/kframework/bin/../lib/../include/kllvm/immer/detail/rbts/rrbtree.hpp:12:
In file included from /Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/kframework/bin/../lib/../include/kllvm/immer/detail/rbts/node.hpp:11:
/Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/kframework/bin/../lib/../include/kllvm/immer/detail/combine_standard_layout.hpp:75:25: error: 'decltype(auto)' type specifier is a C++14 extension [-Werror,-Wc++14-extensions]
        friend decltype(auto) get(const type& x)
                        ^
/Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/kframework/bin/../lib/../include/kllvm/immer/detail/combine_standard_layout.hpp:75:16: error: 'decltype(auto)' not allowed in function return type
        friend decltype(auto) get(const type& x)
               ^~~~~~~~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/__config:893:24: note: expanded from macro 'decltype'
# define decltype(...) __decltype(__VA_ARGS__)
                       ^~~~~~~~~~
In file included from /Users/echo/.dapp/k/evm-semantics/node/vm/init.cpp:8:
In file included from /Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/kframework/bin/../lib/../include/kllvm/runtime/header.h:17:
In file included from /Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/kframework/bin/../lib/../include/kllvm/immer/flex_vector.hpp:11:
In file included from /Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/kframework/bin/../lib/../include/kllvm/immer/detail/rbts/rrbtree.hpp:12:
In file included from /Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/kframework/bin/../lib/../include/kllvm/immer/detail/rbts/node.hpp:11:
/Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/kframework/bin/../lib/../include/kllvm/immer/detail/combine_standard_layout.hpp:72:36: error: expected '(' for function-style cast or type construction
            return x.get_(type_t<U>{});
                          ~~~~~~~~~^
/Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/kframework/bin/../lib/../include/kllvm/immer/detail/combine_standard_layout.hpp:77:36: error: expected '(' for function-style cast or type construction
            return x.get_(type_t<U>{});
                          ~~~~~~~~~^
/Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/kframework/bin/../lib/../include/kllvm/immer/detail/combine_standard_layout.hpp:91:25: error: 'decltype(auto)' type specifier is a C++14 extension [-Werror,-Wc++14-extensions]
        friend decltype(auto) get(type& x)
                        ^
/Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/kframework/bin/../lib/../include/kllvm/immer/detail/combine_standard_layout.hpp:91:16: error: 'decltype(auto)' not allowed in function return type
        friend decltype(auto) get(type& x)
               ^~~~~~~~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/__config:893:24: note: expanded from macro 'decltype'
# define decltype(...) __decltype(__VA_ARGS__)
                       ^~~~~~~~~~
In file included from /Users/echo/.dapp/k/evm-semantics/node/vm/init.cpp:8:
In file included from /Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/kframework/bin/../lib/../include/kllvm/runtime/header.h:17:
In file included from /Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/kframework/bin/../lib/../include/kllvm/immer/flex_vector.hpp:11:
In file included from /Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/kframework/bin/../lib/../include/kllvm/immer/detail/rbts/rrbtree.hpp:12:
In file included from /Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/kframework/bin/../lib/../include/kllvm/immer/detail/rbts/node.hpp:11:
/Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/kframework/bin/../lib/../include/kllvm/immer/detail/combine_standard_layout.hpp:96:25: error: 'decltype(auto)' type specifier is a C++14 extension [-Werror,-Wc++14-extensions]
        friend decltype(auto) get(const type& x)
                        ^
/Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/kframework/bin/../lib/../include/kllvm/immer/detail/combine_standard_layout.hpp:96:16: error: 'decltype(auto)' not allowed in function return type
        friend decltype(auto) get(const type& x)
               ^~~~~~~~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/__config:893:24: note: expanded from macro 'decltype'
# define decltype(...) __decltype(__VA_ARGS__)
                       ^~~~~~~~~~
In file included from /Users/echo/.dapp/k/evm-semantics/node/vm/init.cpp:8:
In file included from /Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/kframework/bin/../lib/../include/kllvm/runtime/header.h:17:
In file included from /Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/kframework/bin/../lib/../include/kllvm/immer/flex_vector.hpp:11:
In file included from /Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/kframework/bin/../lib/../include/kllvm/immer/detail/rbts/rrbtree.hpp:12:
In file included from /Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/kframework/bin/../lib/../include/kllvm/immer/detail/rbts/node.hpp:11:
/Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/kframework/bin/../lib/../include/kllvm/immer/detail/combine_standard_layout.hpp:93:36: error: expected '(' for function-style cast or type construction
            return x.get_(type_t<U>{});
                          ~~~~~~~~~^
/Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/kframework/bin/../lib/../include/kllvm/immer/detail/combine_standard_layout.hpp:98:36: error: expected '(' for function-style cast or type construction
            return x.get_(type_t<U>{});
                          ~~~~~~~~~^
/Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/kframework/bin/../lib/../include/kllvm/immer/detail/combine_standard_layout.hpp:116:25: error: 'decltype(auto)' type specifier is a C++14 extension [-Werror,-Wc++14-extensions]
        friend decltype(auto) get(type& x)
                        ^
/Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/kframework/bin/../lib/../include/kllvm/immer/detail/combine_standard_layout.hpp:116:16: error: 'decltype(auto)' not allowed in function return type
        friend decltype(auto) get(type& x)
               ^~~~~~~~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/__config:893:24: note: expanded from macro 'decltype'
# define decltype(...) __decltype(__VA_ARGS__)
                       ^~~~~~~~~~
fatal error: too many errors emitted, stopping now [-ferror-limit=]
In file included from In file included from /Users/echo/.dapp/k/evm-semantics/node/vm/kevm/semantics.cpp/Users/echo/.dapp/k/evm-semantics/node/vm/vm.cpp::12:
:
In file included from In file included from /Users/echo/.dapp/k/evm-semantics/.build/local/lib/proto/proto/msg.pb.h/Users/echo/.dapp/k/evm-semantics/.build/local/lib/proto/proto/msg.pb.h::2323:
:
In file included from In file included from /usr/local/include/google/protobuf/io/coded_stream.h/usr/local/include/google/protobuf/io/coded_stream.h::149149:
:
In file included from In file included from /usr/local/include/google/protobuf/stubs/common.h/usr/local/include/google/protobuf/stubs/common.h::4848:
:
/usr/local/include/google/protobuf/stubs/port.h/usr/local/include/google/protobuf/stubs/port.h::119119::22::  errorerror: : "Protobuf requires at least C++11.""Protobuf requires at least C++11."

#error "Protobuf requires at least C++11."#error "Protobuf requires at least C++11."

 ^ ^

/usr/local/include/google/protobuf/stubs/port.h/usr/local/include/google/protobuf/stubs/port.h::141141::3939::  errorerror: : expected '(' for function-style cast or type constructionexpected '(' for function-style cast or type construction

static const int64 kint64max = int64_t{0x7FFFFFFFFFFFFFFF};static const int64 kint64max = int64_t{0x7FFFFFFFFFFFFFFF};

                               ~~~~~~~^                               ~~~~~~~^

/usr/local/include/google/protobuf/stubs/port.h:144:42: error: expected '(' for function-style cast or type construction
/usr/local/include/google/protobuf/stubs/port.h:144:42:static const uint64 kuint64max = uint64_t{0xFFFFFFFFFFFFFFFFu};
                                 ~~~~~~~~^error
: expected '(' for function-style cast or type construction
static const uint64 kuint64max = uint64_t{0xFFFFFFFFFFFFFFFFu};
                                 ~~~~~~~~^
In file included from /Users/echo/.dapp/k/evm-semantics/node/vm/main.cpp:5:
In file included from /Users/echo/.dapp/k/evm-semantics/.build/local/lib/proto/proto/msg.pb.h:23:
In file included from /usr/local/include/google/protobuf/io/coded_stream.h:149:
In file included from /usr/local/include/google/protobuf/stubs/common.h:48:
/usr/local/include/google/protobuf/stubs/port.h:119:2: error: "Protobuf requires at least C++11."
#error "Protobuf requires at least C++11."
 ^
/usr/local/include/google/protobuf/stubs/port.h:141:39: error: expected '(' for function-style cast or type construction
static const int64 kint64max = int64_t{0x7FFFFFFFFFFFFFFF};
                               ~~~~~~~^
/usr/local/include/google/protobuf/stubs/port.h:144:42: error: expected '(' for function-style cast or type construction
static const uint64 kuint64max = uint64_t{0xFFFFFFFFFFFFFFFFu};
                                 ~~~~~~~~^
In file included from /Users/echo/.dapp/k/evm-semantics/node/plugin-c/world.cpp:5:
In file included from /Users/echo/.dapp/k/evm-semantics/.build/local/lib/proto/proto/msg.pb.h:23:
In file included from /usr/local/include/google/protobuf/io/coded_stream.h:149:
In file included from /usr/local/include/google/protobuf/stubs/common.h:48:
/usr/local/include/google/protobuf/stubs/port.h:119:2: error: "Protobuf requires at least C++11."
#error "Protobuf requires at least C++11."
 ^
/usr/local/include/google/protobuf/stubs/port.h:141:39: error: expected '(' for function-style cast or type construction
static const int64 kint64max = int64_t{0x7FFFFFFFFFFFFFFF};
                               ~~~~~~~^
/usr/local/include/google/protobuf/stubs/port.h:144:42: error: expected '(' for function-style cast or type construction
static const uint64 kuint64max = uint64_t{0xFFFFFFFFFFFFFFFFu};
                                 ~~~~~~~~^
In file included from /Users/echo/.dapp/k/evm-semantics/node/plugin-c/blockchain.cpp:3:
In file included from /Users/echo/.dapp/k/evm-semantics/.build/local/lib/proto/proto/msg.pb.h:23:
In file included from /usr/local/include/google/protobuf/io/coded_stream.h:149:
In file included from /usr/local/include/google/protobuf/stubs/common.h:48:
/usr/local/include/google/protobuf/stubs/port.h:119:2: error: "Protobuf requires at least C++11."
#error "Protobuf requires at least C++11."
 ^
/usr/local/include/google/protobuf/stubs/port.h:141:39: error: expected '(' for function-style cast or type construction
static const int64 kint64max = int64_t{0x7FFFFFFFFFFFFFFF};
                               ~~~~~~~^
/usr/local/include/google/protobuf/stubs/port.h:144:42: error: expected '(' for function-style cast or type construction
static const uint64 kuint64max = uint64_t{0xFFFFFFFFFFFFFFFFu};
                                 ~~~~~~~~^
20 errors generated.
In file included from /Users/echo/.dapp/k/evm-semantics/node/vm/kevm/semantics.cpp:1:
In file included from /Users/echo/.dapp/k/evm-semantics/.build/local/lib/proto/proto/msg.pb.h:23:
In file included from /usr/local/include/google/protobuf/io/coded_stream.h:149:
In file included from /usr/local/include/google/protobuf/stubs/common.h:49:
/usr/local/include/google/protobuf/stubs/stringpiece.h:178:10: error: unknown type name 'constexpr'
  static constexpr size_type kMaxSize =
         ^
/usr/local/include/google/protobuf/stubs/stringpiece.h:178:29: error: expected ';' at end of declaration list
  static constexpr size_type kMaxSize =
                            ^
In file included from /Users/echo/.dapp/k/evm-semantics/node/vm/vm.cpp:2:
In file included from /Users/echo/.dapp/k/evm-semantics/.build/local/lib/proto/proto/msg.pb.h:23:
In file included from /usr/local/include/google/protobuf/io/coded_stream.h:149:
In file included from /usr/local/include/google/protobuf/stubs/common.h:49:
/usr/local/include/google/protobuf/stubs/stringpiece.h:178:10: error: unknown type name 'constexpr'
  static constexpr size_type kMaxSize =
         ^
/usr/local/include/google/protobuf/stubs/stringpiece.h:178:29: error: expected ';' at end of declaration list
  static constexpr size_type kMaxSize =
                            ^
/usr/local/include/google/protobuf/stubs/stringpiece.h:183:39: error: use of undeclared identifier 'kMaxSize'
    if (PROTOBUF_PREDICT_FALSE(size > kMaxSize)) {
                                      ^
make[3]: *** [CMakeFiles/kevm-vm.dir/Users/echo/.dapp/k/evm-semantics/node/vm/init.cpp.o] Error 1
make[3]: *** Waiting for unfinished jobs....
/usr/local/include/google/protobuf/stubs/stringpiece.h:183:39: error: use of undeclared identifier 'kMaxSize'
    if (PROTOBUF_PREDICT_FALSE(size > kMaxSize)) {
                                      ^
In file included from /Users/echo/.dapp/k/evm-semantics/node/vm/main.cpp:5:
In file included from /Users/echo/.dapp/k/evm-semantics/.build/local/lib/proto/proto/msg.pb.h:23:
In file included from /usr/local/include/google/protobuf/io/coded_stream.h:149:
In file included from /usr/local/include/google/protobuf/stubs/common.h:49:
/usr/local/include/google/protobuf/stubs/stringpiece.h:178:10: error: unknown type name 'constexpr'
  static constexpr size_type kMaxSize =
         ^
/usr/local/include/google/protobuf/stubs/stringpiece.h:178:29: error: expected ';' at end of declaration list
  static constexpr size_type kMaxSize =
                            ^
In file included from /Users/echo/.dapp/k/evm-semantics/node/plugin-c/world.cpp:5:
In file included from /Users/echo/.dapp/k/evm-semantics/.build/local/lib/proto/proto/msg.pb.h:23:
In file included from /usr/local/include/google/protobuf/io/coded_stream.h:149:
In file included from /usr/local/include/google/protobuf/stubs/common.h:49:
/usr/local/include/google/protobuf/stubs/stringpiece.h:178:10: error: unknown type name 'constexpr'
  static constexpr size_type kMaxSize =
         ^
/usr/local/include/google/protobuf/stubs/stringpiece.h:178:29: error: expected ';' at end of declaration list
  static constexpr size_type kMaxSize =
                            ^
In file included from /Users/echo/.dapp/k/evm-semantics/node/plugin-c/blockchain.cpp:3:
In file included from /Users/echo/.dapp/k/evm-semantics/.build/local/lib/proto/proto/msg.pb.h:23:
In file included from /usr/local/include/google/protobuf/io/coded_stream.h:149:
In file included from /usr/local/include/google/protobuf/stubs/common.h:49:
/usr/local/include/google/protobuf/stubs/stringpiece.h:178:10: error: unknown type name 'constexpr'
  static constexpr size_type kMaxSize =
         ^
/usr/local/include/google/protobuf/stubs/stringpiece.h:178:29: error: expected ';' at end of declaration list
  static constexpr size_type kMaxSize =
                            ^
/usr/local/include/google/protobuf/stubs/stringpiece.h/usr/local/include/google/protobuf/stubs/stringpiece.h::183183::3939::  errorerror: : use of undeclared identifier 'kMaxSize'use of undeclared identifier 'kMaxSize'

    if (PROTOBUF_PREDICT_FALSE(size > kMaxSize)) {    if (PROTOBUF_PREDICT_FALSE(size > kMaxSize)) {

                                      ^                                      ^

/usr/local/include/google/protobuf/stubs/stringpiece.h:183:39: error: use of undeclared identifier 'kMaxSize'
    if (PROTOBUF_PREDICT_FALSE(size > kMaxSize)) {
                                      ^
In file included from /Users/echo/.dapp/k/evm-semantics/node/vm/vm.cpp:2:
In file included from /Users/echo/.dapp/k/evm-semantics/.build/local/lib/proto/proto/msg.pb.h:23:
/usr/local/include/google/protobuf/io/coded_stream.h:857:10: error: unknown type name 'constexpr'
  static constexpr int TagSize(uint32 tag) {
         ^
In file included from /Users/echo/.dapp/k/evm-semantics/node/vm/kevm/semantics.cpp:1:
In file included from /Users/echo/.dapp/k/evm-semantics/.build/local/lib/proto/proto/msg.pb.h:23:
/usr/local/include/google/protobuf/io/coded_stream.h:857:10: error: unknown type name 'constexpr'
  static constexpr int TagSize(uint32 tag) {
         ^
/usr/local/include/google/protobuf/io/coded_stream.h:796:5: error: unknown type name 'constexpr'
    constexpr auto element_size = sizeof(typename T::value_type);
    ^
/usr/local/include/google/protobuf/io/coded_stream.h:796:5: error: unknown type name 'constexpr'
    constexpr auto element_size = sizeof(typename T::value_type);
    ^
In file included from /Users/echo/.dapp/k/evm-semantics/node/plugin-c/blockchain.cpp:3:
In file included from /Users/echo/.dapp/k/evm-semantics/.build/local/lib/proto/proto/msg.pb.h:23:
/usr/local/include/google/protobuf/io/coded_stream.h:857:10: error: unknown type name 'constexpr'
  static constexpr int TagSize(uint32 tag) {
         ^
In file included from /Users/echo/.dapp/k/evm-semantics/node/vm/main.cpp:5:
In file included from /Users/echo/.dapp/k/evm-semantics/.build/local/lib/proto/proto/msg.pb.h:23:
/usr/local/include/google/protobuf/io/coded_stream.h:857:10: error: unknown type name 'constexpr'
  static constexpr int TagSize(uint32 tag) {
         ^
/usr/local/include/google/protobuf/io/coded_stream.h:1060:9: error: delegating constructors are permitted only in C++11
      : CodedOutputStream(stream, true) {}
        ^~~~~~~~~~~~~~~~~
/usr/local/include/google/protobuf/io/coded_stream.h:1060:9: error: delegating constructors are permitted only in C++11
      : CodedOutputStream(stream, true) {}
        ^~~~~~~~~~~~~~~~~
In file included from /Users/echo/.dapp/k/evm-semantics/node/plugin-c/world.cpp:5:
In file included from /Users/echo/.dapp/k/evm-semantics/.build/local/lib/proto/proto/msg.pb.h:23:
/usr/local/include/google/protobuf/io/coded_stream.h:857:10: error: unknown type name 'constexpr'
  static constexpr int TagSize(uint32 tag) {
         ^
/usr/local/include/google/protobuf/io/coded_stream.h:796:5: error: unknown type name 'constexpr'
/usr/local/include/google/protobuf/io/coded_stream.h:796:5: error: unknown type name 'constexpr'    constexpr auto element_size = sizeof(typename T::value_type);

    ^
    constexpr auto element_size = sizeof(typename T::value_type);
    ^
/usr/local/include/google/protobuf/io/coded_stream.h:796:5: error: unknown type name 'constexpr'
    constexpr auto element_size = sizeof(typename T::value_type);
    ^
/usr/local/include/google/protobuf/io/coded_stream.h:1060:9: error: delegating constructors are permitted only in C++11
      : CodedOutputStream(stream, true) {}
        ^~~~~~~~~~~~~~~~~
/usr/local/include/google/protobuf/io/coded_stream.h:1060:9: error: delegating constructors are permitted only in C++11
      : CodedOutputStream(stream, true) {}
        ^~~~~~~~~~~~~~~~~
/usr/local/include/google/protobuf/io/coded_stream.h:1060:9: error: delegating constructors are permitted only in C++11
      : CodedOutputStream(stream, true) {}
        ^~~~~~~~~~~~~~~~~
In file included from /Users/echo/.dapp/k/evm-semantics/node/vm/vm.cpp:2:
In file included from /Users/echo/.dapp/k/evm-semantics/.build/local/lib/proto/proto/msg.pb.h:24:
In file included from /usr/local/include/google/protobuf/arena.h:55:
/usr/local/include/google/protobuf/arena_impl.h:54:8: error: unknown type name 'constexpr'
inline constexpr size_t AlignUpTo8(size_t n) {
       ^
/usr/local/include/google/protobuf/arena_impl.h:54:24: error: expected ';' after top level declarator
inline constexpr size_t AlignUpTo8(size_t n) {
                       ^
In file included from /Users/echo/.dapp/k/evm-semantics/node/vm/kevm/semantics.cpp:1:
In file included from /Users/echo/.dapp/k/evm-semantics/.build/local/lib/proto/proto/msg.pb.h:24:
In file included from /usr/local/include/google/protobuf/arena.h:55:
/usr/local/include/google/protobuf/arena_impl.h:54:8: error: unknown type name 'constexpr'
inline constexpr size_t AlignUpTo8(size_t n) {
       ^
/usr/local/include/google/protobuf/arena_impl.h:54:24: error: expected ';' after top level declarator
inline constexpr size_t AlignUpTo8(size_t n) {
                       ^
/usr/local/include/google/protobuf/arena_impl.h:95:10: error: unknown type name 'constexpr'
  static constexpr size_t kDefaultStartBlockSize = 256;
         ^
/usr/local/include/google/protobuf/arena_impl.h:95:26: error: expected ';' at end of declaration list
  static constexpr size_t kDefaultStartBlockSize = 256;
                         ^
In file included from /Users/echo/.dapp/k/evm-semantics/node/plugin-c/blockchain.cpp:3:
In file included from /Users/echo/.dapp/k/evm-semantics/.build/local/lib/proto/proto/msg.pb.h:24:
In file included from /usr/local/include/google/protobuf/arena.h:55:
/usr/local/include/google/protobuf/arena_impl.h:54:8: error: unknown type name 'constexpr'
inline constexpr size_t AlignUpTo8(size_t n) {
       ^
/usr/local/include/google/protobuf/arena_impl.h:54:24: error: expected ';' after top level declarator
inline constexpr size_t AlignUpTo8(size_t n) {
                       ^
In file included from /Users/echo/.dapp/k/evm-semantics/node/vm/main.cpp:5:
In file included from /Users/echo/.dapp/k/evm-semantics/.build/local/lib/proto/proto/msg.pb.h:24:
In file included from /usr/local/include/google/protobuf/arena.h:55:
/usr/local/include/google/protobuf/arena_impl.h:54:8: error: unknown type name 'constexpr'
inline constexpr size_t AlignUpTo8(size_t n) {
       ^
/usr/local/include/google/protobuf/arena_impl.h:54:24: error: expected ';' after top level declarator
inline constexpr size_t AlignUpTo8(size_t n) {
                       ^
/usr/local/include/google/protobuf/arena_impl.h:95:10: error: unknown type name 'constexpr'
  static constexpr size_t kDefaultStartBlockSize = 256;
         ^
/usr/local/include/google/protobuf/arena_impl.h:95:26: error: expected ';' at end of declaration list
  static constexpr size_t kDefaultStartBlockSize = 256;
                         ^
/usr/local/include/google/protobuf/arena_impl.h:96:10: error: unknown type name 'constexpr'
  static constexpr size_t kDefaultMaxBlockSize = 8192;
         ^
/usr/local/include/google/protobuf/arena_impl.h:96:26: error: expected ';' at end of declaration list
  static constexpr size_t kDefaultMaxBlockSize = 8192;
                         ^
/usr/local/include/google/protobuf/arena_impl.h:95:10: error: unknown type name 'constexpr'
  static constexpr size_t kDefaultStartBlockSize = 256;
         ^
/usr/local/include/google/protobuf/arena_impl.h:95:26: error: expected ';' at end of declaration list
  static constexpr size_t kDefaultStartBlockSize = 256;
                         ^
In file included from /Users/echo/.dapp/k/evm-semantics/node/plugin-c/world.cpp:5:
In file included from /Users/echo/.dapp/k/evm-semantics/.build/local/lib/proto/proto/msg.pb.h:24:
In file included from /usr/local/include/google/protobuf/arena.h:55:
/usr/local/include/google/protobuf/arena_impl.h:54:8: error: unknown type name 'constexpr'
inline constexpr size_t AlignUpTo8(size_t n) {
       ^
/usr/local/include/google/protobuf/arena_impl.h:54:24: error: expected ';' after top level declarator
inline constexpr size_t AlignUpTo8(size_t n) {
                       ^
/usr/local/include/google/protobuf/arena_impl.h:96:10: error: unknown type name 'constexpr'
  static constexpr size_t kDefaultMaxBlockSize = 8192;
         ^
/usr/local/include/google/protobuf/arena_impl.h:96:26: error: expected ';' at end of declaration list
  static constexpr size_t kDefaultMaxBlockSize = 8192;
                         ^
/usr/local/include/google/protobuf/arena_impl.h:95:10: error: unknown type name 'constexpr'
  static constexpr size_t kDefaultStartBlockSize = 256;
         ^
/usr/local/include/google/protobuf/arena_impl.h:95:26: error: expected ';' at end of declaration list
  static constexpr size_t kDefaultStartBlockSize = 256;
                         ^
/usr/local/include/google/protobuf/arena_impl.h:96:10: error: unknown type name 'constexpr'
  static constexpr size_t kDefaultMaxBlockSize = 8192;
         ^
/usr/local/include/google/protobuf/arena_impl.h:96:26: error: expected ';' at end of declaration list
  static constexpr size_t kDefaultMaxBlockSize = 8192;
                         ^
/usr/local/include/google/protobuf/arena_impl.h:98:3: error: unknown type name 'size_t'
  size_t start_block_size = kDefaultStartBlockSize;
  ^
/usr/local/include/google/protobuf/arena_impl.h:98:3: error: unknown type name 'size_t'
  size_t start_block_size = kDefaultStartBlockSize;
  ^
/usr/local/include/google/protobuf/arena_impl.h:96:10: error: unknown type name 'constexpr'
  static constexpr size_t kDefaultMaxBlockSize = 8192;
         ^
/usr/local/include/google/protobuf/arena_impl.h:96:26: error: expected ';' at end of declaration list
  static constexpr size_t kDefaultMaxBlockSize = 8192;
                         ^
/usr/local/include/google/protobuf/arena_impl.h:95:10: error: unknown type name 'constexpr'
  static constexpr size_t kDefaultStartBlockSize = 256;
         ^
/usr/local/include/google/protobuf/arena_impl.h:95:26: error: expected ';' at end of declaration list
  static constexpr size_t kDefaultStartBlockSize = 256;
                         ^
/usr/local/include/google/protobuf/arena_impl.h:98:3: error: unknown type name 'size_t'
  size_t start_block_size = kDefaultStartBlockSize;
  ^
/usr/local/include/google/protobuf/arena_impl.h:99:3: error: unknown type name 'size_t'
  size_t max_block_size = kDefaultMaxBlockSize;
  ^
/usr/local/include/google/protobuf/arena_impl.h:99:3: error: unknown type name 'size_t'
  size_t max_block_size = kDefaultMaxBlockSize;
  ^
/usr/local/include/google/protobuf/arena_impl.h:98:3: error: unknown type name 'size_t'
  size_t start_block_size = kDefaultStartBlockSize;
  ^
/usr/local/include/google/protobuf/arena_impl.h:99:3: error: unknown type name 'size_t'
  size_t max_block_size = kDefaultMaxBlockSize;
  ^
/usr/local/include/google/protobuf/arena_impl.h:100:24: error: unknown type name 'size_t'
  void* (*block_alloc)(size_t) = nullptr;
                       ^
/usr/local/include/google/protobuf/arena_impl.h:96:10: error: unknown type name 'constexpr'
  static constexpr size_t kDefaultMaxBlockSize = 8192;
         ^
/usr/local/include/google/protobuf/arena_impl.h:96:26: error: expected ';' at end of declaration list
  static constexpr size_t kDefaultMaxBlockSize = 8192;
                         ^
/usr/local/include/google/protobuf/arena_impl.h:100:24: error: unknown type name 'size_t'
  void* (*block_alloc)(size_t) = nullptr;
                       ^
/usr/local/include/google/protobuf/arena_impl.h:99:3: error: unknown type name 'size_t'
  size_t max_block_size = kDefaultMaxBlockSize;
  ^
/usr/local/include/google/protobuf/arena_impl.h:100:24: error: unknown type name 'size_t'
  void* (*block_alloc)(size_t) = nullptr;
                       ^
/usr/local/include/google/protobuf/arena_impl.h:101:32: error: unknown type name 'size_t'
  void (*block_dealloc)(void*, size_t) = nullptr;
                               ^
/usr/local/include/google/protobuf/arena_impl.h:101:32: error: unknown type name 'size_t'
  void (*block_dealloc)(void*, size_t) = nullptr;
                               ^
/usr/local/include/google/protobuf/arena_impl.h:98:3: error: unknown type name 'size_t'
  size_t start_block_size = kDefaultStartBlockSize;
  ^
/usr/local/include/google/protobuf/arena_impl.h:100:24: error: unknown type name 'size_t'
  void* (*block_alloc)(size_t) = nullptr;
                       ^
/usr/local/include/google/protobuf/arena_impl.h:101:32: error: unknown type name 'size_t'
  void (*block_dealloc)(void*, size_t) = nullptr;
                               ^
/usr/local/include/google/protobuf/arena_impl.h:99:3: error: unknown type name 'size_t'
  size_t max_block_size = kDefaultMaxBlockSize;
  ^
/usr/local/include/google/protobuf/arena_impl.h:101:32: error: unknown type name 'size_t'
  void (*block_dealloc)(void*, size_t) = nullptr;
                               ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
/usr/local/include/google/protobuf/arena_impl.h:100:24: error: unknown type name 'size_t'
  void* (*block_alloc)(size_t) = nullptr;
                       ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
/usr/local/include/google/protobuf/arena_impl.h:101:32: error: unknown type name 'size_t'
  void (*block_dealloc)(void*, size_t) = nullptr;
                               ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
fatal error: too many errors emitted, stopping now [-ferror-limit=]
1 error generated.
fatal error: too many errors emitted, stopping now [-ferror-limit=]
make[3]: *** [CMakeFiles/kevm-vm.dir/Users/echo/.dapp/k/evm-semantics/deps/plugin/plugin-c/crypto.cpp.o] Error 1
20 errors generated.
make[3]: *** [CMakeFiles/kevm-vm.dir/Users/echo/.dapp/k/evm-semantics/node/plugin-c/blockchain.cpp.o] Error 1
20 errors generated.
20 errors generated.
20 errors generated.
make[3]: *** [CMakeFiles/kevm-vm.dir/Users/echo/.dapp/k/evm-semantics/node/vm/main.cpp.o] Error 1
make[3]: *** [CMakeFiles/kevm-vm.dir/Users/echo/.dapp/k/evm-semantics/node/plugin-c/world.cpp.o] Error 1
20 errors generated.
make[3]: *** [CMakeFiles/kevm-vm.dir/Users/echo/.dapp/k/evm-semantics/node/vm/kevm/semantics.cpp.o] Error 1
make[3]: *** [CMakeFiles/kevm-vm.dir/Users/echo/.dapp/k/evm-semantics/node/vm/vm.cpp.o] Error 1
make[2]: *** [CMakeFiles/kevm-vm.dir/all] Error 2
make[1]: *** [all] Error 2
make: *** [.build/usr/lib/kevm/node/build/kevm-vm] Error 2
make: *** Waiting for unfinished jobs....
+ openssl_root=/usr/local/opt/openssl@3
++ brew --prefix
+ brew_root=/usr/local
+ kompile_opts+=(-ccopt -I${brew_root}/include -ccopt -L/${brew_root}/lib -ccopt -I${openssl_root}/include -ccopt -L${openssl_root}/lib)
+ kompile_opts+=(-ccopt -I${libcryptopp_dir}/include -ccopt -L/${libcryptopp_dir}/lib)
+ kompile driver.md -I /Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/include/kframework -I /Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/blockchain-k-plugin/include/kframework --hook-namespaces 'JSON KRYPTO BLOCKCHAIN' --emit-json --md-selector 'k & ! nobytes & ! node' --backend llvm -ccopt -L/Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/libff/lib -ccopt -I/Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/libff/include -ccopt /Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/blockchain-k-plugin/include/c/plugin_util.cpp -ccopt /Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/blockchain-k-plugin/include/c/crypto.cpp -ccopt /Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/blockchain-k-plugin/include/c/blake2.cpp -ccopt -g -ccopt -std=c++14 -ccopt -lff -ccopt -lcryptopp -ccopt -lsecp256k1 -ccopt -lssl -ccopt -lcrypto -ccopt -I/usr/local/include -ccopt -L//usr/local/lib -ccopt -I/usr/local/opt/openssl@3/include -ccopt -L/usr/local/opt/openssl@3/lib -ccopt -I/Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/cryptopp/include -ccopt -L//Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/cryptopp/lib --directory .build/usr/lib/kevm/llvm --main-module ETHEREUM-SIMULATION --syntax-module ETHEREUM-SIMULATION --debug -I /usr/lib/kevm/include/kframework -I /usr/lib/kevm/blockchain-k-plugin/include/kframework -O2
/Users/echo/.dapp/k/evm-semantics/.build/usr/lib/kevm/blockchain-k-plugin/include/c/crypto.cpp:8:10: fatal error: 'openssl/evp.h' file not found
#include <openssl/evp.h>
         ^~~~~~~~~~~~~~~
1 error generated.
org.kframework.utils.errorsystem.KEMException: [Error] Critical: llvm-kompile returned nonzero exit code: 1
Examine output to see errors.
        at org.kframework.utils.errorsystem.KEMException.create(KEMException.java:143)
        at org.kframework.utils.errorsystem.KEMException.criticalError(KEMException.java:39)
        at org.kframework.backend.llvm.LLVMBackend.llvmKompile(LLVMBackend.java:104)
        at org.kframework.backend.llvm.LLVMBackend.accept(LLVMBackend.java:81)
        at org.kframework.kompile.KompileFrontEnd.run(KompileFrontEnd.java:89)
        at org.kframework.main.FrontEnd.main(FrontEnd.java:57)
        at org.kframework.main.Main.runApplication(Main.java:118)
        at org.kframework.main.Main.runApplication(Main.java:108)
        at org.kframework.main.Main.main(Main.java:56)
make: *** [.build/usr/lib/kevm/llvm/driver-kompiled/interpreter] Error 113