Commit Graph

323 Commits

Author SHA1 Message Date
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