Skip to content

Instantly share code, notes, and snippets.

@desnudopenguino
Last active January 3, 2018 20:43
Show Gist options
  • Save desnudopenguino/cc6af843b596f5d2151d86d7ea1a534b to your computer and use it in GitHub Desktop.
Save desnudopenguino/cc6af843b596f5d2151d86d7ea1a534b to your computer and use it in GitHub Desktop.
Building/Installing Bitcoin on OpenBSD
0. Make sure some dependencies are installed!
automake (1.15), autoconf (2.69), git, libtool, berkleydb (installed from source 4.8), boost, protobuf, python > 3.5, gmake, leveldb
5.9 guide: https://github.com/bitcoin/bitcoin/blob/master/doc/build-openbsd.md
1. Clone the repo
git clone https://github.com/bitcoin/bitcoin.git
2. Checkout newest stable branch (0.13.0 currently)
git checkout v0.13.0
3. run autogen script
./autogen.sh
Error: Provide an AUTOCONF_VERSION environment variable, please.
3.1 export AUTOCONF_VERSION 2.69
.autogen.sh
Error: Provide an AUTOMAKE_VERSION environment variable, please.
3.2 export AUTOMAKE_VERSION 1.15
.autogen.sh
4. configure
./configure
4.1 set CC & CXX vars
CC=egcc CXX=eg++ ./configure
4.2 Errors, missing random parts
db4 from source, protobuf, qt,
5. make it
make
5.1 make throws as issue with PYTHONPATH
use gmake as per OpenBSD 5.9 method
5.2 gmake
6. gmake check
error: "virtual memory exhausted..."
6.1 /etc/login.conf - add memory
for staff user set datasize=infinity (commented out other datasize lines, > 2GB should work)
6.2 gmake check (again)
New Error
installed leveldb
CXX leveldb/db/leveldb_libleveldb_a-builder.o
<command-line>:0:12: warning: ISO C99 requires whitespace after the macro name
In file included from ./leveldb/port/port.h:14:0,
from ./leveldb/db/filename.h:14,
from leveldb/db/builder.cc:7:
./leveldb/port/port_posix.h:50:36: error: '__BYTE_ORDER' was not declared in this scope
#define PLATFORM_IS_LITTLE_ENDIAN (__BYTE_ORDER == __LITTLE_ENDIAN)
^
./leveldb/port/port_posix.h:81:35: note: in expansion of macro 'PLATFORM_IS_LITTLE_ENDIAN'
static const bool kLittleEndian = PLATFORM_IS_LITTLE_ENDIAN;
^
./leveldb/port/port_posix.h:50:52: error: '__LITTLE_ENDIAN' was not declared in this scope
#define PLATFORM_IS_LITTLE_ENDIAN (__BYTE_ORDER == __LITTLE_ENDIAN)
^
./leveldb/port/port_posix.h:81:35: note: in expansion of macro 'PLATFORM_IS_LITTLE_ENDIAN'
static const bool kLittleEndian = PLATFORM_IS_LITTLE_ENDIAN;
^
gmake[2]: *** [Makefile:3983: leveldb/db/leveldb_libleveldb_a-builder.o] Error 1
gmake[2]: Leaving directory '/home/bucky/Workspaces/src/bitcoin/src'
gmake[1]: *** [Makefile:8349: check-recursive] Error 1
gmake[1]: Leaving directory '/home/bucky/Workspaces/src/bitcoin/src'
gmake: *** [Makefile:677: check-recursive] Error 1
@desnudopenguino
Copy link
Author

Message from OpenBSD 5.9 guide writer:

Hello,

I am working on building Bitcoin on OpenBSD 6.0 and noticed you had written
the doc for 5.9. I am stuck with the error below when running gmake check.
I also had to bump the datasize to > 2GB in /etc/login.conf to get gmake to
run without running out of memory.

What branch / tag are you trying to build?

CXX leveldb/db/leveldb_libleveldb_a-builder.o
:0:12: warning: ISO C99 requires whitespace after the macro name
In file included from ./leveldb/port/port.h:14:0,
from ./leveldb/db/filename.h:14,
from leveldb/db/builder.cc:7:
./leveldb/port/port_posix.h:50:36: error: '__BYTE_ORDER' was not declared in this scope
#define PLATFORM_IS_LITTLE_ENDIAN (__BYTE_ORDER == __LITTLE_ENDIAN)

Seems LevelDB platform is confused.
This may be a problem solved with commit 883175f in master (pull #8604)
If you're on 0.13 you couuld try to cherry-pick that one.

Wladimir

@desnudopenguino
Copy link
Author

desnudopenguino commented Oct 21, 2016

Built with no wallet and no gui following 5.9 steps

Will build with wallet and GUI on a fresh (and larger) vm to sync up the full blockchain tomorrow.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment