BitcoinTalk

Can't Build r80 from SVN

BitcoinTalk
#1
From:
lachesis
Subject:
Can't Build r80 from SVN
Date:
I can't build r80 from the SVN with -O2 in the makefile. I'm running Ubuntu 10.04 LTS 64-bit on an Intel Core 2. If I remove -O2 (switch back to -O0), it builds fine.

The problem seems to be line 15 of net.h. My googling suggests that statement-expressions, some non-standard, GCC-only extension to C++, are not allowed outside of functions at that level of optimization. htons is implemented as a statement-expression for linux. I managed to get it to build by replacing the htos(8333) with 0x8D20, which is 8333 in network byte order. This compiles and runs fine on my Intel processor, but probably wouldn't work on a big endian processor like a PowerPC.

Is anybody else experiencing this bug?

Also, I'm somewhat disappointed. -O2 didn't help me generate hashes any faster. Perhaps I'll try -O3.
BitcoinTalk
#2
From:
laszlo
Subject:
Re: Can't Build r80 from SVN
Date:
You did the right thing.. none of it works on big endian anyway.
BitcoinTalk
#3
From:
D҉ataWraith
Subject:
Re: Can't Build r80 from SVN
Date:
Is anybody else experiencing this bug?

Also, I'm somewhat disappointed. -O2 didn't help me generate hashes any faster. Perhaps I'll try -O3.

Yeah, I had the same problem.

BtW: If you look at the makefile, sha.{h,cpp} are already compiled -O3; using a higher optimization level for the remainder of the program is probably not going to help much.
BitcoinTalk
#4
From:
laszlo
Subject:
Re: Can't Build r80 from SVN
Date:
-O2 is generally the preferred optimization for gcc, -O3 can produce larger code which is slower, but you should experiment around with it.. it also seems to depend on the time of day or the phases of the moon for me at least, some days I'm getting a lot more hashes per second.
BitcoinTalk
#5
From:
Xunie
Subject:
Re: Can't Build r80 from SVN
Date:
Please note that revision 77 is buildable (by default) and 78 isn't I believe.

And can you next time wait for your answer in IRC?
I mean, you asked your question twice, we're just not in the room 24/7! Wink
BitcoinTalk
#6
From:
lachesis
Subject:
Re: Can't Build r80 from SVN
Date:
I'm not in the room 24/7 either. I decided to go off IRC and to the forums so I wouldn't need to wait around all day.

I need to learn some more C++. There are a lot of things that would improve bitcoin like encrypted wallet files, built-in performance monitoring, RPC extension, etc. Is there any system for submitting patches for inclusion in the SVN and/or default builds?

I don't mean to come accross as confrontational. I love Bitcoin and just want to help improve it.
BitcoinTalk
#7
From:
laszlo
Subject:
Re: Can't Build r80 from SVN
Date:
Some notes on how to build the linux client.  I used a 64 bit system but the process is almost identical for i386 linux.

http://heliacal.net/~solar/bitcoin/bitcoin-linuxbuild.pdf

BitcoinTalk
#8
From:
lachesis
Subject:
Re: Can't Build r80 from SVN
Date:
Some notes on how to build the linux client.  I used a 64 bit system but the process is almost identical for i386 linux.
That's my process as well, although I apply a variety of patches to things before hand. And I have boost and I think libdb from Ubuntu's repos.
BitcoinTalk
#9
From:
satoshi
Subject:
Re: Can't Build r80 from SVN
Date:
Sorry, I didn't test compile on linux the last few revisions.

Reverted makefile.unix.