Cory Fields
a0336af870
build: No need to check for leveldb atomics
...
They're guaranteed with c++11
2020-09-22 23:03:22 +01:00
Cory Fields
58d1bbfe6f
leveldb: integrate leveldb into our buildsystem
...
leveldb's buildsystem causes us a few problems:
- breaks out-of-tree builds
- forces flags used for some tools
- limits cross builds
Rather than continuing to add wrappers around it, simply integrate it into our
build.
2020-09-22 23:01:06 +01:00
Sean Bowe
01d1ea5f0f
make-release.py: Versioning changes for 4.0.0.
2020-09-01 13:28:51 -06:00
Sean Bowe
a5d6dbde1e
make-release.py: Versioning changes for 4.0.0-rc1.
2020-08-26 10:09:33 -06:00
Kris Nuttycombe
0391809da1
Remove amqp code and Proton library depenencies & flags.
2020-07-31 13:08:18 -06:00
therealyingtong
e4963385a4
make-release.py: Versioning changes for 3.1.0.
2020-07-28 06:54:02 +08:00
therealyingtong
170ea7bda0
make-release.py: Versioning changes for 3.1.0-rc2.
2020-07-15 21:50:12 +08:00
therealyingtong
e2be85b3af
make-release.py: Versioning changes for 3.1.0-rc1.
2020-07-14 14:36:44 +08:00
Sean Bowe
306a336a0a
make-release.py: Versioning changes for 3.0.0.
2020-05-22 11:46:19 -06:00
Sean Bowe
7000f452fa
make-release.py: Versioning changes for 3.0.0-rc1.
2020-05-21 07:32:25 -06:00
Sean Bowe
f9d4405c09
make-release.py: Versioning changes for 2.1.2-3.
2020-05-08 12:39:13 -06:00
Sean Bowe
bdb2df182b
make-release.py: Versioning changes for 2.1.2-2.
2020-05-08 11:41:47 -06:00
Sean Bowe
5d24937e5f
make-release.py: Versioning changes for 2.1.2-1.
2020-05-06 10:50:43 -06:00
Sean Bowe
9eadd525a5
make-release.py: Versioning changes for 2.1.2.
2020-04-22 10:43:50 -06:00
Sean Bowe
2386046941
make-release.py: Versioning changes for 2.1.2-rc1.
2020-04-15 17:45:34 -06:00
Jack Grigg
684e62e903
Fix Rust static library linking for Windows builds
...
The library renaming step is necessary because the naming convention
used by rustc does not match the naming convention for libtool/MinGW.
2020-03-12 00:50:45 +13:00
Jack Grigg
90f7234136
Replace librustzcash from depends system with src/rust
...
The --enable-online-rust configure flag replicates the behaviour of the
LIBRUSTZCASH_OVERRIDE environment variable (enabling the build system to
use crates.io instead of vendored dependencies).
2020-03-06 16:49:03 +13:00
Homu
e93586a0c4
Auto merge of #4331 - zcash:hotfix-v2.1.1-1, r=ebfull
...
Hotfix v2.1.1-1
The commits in this PR have been reviewed internally by our team.
2020-02-07 04:50:43 +00:00
Sean Bowe
afc553c448
make-release.py: Versioning changes for 2.1.1-1.
2020-02-06 16:51:15 -07:00
Jack Grigg
2e9028f1f1
Move default -g flag into configure.ac behind --enable-debug=no
...
This ensures that if --enable-debug is set, we correctly use -g3 if it
is available, instead of overriding it.
Part of #4317 .
2020-01-31 13:39:38 +00:00
Jack Grigg
999b3a3235
Make -fwrapv conditional on --enable-debug=no
...
-fwrapv and -ftrapv conflict, and whichever is last takes precedence
(for gcc). This meant that -ftrapv was being ignored when --enable-debug
was set. This commit correctly sets only one of them based on whether
--enable-debug is set.
Part of #4317 .
2020-01-31 13:22:07 +00:00
Jack Grigg
42a58f1e23
configure: Change default Proton to match build.sh
2020-01-31 12:12:07 +00:00
Homu
8e8a9350c3
Auto merge of #4222 - str4d:configure-updates, r=str4d
...
./configure updates
Includes code cherry-picked from the following upstream Bitcoin Core PRs:
- bitcoin/bitcoin#6748
- bitcoin/bitcoin#12373
- bitcoin/bitcoin#12692
- bitcoin/bitcoin#12901
- bitcoin/bitcoin#13005
- bitcoin/bitcoin#13445
- bitcoin/bitcoin#12686
- bitcoin/bitcoin#16435
Part of #2074 .
2020-01-30 16:01:48 +00:00
Gavin Andresen
d7a20b6373
Simple benchmarking framework
...
Benchmarking framework, loosely based on google's micro-benchmarking
library (https://github.com/google/benchmark )
Wny not use the Google Benchmark framework? Because adding Even More Dependencies
isn't worth it. If we get a dozen or three benchmarks and need nanosecond-accurate
timings of threaded code then switching to the full-blown Google Benchmark library
should be considered.
The benchmark framework is hard-coded to run each benchmark for one wall-clock second,
and then spits out .csv-format timing information to stdout. It is left as an
exercise for later (or maybe never) to add command-line arguments to specify which
benchmark(s) to run, how long to run them for, how to format results, etc etc etc.
Again, see the Google Benchmark framework for where that might end up.
See src/bench/MilliSleep.cpp for a sanity-test benchmark that just benchmarks
'sleep 100 milliseconds.'
To compile and run benchmarks:
cd src; make bench
Sample output:
Benchmark,count,min,max,average
Sleep100ms,10,0.101854,0.105059,0.103881
2020-01-22 21:40:35 +00:00
Sean Bowe
5133275342
make-release.py: Versioning changes for 2.1.1.
2020-01-17 10:26:14 -07:00
Sean Bowe
846868f0c7
make-release.py: Versioning changes for 2.1.1-rc2.
2020-01-13 17:55:01 -07:00
Sean Bowe
2c88a156ba
make-release.py: Versioning changes for 2.1.1-rc1.
2020-01-07 20:13:03 -07:00
sandakersmann
0859ea4951
Update _COPYRIGHT_YEAR in configure.ac to 2020
2019-12-27 18:04:14 +01:00
Jack Grigg
a89c1058bc
configure: Don't require RELRO and BIND_NOW when cross-compiling darwin
2019-12-10 20:40:28 +00:00
Jack Grigg
bbdba3be33
configure: Re-introduce additional sanitizer flags
...
Re-adds flags that were removed in 72aa644a2a
.
2019-11-12 14:07:34 +00:00
Carl Dong
81ddf862f7
autoconf: Sane --enable-debug defaults.
...
Don't optimize at all when --enable-debug is supplied. This makes sure
that nothing is optimized out.
2019-11-12 13:16:10 +00:00
practicalswift
a8780a982e
Add -ftrapv to DEBUG_CXXFLAGS when --enable-debug is used
2019-11-12 13:15:25 +00:00
Chun Kuan Lee
88c9e22eb2
Reset default -g -O2 flags when enable debug
2019-11-12 13:14:52 +00:00
Evan Klitzke
45e203181a
Make --enable-debug to pick better options
...
Various changes:
* Don't check $GCC and $GXX
* Prefer -Og instead of -O0
* If -g3 isn't available, use -g
This also incidentally fixes compiler warnings with GCC and glibc when using
--enable-debug, as the old default values mixed poorly with the hardening flags.
2019-11-12 13:14:23 +00:00
practicalswift
76125f64bc
build: Show enabled sanitizers in configure output
2019-11-12 13:12:08 +00:00
Evan Klitzke
ce0a143c1e
Add --with-sanitizers option to configure
...
This enables the use of different compiler sanitizers, coresponding to
the -fsanitize option in GCC and Clang.
2019-11-12 13:11:03 +00:00
murrayn
c699c93734
Add build support for 'gprof' profiling.
2019-11-12 13:07:36 +00:00
Pavel Janík
fda3f64b27
Rewrite help texts for features enabled by default.
2019-11-12 13:03:59 +00:00
Jack Grigg
72aa644a2a
Revert "Add configure flags for enabling ASan/UBSan and TSan"
...
This reverts commit c4379e3a22
.
2019-11-12 13:01:16 +00:00
Homu
98b70f1264
Auto merge of #4215 - zcash:hotfix-2.1.0-1, r=str4d
...
Hotfix v2.1.0-1
2019-11-09 08:05:33 -08:00
Jack Grigg
e07604a132
make-release.py: Versioning changes for 2.1.0-1.
2019-11-08 18:34:15 +00:00
Homu
5ec69e8c2c
Auto merge of #4171 - defuse:fuzzer-packaging, r=str4d
...
Add AFL in zcutil (with all-in-one script)
Supersedes #4156 and #4167 .
Fuzzing targets and input sets are defined by the contents of directories in `./src/fuzzing/`. Inside the directory, there's a `fuzz.cpp` and `fuzz.h` with a `main()` function that will replace `zcashd`'s actual `main()` as well as an `input` subdirectory containing the inputs, one per file. To just run a fuzzer, you can, for example...
```
make clean # if you've previously build zcashd without AFL instrumentation
./zcutil/afl/afl-getbuildrun.sh DecodeHexTx
```
Alternatively you can...
```
./zcutil/afl/afl-get.sh /tmp/afl # (or wherever you want to build AFL)
./zcutil/afl/afl-build.sh /tmp/afl DecodeHexTx -j$(nproc)
./zcutil/afl/afl-run.sh /tmp/afl DecodeHexTx
```
Run `make clean` whenever you switch between a normal build and an AFL-instrumented build.
2019-11-06 03:33:05 -08:00
Eirik Ogilvie-Wigley
5be8d1ecd1
make-release.py: Versioning changes for 2.1.0.
2019-11-02 10:53:13 -06:00
Eirik Ogilvie-Wigley
bdfed7e178
make-release.py: Versioning changes for 2.1.0-rc1.
2019-10-22 14:35:07 -06:00
Taylor Hornby
8a0fb36b21
Add configure option to replace main with a stub for fuzzing
2019-10-22 13:52:32 -06:00
Homu
961c0d58ec
Auto merge of #4060 - str4d:remove-libsnark, r=daira
...
Remove libsnark
Closes #167 . Closes #416 . Closes #418 . Closes #437 .
Closes #521 . Closes #743 . Closes #750 . Closes #894 .
Closes #903 . Closes #1125 . Closes #1136 . Closes #1240 .
Closes #1264 . Closes #1516 . Closes #1517 . Closes #1651 .
Closes #2064 . Closes #2158 . Closes #3478 . Closes #3652 .
Closes #3744 .
2019-09-26 11:21:40 -07:00
Daira Hopwood
1e11ffb6bb
make-release.py: Versioning changes for 2.0.7-3.
2019-09-24 20:58:26 +01:00
Eirik Ogilvie-Wigley
72d2ab918d
make-release.py: Versioning changes for 2.0.7-2.
2019-08-30 17:38:50 -06:00
Eirik Ogilvie-Wigley
c05652b8d9
make-release.py: Versioning changes for 2.0.7-1.
2019-08-29 12:58:35 -06:00
Jack Grigg
2a47986a00
Remove libgmp
2019-08-22 15:42:53 +01:00
Jack Grigg
6a4b8b7751
Remove libsnark from build system
2019-08-22 15:42:51 +01:00
Jack Grigg
7bd700b100
Revert "Check if OpenMP is available before using it"
...
This reverts commit daad2c2736
.
2019-08-22 15:42:50 +01:00
Jack Grigg
9a0e257526
Revert "configure: Guess -march for libsnark OPTFLAGS instead of hard-coding"
...
This reverts commit 98cfe4228c
.
2019-08-22 15:42:49 +01:00
Eirik Ogilvie-Wigley
93a03a1a20
make-release.py: Versioning changes for 2.0.7.
2019-08-19 14:36:31 -06:00
Eirik Ogilvie-Wigley
0b83bf493a
make-release.py: Versioning changes for 2.0.7-rc1.
2019-08-09 16:52:27 -06:00
Daira Hopwood
ef2dcbf1d4
make-release.py: Versioning changes for 2.0.6.
2019-06-19 00:27:11 +01:00
Daira Hopwood
f7a4aab352
make-release.py: Versioning changes for 2.0.6-rc1.
2019-06-12 16:32:57 +01:00
Eirik0
c34d253fa6
make-release.py: Versioning changes for 2.0.5-2.
2019-05-15 09:49:44 -06:00
Eirik0
f809ff997f
make-release.py: Versioning changes for 2.0.5-1.
2019-05-08 06:50:57 -06:00
Eirik0
c1daa11d7b
make-release.py: Versioning changes for 2.0.5.
2019-05-03 16:30:13 -06:00
Eirik0
6c47e6fe7b
make-release.py: Versioning changes for 2.0.5-rc1.
2019-05-01 14:15:14 -06:00
Homu
ab856294d9
Auto merge of #3505 - str4d:rust-targets, r=str4d
...
depends: Support additional cross-compilation targets in Rust
This will make it easier for third parties to cross-compile `zcashd` for other platforms. The third commit in this PR shows how to add a new target to the Rust dependency builder.
The default Rust target during cross-compilation is the canonical host, which is derived from `HOST` using `depends/config.sub`. If the canonical host differs from the required Rust target, add the necessary mapping in addition to the target itself.
Also includes fixes for cross-compiling aarch64 targets.
2019-04-23 08:33:40 -07:00
Homu
5eb7f89980
Auto merge of #3906 - sandakersmann:patch-1, r=str4d
...
Update _COPYRIGHT_YEAR in configure.ac to 2019
Update _COPYRIGHT_YEAR in configure.ac to 2019
2019-04-09 08:45:30 -07:00
Simon
108dc2df95
make-release.py: Versioning changes for 2.0.4.
2019-03-26 11:25:19 -07:00
Taylor Hornby
8088476911
Fix proton patch regression. #3916
2019-03-25 11:46:37 -06:00
Marius Kjærstad
361647d8da
Update _COPYRIGHT_YEAR in configure.ac to 2019
...
Update _COPYRIGHT_YEAR in configure.ac to 2019
2019-03-20 21:09:51 +01:00
Simon
b95cb71653
make-release.py: Versioning changes for 2.0.4-rc1.
2019-03-20 09:29:06 -07:00
Jack Grigg
98cfe4228c
configure: Guess -march for libsnark OPTFLAGS instead of hard-coding
...
When cross-compiling, this will remove the -march flag entirely unless
the user specifies CONFIGURE_FLAGS="--with-gcc-arch=<arch>".
2019-03-13 07:37:56 +00:00
mdr0id
81fbf49883
make-release.py: Versioning changes for 2.0.3.
2019-02-11 09:05:39 -08:00
mdr0id
626874390a
make-release.py: Versioning changes for 2.0.3-rc1.
2019-02-04 11:51:52 -08:00
mdr0id
d974ec3fec
make-release.py: Versioning changes for 2.0.2.
2018-11-28 11:00:22 -08:00
mdr0id
4c5943cade
make-release.py: Versioning changes for 2.0.2-rc1.
2018-11-18 10:11:46 -08:00
tpantin
cc2fcb40a1
Updating copyright year from 2017 to 2018
2018-10-27 16:19:40 -04:00
Simon
0cabb007ae
make-release.py: Versioning changes for 2.0.1.
2018-10-14 13:39:40 -07:00
mdr0id
94360cd098
make-release.py: Versioning changes for 2.0.1-rc1.
2018-10-08 12:23:18 -07:00
Jack Grigg
bce692390f
configure: Don't add -ldl to RUST_LIBS for mingw32
2018-08-17 18:54:04 +01:00
Jack Grigg
8d45f6e4e2
configure: Don't require RELRO and BIND_NOW when cross-compiling
...
mingw-w64's ld (at least mingw-w64 4.0.4-2) appears to not support -z
2018-08-17 16:43:20 +01:00
Simon
94f7201424
make-release.py: Versioning changes for 2.0.0.
2018-08-15 17:51:39 -07:00
Sean Bowe
3e9aec2a37
make-release.py: Versioning changes for 2.0.0-rc1.
2018-08-09 16:46:45 +00:00
kozyilmaz
eda9f87809
Add -Wl,-pie linker option for macOS and use it instead of -pie
2018-07-04 12:27:01 +03:00
Simon
8fc73722e8
make-release.py: Versioning changes for 1.1.2.
2018-07-01 20:07:24 -07:00
Simon
5cbbb7e375
make-release.py: Versioning changes for 1.1.2-rc1.
2018-06-22 16:55:20 -07:00
Jack Grigg
40c33db2f4
make-release.py: Versioning changes for 1.1.1.
2018-05-25 15:38:43 +12:00
Simon
d3ff27c0a6
make-release.py: Versioning changes for 1.1.1-rc2.
2018-05-23 09:27:59 -07:00
Jack Grigg
8bf890abac
make-release.py: Versioning changes for 1.1.1-rc1.
2018-05-19 09:50:15 +12:00
Homu
312f70091b
Auto merge of #3169 - ebfull:sapling-global-params, r=str4d
...
Import sapling global parameters
This will also test the API a bit by invoking the Pedersen hashes.
Part of #3053 .
2018-04-14 18:35:11 -07:00
Homu
8be9d79c21
Auto merge of #3153 - str4d:default-disable-libs, r=str4d
...
Disable building libzcashconsensus by default
The library is not currently a supported build artifact; it needs work in
order to build on certain platforms (e.g. MacOS), and its dependencies need to
be narrowed down (Equihash is not a requirement for validating scripts).
2018-04-14 13:04:35 -07:00
Sean Bowe
341b775b19
Link with -ldl
2018-04-13 22:26:24 -06:00
Jack Grigg
f64c346eca
make-release.py: Versioning changes for 1.1.0.
2018-04-11 20:02:10 -06:00
Jack Grigg
47fe5f72f4
Disable building libzcashconsensus by default
...
The library is not currently a supported build artifact; it needs work in
order to build on certain platforms (e.g. MacOS), and its dependencies need to
be narrowed down (Equihash is not a requirement for validating scripts).
2018-04-06 15:09:50 +01:00
Jack Grigg
5e11533408
make-release.py: Versioning changes for 1.1.0-rc1.
2018-04-05 03:08:20 +01:00
Homu
599c847818
Auto merge of #2820 - str4d:darwin-build-patches, r=str4d
...
[macOS] Darwin build patches
Part of #2246 .
2018-04-03 12:44:24 -07:00
Jack Grigg
d9cd254e5e
Make Rust compilation mandatory
...
The temporary integration check in CheckEquihashSolution() remains, until we
have "real" Rust code to integrate.
Closes #2688 .
2018-03-28 17:55:45 +02:00
Jack Grigg
e6e4b619a9
Use correct Boost::System linker flag for libzcash
2018-03-26 16:22:35 +02:00
Jack Grigg
7346f09026
Only set multicore flags if OpenMP is available
2018-03-19 17:32:21 +01:00
Jack Grigg
c64108d1a0
Don't require RELRO and BIND_NOW for Darwin
...
Xcode's ld (at least ld64-302.3) doesn't support -z
2018-03-19 17:32:21 +01:00
Homu
b3a656cf53
Auto merge of #3048 - str4d:analysis-tools, r=str4d
...
Add configure flags for enabling ASan/UBSan and TSan
Also adds an environment variable for setting configure flags in `./zcutil/build.sh`.
2018-03-06 11:53:43 -08:00
Homu
796ea3815e
Auto merge of #2965 - rofl0r:patch-1, r=str4d
...
fix build error due to usage of obsolete boost_system-mt
closes #2304 for real
2018-03-05 06:25:56 -08:00
Jack Grigg
c4379e3a22
Add configure flags for enabling ASan/UBSan and TSan
...
Co-authored-by: Robert Seacord <rcseacord@gmail.com>
2018-03-01 16:04:42 +00:00
Jack Grigg
1d6f7acf4d
make-release.py: Versioning changes for 1.0.15.
2018-02-28 16:44:07 +00:00