No description provided.
Autoconf improvements, part 3 #3242
pull luke-jr wants to merge 8 commits into bitcoin:master from luke-jr:autoconf_pt3 changing 4 files +114 −48-
luke-jr commented at 9:02 PM on November 12, 2013: member
-
codeboost commented at 1:01 PM on November 22, 2013: none
Tested on OSX 10.9 with homebrew: No more 'No working boost sleep implementation found' error during ./configure Builds fine.
-
theuni commented at 11:52 PM on December 1, 2013: member
Not internal files and build-targets. What's the benefit? Edit: Whoops, replied in the wrong place. I'm sure you'll find it :p
-
luke-jr commented at 1:05 AM on December 2, 2013: member
Makes testing against an alternative LevelDB easier.
-
luke-jr commented at 1:46 PM on December 3, 2013: member
Split out bitcoin-cli from bitcoind and rebased.
-
theuni commented at 6:36 PM on December 3, 2013: member
@luke-jr You missed my point. Please re-read cae63be6c95b19c236a2333c1f2456e016e13f0f. This is not theoretical, it was fixed because it was seen by devs. See here for another explanation: http://stackoverflow.com/questions/17216048/parallel-gnu-make-and-rules-that-create-several-targets-at-once
I really don't like the leveldb changes, -1 to those. The helper libs are becoming a mess as well, I'd like the opportunity to clean those up a bit first before adding more fuel.
-
theuni commented at 8:14 PM on December 3, 2013: member
All you should need to do is to ensure that they're chained:
$(LIBLEVELDB): $(LIBMEMENV) $(LIBLEVELDB) $(LIBMEMENV): [@echo](/bitcoin-bitcoin/contributor/echo/)...But this is a good example of why these targets need to be handled in makefiles and not in configure. How 'bout we compromise by setting the path there instead?
(untested)
# if x$enable_external_leveldb != xno; then # AC_CHECK_LIB([leveldb]) # AC_CHECK_LIB([memenv]) # use_external_leveldb=yes # fi # ... # AM_CONDITIONAL([EXTERNAL_LEVELDB],[test x$use_external_leveldb = xyes]) $(LIBLEVELDB): $(LIBMEMENV) $(LIBLEVELDB) $(LIBMEMENV): [@echo](/bitcoin-bitcoin/contributor/echo/) ... if !EXTERNAL_LEVELDB LIBLEVELDB=leveldb/libleveldb.a LIBMEMENV=leveldb/libmemenv.a bitcoind_LDADD += $(LIBLEVELDB) $(LIBMEMENV) endif -
theuni commented at 1:05 AM on December 4, 2013: member
Once those two things are resolved, I retract my -1. I still don't think the leveldb work is useful/warranted, but afaics it's technically sound and I won't stand in the way of it.
+1 to the rest.
-
theuni commented at 1:30 AM on December 4, 2013: member
thanks, -1 retracted.
-
gavinandresen commented at 2:10 AM on December 4, 2013: contributor
Testing on my Mac with 'git test-sequence upstream/master.. 'make clean && make -j 8 check' I got a weird failure on one of the commits:
rm -f libmemenv.a rm -f libmemenv.a /usr/bin/ar -rs libmemenv.a helpers/memenv/memenv.o ar: creating archive libmemenv.a /usr/bin/ar -rs libmemenv.a helpers/memenv/memenv.o ar: creating archive libmemenv.a /usr/bin/ranlib: archive member: libmemenv.a(memenv.o) size too large (archive member extends past the end of the file) /usr/bin/ar: internal ranlib command failed Broke on 8f342eb7cbc2efb64fbc1f3eb0bf411a24dfbf35Checking out that commit, I get flaky results running 'make check' -- looks to me like a dependency is messed up, and the leveldb .a's are being created while the .o's inside them are not quite cooked. E.g. another run produces:
ar: creating archive libleveldb.a /usr/bin/ranlib: file: libleveldb.a(env_win.o) has no symbols /usr/bin/ranlib libbitcoin_server.a make[1]: *** [check-recursive] Error 1 make: *** [check-recursive] Error 1 -
theuni commented at 2:30 AM on December 4, 2013: member
@gavinandresen that should've been fixed with the last round of changes. It appears to be the race that I referred to above.
-
jgarzik commented at 12:13 AM on December 13, 2013: contributor
Looks good at untested first glance. --enable-frontends=XXX seems annoyingly complex. That's a taste issue; depends on whether others agree.
-
luke-jr commented at 4:25 AM on December 13, 2013: member
Given the recent name changes, I imagine --enable-frontends= will become a list of cli,daemon,gui - maybe that's more tasteful?
-
laanwj commented at 4:37 AM on December 13, 2013: member
Given that the frontends are our code, and not some auxiliary setting that should be buried deeply, I'd still prefer
--enable-cli --enable-daemon --enable-gui -
Bugfix: configure: Allow user-provided CXXFLAGS to override default optimisation, debug, and warning flags 123e4f878e
-
Bugfix: Undefine _FORTIFY_SOURCE before redefining it, to avoid warnings on compilers that define it by default 9b4e03b27b
-
Cleanup LevelDB library dependencies 4a290b526c
-
configure: Internal changes to make building bitcoind and bitcoin-cli optional f930341d81
-
Bugfix: Correct captitalisation of Qt f47299038d
-
configure: Change --with[out]-qt to --with[out]-gui and add --with[out]-cli and --with[out]-daemon to support more build configurations a9dbcf036b
-
configure: Minor grammatical changes to be more clear e18e1001eb
-
Bugfix: Use BOOST_CPPFLAGS when testing for boost sleep vs sleep_for 2041365c8c
-
BitcoinPullTester commented at 9:30 PM on January 18, 2014: none
Automatic sanity-testing: PASSED, see http://jenkins.bluematt.me/pull-tester/2041365c8c2d0f8e83715b2a643c3fd2cf6eb4cb for binaries and test log. This test script verifies pulls every time they are updated. It, however, dies sometimes and fails to test properly. If you are waiting on a test, please check timestamps to verify that the test.log is moving at http://jenkins.bluematt.me/pull-tester/current/ Contact BlueMatt on freenode if something looks broken.
-
laanwj commented at 10:26 AM on January 19, 2014: member
Code changes look good to me, going to test this with the various gitian builds.
-
laanwj commented at 11:44 AM on January 19, 2014: member
Works for me (TM)
- laanwj referenced this in commit a682bc7e46 on Jan 21, 2014
- laanwj merged this on Jan 21, 2014
- laanwj closed this on Jan 21, 2014
- luke-jr deleted the branch on Jan 1, 2015
- DrahtBot locked this on Sep 8, 2021