Author

Topic: How do you build Berkeley DB 4.8.30 in MinGW? (Read 13982 times)

newbie
Activity: 19
Merit: 0
Hello ,

I replaced  ypedef pthread_t db_threadid_t; with typedef u_int32_t db_threadid_t; in db.h. It didn't work, then i tried reconfiguring with ../dist/configure --enable-cxx --enable-mingw --disable-pthread_api --disable-replication and still the same error.

https://i.imgur.com/Qi7HcDC.png
hero member
Activity: 952
Merit: 500
I got it via PM:
Busted out of the newbie area to get you this.
I was able to compile db-4.8.30.NC by doing the following.

../dist/configure --disable-replication --enable-mingw --enable-cxx --prefix=/usr/local

db.h in build_unix/
@ Line 113 Replace

typedef pthread_t db_threadid_t;

with

typedef u_int32_t db_threadid_t;

Then did make. Hope it works for you!

It worked for me -  thanks Icy!

I want to confirm that this worked for me too....i was going out of head without finding a solution and thats was pure gold!
Thanks

PS: compile on win is a shite! Long life to *nix
legendary
Activity: 996
Merit: 1013

@c275

Try reconfiguring with

../dist/configure --enable-cxx --enable-mingw --disable-pthread_api --disable-replication

Then make again.
sr. member
Activity: 257
Merit: 250
Dude, careful observers here may need more
say build env version, a full build log with the
crapout including the commands used verbatim.
Prolly use a paste site service and prolly not
pastebin.com, it's veritable crud.
hero member
Activity: 700
Merit: 500
I have similiar issue.i replaced typedef u_int32_t db_threadid_t; but not work

can any1 help me ?



Same problem here. changing db.h dosen't work. Any help? Sad
full member
Activity: 210
Merit: 100
I have similiar issue.i replaced typedef u_int32_t db_threadid_t; but not work

can any1 help me ?

newbie
Activity: 1
Merit: 0
Having same problem... building a clone from Dogecoin source.Having this same issue, I think this solved it.. Now if I can get boost to build right, I might have this thing knocked together tonight.
member
Activity: 101
Merit: 10
I got it via PM:
Busted out of the newbie area to get you this.
I was able to compile db-4.8.30.NC by doing the following.

../dist/configure --disable-replication --enable-mingw --enable-cxx --prefix=/usr/local

db.h in build_unix/
@ Line 113 Replace

typedef pthread_t db_threadid_t;

with

typedef u_int32_t db_threadid_t;

Then did make. Hope it works for you!

It worked for me -  thanks Icy!

+1
hero member
Activity: 769
Merit: 500
If you are trying to compile the client using windows then you might have some trouble. I know the last time I tried which was a while ago it had many problems. I write a quick guide on how to do it using a virtual and Ubuntu https://bitcointalksearch.org/topic/guide-compiling-for-window-84984

It's compiling just fine on Windows 7 Smiley. Need to build BDB, OpenSSL and Boost libs, which I now figured out how to do it.

Dia
newbie
Activity: 47
Merit: 0
If you are trying to compile the client using windows then you might have some trouble. I know the last time I tried which was a while ago it had many problems. I write a quick guide on how to do it using a virtual and Ubuntu https://bitcointalksearch.org/topic/guide-compiling-for-window-84984
hero member
Activity: 769
Merit: 500
legendary
Activity: 1072
Merit: 1174
hero member
Activity: 769
Merit: 500
I've got a question, in the 4.7 db.h line 113 reads:
typedef uintmax_t db_threadid_t;

In 4.8 they changed it to:
typedef pthread_t db_threadid_t;

While your version (which fixes the compilation errors with MinGW) is:
typedef u_int32_t db_threadid_t;

How large can thread IDs be? I'm just asking, if u_int32_t is sufficient here?

Dia
hero member
Activity: 769
Merit: 500
Holy fuck and shit, after fixing another small glitch (will report back later for investigation), it works.
I compiled my own BDB lib, compiled Bitcoin-Qt and it starts and works ... great stuff.

Dia
hero member
Activity: 769
Merit: 500
If this works you are my hero Smiley, as I have the same error when doing:

../dist/configure --enable-mingw --enable-cxx

I try to compile on Windows 7 with MinGW (GCC 4.7).

Dia
legendary
Activity: 2053
Merit: 1354
aka tonikt
I got it via PM:
Busted out of the newbie area to get you this.
I was able to compile db-4.8.30.NC by doing the following.

../dist/configure --disable-replication --enable-mingw --enable-cxx --prefix=/usr/local

db.h in build_unix/
@ Line 113 Replace

typedef pthread_t db_threadid_t;

with

typedef u_int32_t db_threadid_t;

Then did make. Hope it works for you!

It worked for me -  thanks Icy!
legendary
Activity: 2053
Merit: 1354
aka tonikt
Should I consider the lack of any answer more like 'works for me', 'we never compile windows client' or rather 'who the hell are you to ask me such questions?' Smiley
legendary
Activity: 2053
Merit: 1354
aka tonikt
September 24, 2011, 09:33:54 AM
#1
According to build-msw.txt all one needs to do is:
Quote
MSYS shell:
cd /c/db-4.8.30.NC-mgw/build_unix
sh ../dist/configure --enable-mingw --enable-cxx
make

It worked just perfect with the previous version (4.7.25).
But with 4.8.30 it just crashesh like this:
Quote
$ make
./libtool --mode=compile gcc -c -I. -I../dist/..  -O3  ../dist/../mutex/mut_win32.c
libtool: compile:  gcc -c -I. -I../dist/.. -O3 ../dist/../mutex/mut_win32.c  -DDLL_EXPORT -DPIC -o .libs/mut_win32.o
In file included from ./db_int.h:886:0,
                 from ../dist/../mutex/mut_win32.c:12:
../dist/../dbinc/repmgr.h:502:13: error: two or more data types in declaration specifiers
../dist/../dbinc/repmgr.h:502:1: warning: useless type name in empty declaration
make: *** [mut_win32.lo] Error 1

So how do you build it?
Jump to: