I successfully compiled Steem from the master branch on Fedora 24 with GCC 6.1. There was a couple of gotchas to overcome, so I think this quick guide could be useful to users of Fedora and maybe other GNU/Linux distributions that have the latest GCC version. The guide is adapted from the Russian version that I posted earlier.
You need to download and build Boost 1.60.0 first (Steem wouldn't compile with the latest Boost 1.61.0). After downloading boost_1_60_0.tar.bz2:
$ tar -xjf boost_1_60_0.tar.bz2
$ cd boost_1_60_0/
Now, Boost 1.60.0 is not compatible with GCC 6.1. To fix this I had to replace boost/multiprecision/cpp_int.hpp with this version:
$ curl 'https://raw.githubusercontent.com/boostorg/multiprecision/f9c8f9ec091ad232c0a291904f7839d665d098e0/include/boost/multiprecision/cpp_int.hpp' \
> boost/multiprecision/cpp_int.hpp
Installing the dependencies needed to compile Boost:
$ sudo dnf builddep boost
Building and installing Boost:
$ ./bootstrap.sh --prefix="$HOME/opt/boost-1.60.0"
$ ./b2 install
Building Steem:
$ git clone --recursive https://github.com/steemit/steem.git
$ cd steem
$ cmake -DBOOST_ROOT="$HOME/opt/boost-1.60.0" \
-DENABLE_CONTENT_PATCHING=OFF -DLOW_MEMORY_NODE=ON \
-DCMAKE_BUILD_TYPE=Release .
While compiling I caught an error that I was able to fix by replacing the following line in libraries/fc/git_revision.cpp (I am using sharps instead of hashes here as otherwise Steemit parses it as a tag):
♯define FC_GIT_REVISION_UNIX_TIMESTAMP HEAD-HASH-NOTFOUND
with
♯define FC_GIT_REVISION_UNIX_TIMESTAMP 0
and restarting cmake.
After that everything compiled successfully, steemd could be found in programs/steemd/, cli_wallet — in programs/cli_wallet/.
If I understand it correctly, variables ENABLE_CONTENT_PATCHING=OFF and LOW_MEMORY_NODE=ON are supposed to reduce system resource usage by the node, yet steemd still requires quite a lot of memory. On my machine it uses 5 G while mining, of which 2.8 G is resident and 2.2 G is in swap.