Commit Graph

416 Commits

Author SHA1 Message Date
Cory Fields 32bd3908dd build: always attempt to enable targeted sse42 cxxflags
This avoids a counter-intuitive drop in performance when manually adjusting the
flags.

(cherry picked from commit bitcoin/bitcoin@9baca41985)
2022-07-16 10:13:26 +00:00
Pieter Wuille 7b93eb28fa Protect SSE4 code behind a compile-time flag
(cherry picked from commit bitcoin/bitcoin@6b8d872e5e)
2022-07-16 10:13:26 +00:00
Kris Nuttycombe 40df3d402e
Merge pull request #6042 from nuttycom/feature/clock_capability
Add a clock for testing with an offset from the system clock.
2022-07-15 08:23:23 -06:00
Jack Grigg 13d1a3fc6a make-release.py: Versioning changes for 5.1.0. 2022-07-08 02:52:02 +00:00
Ben Woosley 66725e686c build: Detect gmtime_* definitions via configure
This improves the portability of the codebase and fixes compilation
with mingw-w64 7.0+.

Co-authored-by: fanquake <fanquake@gmail.com>

Zcash: We do not yet have FormatISO8601DateTime or FormatISO8601Date,
so those parts of the backport are omitted.

(cherry-picked from commit bitcoin/bitcoin@a46484c8b3)
2022-07-07 14:00:03 -06:00
sasha 1d996a080b make-release.py: Versioning changes for 5.1.0-rc1. 2022-07-05 22:11:55 +00:00
Jack Grigg ee23587268 depends: Add cxxbridge command to dependencies 2022-05-27 20:15:05 +00:00
Cory Fields f1c166d3db threads: add a thread_local autoconf check
(cherry picked from commit bitcoin/bitcoin@f7f7e2cd34)
2022-05-14 01:25:08 +00:00
practicalswift eeba670d94 Use -Wthread-safety-analysis if available (+ -Werror=thread-safety-analysis if --enable-werror)
Zcash:
- Also added it to HARDENED_CXXFLAGS so we use it by default.
- We use -Werror if --enable-werror, so don't need the second part.

(cherry picked from commit bitcoin/bitcoin@4616c825a4)
2022-05-14 01:25:08 +00:00
Kris Nuttycombe 04d0da1391 make-release.py: Versioning changes for 5.0.0. 2022-05-10 19:48:53 -06:00
Jack Grigg a51cbfc78c make-release.py: Versioning changes for 5.0.0-rc1. 2022-05-09 15:29:29 +00:00
Kris Nuttycombe b384e411c4 make-release.py: Versioning changes for 4.7.0. 2022-04-13 21:48:12 -06:00
Jack Grigg 96edba2e41 make-release.py: Versioning changes for 4.7.0-rc1. 2022-03-22 21:04:37 +00:00
Kris Nuttycombe d724c81289
Merge pull request #5438 from sandakersmann/master
Update copyright year to 2022
2022-03-18 16:13:43 -06:00
Jack Grigg 5bf937b422 make-release.py: Versioning changes for 4.6.0-1. 2022-01-05 20:16:10 +00:00
Marius Kjærstad bf1cc206c0
Update copyright year to 2022 2021-12-27 00:30:51 +01:00
Sasha baa3de9250 make-release.py: Versioning changes for 4.6.0. 2021-12-23 00:13:51 +00:00
Jack Grigg d4b850d3f7 make-release.py: Versioning changes for 4.6.0-rc1. 2021-12-18 04:23:05 +00:00
Jack Grigg a4419b5f85 make-release.py: Versioning changes for 4.5.1-1. 2021-10-08 17:00:27 +00:00
Jack Grigg 3822c716fd make-release.py: Versioning changes for 4.5.1. 2021-09-29 01:40:44 +01:00
Jack Grigg 1bd9152daa make-release.py: Versioning changes for 4.5.0. 2021-09-23 04:12:06 +01:00
Jack Grigg 8a9f29eaf1 make-release.py: Versioning changes for 4.5.0-rc1. 2021-09-16 23:15:40 +01:00
Jack Grigg d51c3884bf make-release.py: Versioning changes for 4.4.1. 2021-06-09 23:14:25 +01:00
Jack Grigg 81ee683c38 make-release.py: Versioning changes for 4.4.1-rc1. 2021-06-08 22:38:24 +01:00
Jack Grigg 8943abd937 build: Link to libbcrypt on Windows
This fixes a linker issue now that the minimum Windows version is
Windows 7, and dependencies now try to use BCryptGenRandom.
2021-06-05 15:40:04 +01:00
Luke Dashjr 5bac61119a Move Win32 defines to configure.ac to ensure they are globally defined
common.vcxproj used for MSVC builds

(cherry picked from commit 1ccb9f30c040daf688f89f0d63e9f5e7b131d193)
2021-06-05 15:22:00 +01:00
fanquake 7de8682236 build: enforce minimum required Windows version (7)
Instruct the linker to set the major & minor subsystem versions in the PE
header to 6 & 1 (NT 6.1 which corresponds to Windows 7). Similar to
macOS, the binary will now refuse to run on unsupported versions of
Windows.

(cherry picked from commit e8a8cff07c409c7eecd478d3df36c7ba92c59730)
2021-06-05 15:20:22 +01:00
fanquake 865c64a8f8 build: don't pass -w when building for Windows
This has been around since the introduction of autotools. However at
this point I'm not sure we'd every want to suppress all warnings when
performing a build, and given that CXX FLAGS will have been overriden
when cross-compiling for Windows (using depends), this would rarely,
if-ever be used anyways.

From https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html:
-w

    Inhibit all warning messages.

(cherry picked from commit 89fea68ffdbd97394d891177e664f896b3e7d1e6)
2021-06-05 15:20:22 +01:00
fanquake 6ae6c9c90d build: remove --large-address-aware linker flag
This flag was used when building 32-bit Windows executables, which we no-longer
do, and is not accepted by the linker for any of the hosts we currently build
for. i.e:

```bash
checking whether the linker accepts -Wl,--large-address-aware... no
```

--large-address-aware
    If given, the appropriate bit in the "Characteristics" field of the COFF
    header is set to indicate that this executable supports virtual addresses
    greater than 2 gigabytes. This should be used in conjunction with the /3GB
    or /USERVA=value megabytes switch in the "[operating systems]" section of
    the BOOT .INI. Otherwise, this bit has no effect. [This option is specific
    to PE targeted ports of the linker]

You can check that the appropriate bit in the COFF header of our current
Windows binaries is still be set using dumpbin. i.e:

```powershell
dumpbin /headers .\bitcoind.exe

FILE HEADER VALUES
<snip>
26 characteristics
     Executable
     Line numbers stripped
     Application can handle large (>2GB) addresses
```

(cherry picked from commit acd644b83d789a6cdfbeda19732119534d10058e)
2021-06-05 15:19:13 +01:00
fanquake 9a4fb0ed4a build: remove configure checks for win libraries we don't link against
While cross compiling, HOST=x86_64-w64-mingw32, none of these
libs actually seem to be passed to the linker.

(cherry picked from commit 2525c096b002a89d4c561e1474800496ad8ebd7e)
2021-06-05 15:19:13 +01:00
fanquake c77d14d2d7 build: remove WINDOWS_BITS from build system
We no longer build/ship 32 bit windows executables.

(cherry picked from commit abc147de95fb294a2c0a3105695e708517010322)
2021-06-05 15:19:13 +01:00
Chun Kuan Lee 4ea1f9cd66 windows: Set _WIN32_WINNT to 0x0601 (Windows 7)
Also remove all defines in many places and define it in configure stage to keep consistency.

(cherry picked from commit 1bd9ffdd44000b208d29d35451f4dc9f1ac9318f)
2021-06-05 14:47:14 +01:00
Jack Grigg c54fdeed35 make-release.py: Versioning changes for 4.4.0. 2021-04-15 16:42:53 +12:00
Jack Grigg f4d88aec20 make-release.py: Versioning changes for 4.4.0-rc1. 2021-04-09 17:32:49 +12:00
Daira Hopwood f52260253c configure.ac: tidy up spacing.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-04-06 16:40:31 +01:00
Daira Hopwood 78ab48669d configure.ac: Add check for ntdll on Windows.
This fixes #5051, which is a regression caused by the dependency on the ntapi crate
(via mio, via tokio) added by #4947.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-04-06 16:39:45 +01:00
Jack Grigg 205b40da9a make-release.py: Versioning changes for 4.3.0. 2021-02-24 20:12:54 +00:00
Jack Grigg e8096841a3 make-release.py: Versioning changes for 4.3.0-rc1. 2021-02-19 21:51:00 +00:00
Pieter Wuille 1f41301c97 Add a FastRandomContext::randrange and use it
(cherry picked from commit 4fd2d2fc97e21efceab849576e544160fd5e3e3d)
2021-02-17 15:43:43 -07:00
Jack Grigg 90232f65ae Rename libzcashconsensus.la -> libzcash_script.la 2021-01-25 22:20:25 +00:00
Igor Cota 3e672a58ac Define TARGET_OS when host is android 2021-01-25 16:15:06 +00:00
Cory Fields 959e7be477 build: add missing leveldb defines
src/leveldb/build_detect_platform shows how upstream defines them.

These platform may not be able to fully build or run Bitcoin, but defining all
known to leveldb saves future hassle.

Now that all possible platforms are enumerated, specifying an unknown one is an
error.
2021-01-25 13:21:04 +00:00
fanquake 5d8fdbf738 [build] Add NETBSD leveldb target to configure.ac 2021-01-25 13:20:46 +00:00
Wladimir J. van der Laan 5304bcd6bd build: Updates for OpenBSD
- LevelDB platform was not guessed correctly (it ended up defining
  `-DOS_OPENBSD59` instead of `-DOS_OPENBSD`)

- On OpenBSD there is no convenience link from `python3.5` to `python3`:
  add detection for other python interpreter names.

- If it has to guess the LevelDB OS, print a autoconf warning so that
  the user can check.

Zcash: Excludes the Python change.
2021-01-25 13:18:53 +00:00
randy-waterhouse f5d8c93380 Re-instate TARGET_OS=linux in configure.ac. Removed by 351abf9e035. 2021-01-25 13:14:41 +00:00
Homu e528caf7fb Auto merge of #4937 - centromere:freebsd, r=daira
Add support for FreeBSD 12

The pre-built binaries for clang 8 on FreeBSD do not ship with `libc++api`, so `libcxxrt` from the base system is used instead.

Please ensure this checklist is followed for any pull requests for this repo. This checklist must be checked by both the PR creator and by anyone who reviews the PR.
* [ ] Relevant documentation for this PR has to be completed and reviewed by @mdr0id before the PR can be merged
* [ ] A test plan for the PR must be documented in the PR notes and included in the test plan for the next regular release

As a note, all buildbot tests need to be passing and all appropriate code reviews need to be done before this PR can be merged
2021-01-09 16:24:10 +00:00
Marius Kjærstad 61955934be
Update _COPYRIGHT_YEAR in configure.ac to 2021 2021-01-01 04:07:45 +01:00
Alex Wied eadc3d48f2 Add support for FreeBSD 12 2020-12-30 19:50:25 -05:00
Kris Nuttycombe c75e663c2a make-release.py: Versioning changes for 4.2.0. 2020-12-21 12:43:00 -07:00
Kris Nuttycombe f8bb085d85 make-release.py: Versioning changes for 4.2.0-rc1. 2020-12-19 09:45:41 -07:00