Commit Graph

27684 Commits

Author SHA1 Message Date
Kittywhiskers Van Gogh
1506d9d9b8
merge bitcoin#29072: use -no_exported_symbols on macOS 2024-11-17 07:42:09 +00:00
Kittywhiskers Van Gogh
9247960c3e
merge bitcoin#30198: qt 5.15.14 and fix macOS build with Clang 18 2024-11-17 07:42:09 +00:00
Kittywhiskers Van Gogh
5585e7a849
merge bitcoin#30074: use ENV flags in get_arch 2024-11-17 07:42:09 +00:00
Kittywhiskers Van Gogh
decd420ca1
merge bitcoin#29739: swap cctools otool for llvm-objdump 2024-11-17 07:42:09 +00:00
Kittywhiskers Van Gogh
0f8c420f2c
merge bitcoin#29890: remove some tools when cross-compiling for macOS 2024-11-17 07:42:08 +00:00
Kittywhiskers Van Gogh
936da1a3d3
merge bitcoin#29732: qt 5.15.13 2024-11-17 07:42:08 +00:00
Kittywhiskers Van Gogh
c294b47487
revert: patch qt to make placeholders differ from actual text
reverts:
- 139d70701c
2024-11-17 07:42:08 +00:00
Kittywhiskers Van Gogh
af7090c68e
merge bitcoin#29598: don't use -h with touch on OpenBSD 2024-11-17 07:42:08 +00:00
Kittywhiskers Van Gogh
ebf8ff2a34
merge bitcoin#29298: patch libtool out of libnatpmp/miniupnpc 2024-11-17 07:42:08 +00:00
Kittywhiskers Van Gogh
070b8768a5
merge bitcoin#29233: depends move macOS C(XX) FLAGS out of C & CXX 2024-11-17 07:42:08 +00:00
Kittywhiskers Van Gogh
d838481f96
revert dash#2398: Force fvisibility=hidden when compiling on macos
reverts:
- fc63f15097
2024-11-17 07:42:08 +00:00
Kittywhiskers Van Gogh
59a18f9fb9
merge bitcoin#29170: add macho branch protection check 2024-11-17 07:42:08 +00:00
Kittywhiskers Van Gogh
cb024d968b
merge bitcoin#29185: remove --enable-lto 2024-11-17 07:42:07 +00:00
Kittywhiskers Van Gogh
6d75a81f62
merge bitcoin#28880: switch to using LLVM 17.x for macOS builds 2024-11-16 02:24:19 +00:00
Kittywhiskers Van Gogh
7b0a1f2256
merge bitcoin#28622: use macOS 14 SDK (Xcode 15.0)
continuation of 9e80893a3 from dash#6150
2024-11-16 02:24:19 +00:00
Kittywhiskers Van Gogh
02eb73513e
merge bitcoin#24948: fix typo in permissions 2024-11-16 02:24:19 +00:00
Kittywhiskers Van Gogh
2739107de3
merge bitcoin#24534: make gen-sdk deterministic 2024-11-16 02:24:19 +00:00
Kittywhiskers Van Gogh
ab10bf9692
merge bitcoin#24241: cleanup doc on need of Developer Account to obtain macOS SDK 2024-11-16 02:24:19 +00:00
pasta
9bfb7006a9
Merge #6390: guix: build only supported targets using guix-start, update guix-start and guix-check to work correctly outside of containers
c5d482e0d2 chore: suppress `git config` output (UdjinM6)
8ce9bfea59 chore: tweak error message (UdjinM6)
f4d879a0b3 guix: more sanity checks for `WORKSPACE_PATH` (UdjinM6)
07f056a377 guix: Let `XCODE_SOURCE` be specified via env (UdjinM6)
74489dc82d chore: Log when preparing macOS SDK or adding `safe.directory` option (UdjinM6)
3ac5739e38 guix: "Invert" `guix-start`/`guix-check` cmd-line argument behaviour, defaults to `pwd` (UdjinM6)
187a4f1a0c guix: Avoid adding duplicate `safe.directory` option (UdjinM6)
87c978605e guix: `guix-start` should respect `SDK_PATH` (UdjinM6)
ee5f62b0db guix: build only supported targets using Guix container (Kittywhiskers Van Gogh)

Pull request description:

  ## Issue being fixed or feature implemented
  https://github.com/dashpay/dash/pull/6382#discussion_r1833266383 https://github.com/dashpay/dash/pull/6388#discussion_r1835779789

  alternative to #6388

  ## What was done?

  ## How Has This Been Tested?

  ## Breaking Changes

  ## Checklist:
  - [ ] I have performed a self-review of my own code
  - [ ] I have commented my code, particularly in hard-to-understand areas
  - [ ] I have added or updated relevant unit/integration/functional/e2e tests
  - [ ] I have made corresponding changes to the documentation
  - [ ] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_

ACKs for top commit:
  kwvg:
    ACK c5d482e0d2

Tree-SHA512: c0271f243f5912f55276fcb371a135f443f23cc1f29480f303ea77deeadb6fd7d3d97e07e6a1fa323a2b2bad1d65aa6298da33978832eb68a0a6303db3e0063c
2024-11-14 10:36:51 -06:00
pasta
2625984ddf
Merge #6384: backport: merge bitcoin#22380, #25838, #25917, #26059, #26578, #27798, #27676, #27999, #28337, #28422, #28630, #28783, partial bitcoin#24866, #25612 (toolchain backports: part 1)
d7cb92aa7a merge bitcoin#28783: remove `-bind_at_load` usage (Kittywhiskers Van Gogh)
019c9dd7f4 partial bitcoin#25612: default to using GCC tool wrappers for LTO (with GCC) (Kittywhiskers Van Gogh)
9e0b93568b partial bitcoin#24866: No longer need to hack the `PATH` variable in `config.site` (Kittywhiskers Van Gogh)
5dbc83bef1 merge bitcoin#28630: update `LD64_VERSION` to 711 (Kittywhiskers Van Gogh)
b265352c7a merge bitcoin#28422: cctools 986, ld64 711 & libtapi 1300.0.6.5 (Kittywhiskers Van Gogh)
fe94154851 merge bitcoin#28337: use Clang 15 for macOS cross-compilation (Kittywhiskers Van Gogh)
ba281413b0 ci: add missing `xorriso` `PACKAGES` entry in macOS environment (Kittywhiskers Van Gogh)
62b0213c45 merge bitcoin#27999: add macOS test for fixup_chains usage (Kittywhiskers Van Gogh)
be175091e6 merge bitcoin#27676: Bump minimum required runtime version and prepare for building with upstream LLVM (Kittywhiskers Van Gogh)
9f5d4b3719 merge bitcoin#27798: modernize clang flags for Darwin (Kittywhiskers Van Gogh)
54c538d697 merge bitcoin#26578: install binutils, not binutils-gold in depends (Kittywhiskers Van Gogh)
d0aae2bd3d merge bitcoin#26059: revert "Build depends/qt with our platform definition" (Kittywhiskers Van Gogh)
9d1cd6255d merge bitcoin#25917: libnatpmp 07004b97cf691774efebe70404cf22201e4d330d (Kittywhiskers Van Gogh)
fff0f6b628 merge bitcoin#25838: Use `mkspecs/bitcoin-linux-g++` for all Linux hosts (Kittywhiskers Van Gogh)
8d51bcc171 merge bitcoin#22380: add and use C_STANDARD and CXX_STANDARD in depends (Kittywhiskers Van Gogh)

Pull request description:

  ## Additional Information

  * Dependent on https://github.com/dashpay/dash/pull/6383
  * Dependency for https://github.com/dashpay/dash/pull/6385
  * [bitcoin#24866](https://github.com/bitcoin/bitcoin/pull/24866) is partial because f3af4f7 alters the way `dsymutil`'s location is reported, which is relevant due to the build target `osx_debug` ([source](3aa51d6515/src/Makefile.am (L1025-L1026))) using `dsymutil` to generate flat dSYM bundles to ensure that stacktraces work as expected (introduced in [dash#3006](1807c47a69 (diff-4cb884d03ebb901069e4ee5de5d02538c40dd9b39919c615d8eaa9d364bbbd77R668-R669)))

    As-is, with the changes, aberrant behaviour is noticeable when running `configure` (see below), where `depends` defines `DSYMUTIL` as being included in the target directory of the `native_clang` package... despite Guix builds using `FORCE_USE_SYSTEM_CLANG` ([source](3aa51d6515/contrib/guix/libexec/build.sh (L206))), meaning, the `native_clang` is never staged in `depends` because the build environment natively has it.

    Attempting to override it in `build.sh` yielded no results.

    <details>

    <summary>Run:</summary>

    ```
    [...]
    checking whether dsymutil needs -flat... ./configure: line 36201: /dash/depends/x86_64-apple-darwin/native/bin/x86_64-apple-darwin-dsymutil: No such file or directory
    no

    checking that generated files are newer than configure... done
    [...]
    ```

    </details>

    Which eventually results in the build failing

    <details>

    <summary>Failure:</summary>

    ```
    make: Entering directory '/distsrc-base/distsrc-22.0.0-beta.1-79-gb284e4c7cd48-x86_64-apple-darwin/src'
    for i in dashd  dash-cli dash-tx dash-wallet test/test_dash  qt/dash-qt  ; do mkdir -p $i.dSYM/Contents/Resources/DWARF && /dash/depends/x86_64-apple-darwin/native/bin/x86_64-apple-darwin-dsymutil -o $i.dSYM/Contents/Resources/DWARF/$(basename $i) $i &> /dev/null ; done
    make: *** [Makefile:22468: osx_debug] Error 127
    make: Leaving directory '/distsrc-base/distsrc-22.0.0-beta.1-79-gb284e4c7cd48-x86_64-apple-darwin/src'
    ```

    </details>

    To avoid breakage, the commit overriding `DSYMUTIL` and subsequent changes building on it (portions of [bitcoin#25612](https://github.com/bitcoin/bitcoin/pull/25612)) have been skipped.

  ## Breaking Changes

  * The minimum runtime version needed to run Dash Qt is now macOS 11 (Big Sur)

  ## Checklist

  - [x] I have performed a self-review of my own code
  - [x] I have commented my code, particularly in hard-to-understand areas **(note: N/A)**
  - [x] I have added or updated relevant unit/integration/functional/e2e tests
  - [x] I have made corresponding changes to the documentation
  - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_

ACKs for top commit:
  UdjinM6:
    utACK d7cb92aa7a

Tree-SHA512: 28c9ea13adc80a00b501afca286bd0b97e14a272bb50f578df7ab1af6ee8139f563bc5d670f0bfe3632bfab769c8228a76b5bcc51cfb727a54e31ac0f9af7a97
2024-11-14 10:20:08 -06:00
pasta
c44ae90cd5
Merge #6132: refactor: trim and document assumptions for GetQuorum, Get*MN* and friends
a014cf3703 refactor: trim and document assumptions for `Get`*`MN`* and friends (Kittywhiskers Van Gogh)
8c9f57dac4 refactor: trim and document assumptions for `GetQuorum` and friends (Kittywhiskers Van Gogh)

Pull request description:

  ## Additional Information

  This pull request aims to document assumptions when handling `CDeterministicMNCPtr` and `CQuorumCPtr` entities, which can be `nullptr`. In some instances, mishandling or missing validation logic can result in an assertion failure or a null pointer dereference (in both circumstances, the client will crash).

  While in other cases, assumptions are made based on prior code that affirms that the returned value will be valid. For the former, bail-out logic has been introduced and for the latter, assertions and code comments have been added.

  ## Checklist

  - [x] I have performed a self-review of my own code
  - [x] I have commented my code, particularly in hard-to-understand areas
  - [x] I have added or updated relevant unit/integration/functional/e2e tests **(note: N/A)**
  - [x] I have made corresponding changes to the documentation **(note: N/A)**
  - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_

ACKs for top commit:
  knst:
    utACK a014cf3703
  UdjinM6:
    utACK a014cf3703

Tree-SHA512: e21824d61d81c4ca4b5b4a545a833932946eb0f279d15c586bb5eae96aefcc88d1e3b3fdfa7a01d161f1650351a7cac4bc917b2d1109d77ea2eedd8408d8f37d
2024-11-14 09:57:33 -06:00
Kittywhiskers Van Gogh
a014cf3703
refactor: trim and document assumptions for Get*MN* and friends 2024-11-14 10:08:05 +00:00
Kittywhiskers Van Gogh
8c9f57dac4
refactor: trim and document assumptions for GetQuorum and friends
Some portions of the codebase make implicit assumptions that `GetQuorum`
will not return a `nullptr` by not performing checking for it or make
explicit assumptions by `assert`ing not-`nullptr`.

Let's document explicit assumptions, document implicit assumptions and
soften some hard assumptions where softening is possible.
2024-11-14 10:07:34 +00:00
UdjinM6
c5d482e0d2
chore: suppress git config output 2024-11-13 21:17:31 +03:00
UdjinM6
8ce9bfea59
chore: tweak error message 2024-11-13 21:09:03 +03:00
Kittywhiskers Van Gogh
d7cb92aa7a
merge bitcoin#28783: remove -bind_at_load usage 2024-11-13 11:09:11 +00:00
Kittywhiskers Van Gogh
019c9dd7f4
partial bitcoin#25612: default to using GCC tool wrappers for LTO (with GCC)
excludes:
- 6fdc13c61f0e5ef6be0c03fa475741ab2cd57672
2024-11-13 11:08:30 +00:00
Kittywhiskers Van Gogh
9e0b93568b
partial bitcoin#24866: No longer need to hack the PATH variable in config.site
excludes:
- f3af4f7a182f81269c193d5d1fd0effb9161f7c6
- efa3a807a677659b0b74cdeda944e7c8ce0157fb
2024-11-13 11:08:22 +00:00
Kittywhiskers Van Gogh
5dbc83bef1
merge bitcoin#28630: update LD64_VERSION to 711 2024-11-13 11:07:47 +00:00
Kittywhiskers Van Gogh
b265352c7a
merge bitcoin#28422: cctools 986, ld64 711 & libtapi 1300.0.6.5 2024-11-13 11:07:39 +00:00
Kittywhiskers Van Gogh
fe94154851
merge bitcoin#28337: use Clang 15 for macOS cross-compilation 2024-11-13 11:07:39 +00:00
Kittywhiskers Van Gogh
ba281413b0
ci: add missing xorriso PACKAGES entry in macOS environment 2024-11-13 11:07:39 +00:00
Kittywhiskers Van Gogh
62b0213c45
merge bitcoin#27999: add macOS test for fixup_chains usage 2024-11-13 11:07:38 +00:00
Kittywhiskers Van Gogh
be175091e6
merge bitcoin#27676: Bump minimum required runtime version and prepare for building with upstream LLVM 2024-11-13 11:07:38 +00:00
Kittywhiskers Van Gogh
9f5d4b3719
merge bitcoin#27798: modernize clang flags for Darwin 2024-11-13 11:07:38 +00:00
Kittywhiskers Van Gogh
54c538d697
merge bitcoin#26578: install binutils, not binutils-gold in depends 2024-11-13 11:07:38 +00:00
Kittywhiskers Van Gogh
d0aae2bd3d
merge bitcoin#26059: revert "Build depends/qt with our platform definition" 2024-11-13 11:07:38 +00:00
Kittywhiskers Van Gogh
9d1cd6255d
merge bitcoin#25917: libnatpmp 07004b97cf691774efebe70404cf22201e4d330d 2024-11-13 11:07:38 +00:00
Kittywhiskers Van Gogh
fff0f6b628
merge bitcoin#25838: Use mkspecs/bitcoin-linux-g++ for all Linux hosts 2024-11-13 11:07:38 +00:00
Kittywhiskers Van Gogh
8d51bcc171
merge bitcoin#22380: add and use C_STANDARD and CXX_STANDARD in depends 2024-11-13 11:07:38 +00:00
pasta
3aa51d6515
Merge #6376: refactor: a bunch of trivial-ish headers improvements
e9387eef69 refactor: remove unused includes and forward declarations from headers (Konstantin Akimov)
f2a186f3f3 refactor: remove definition IsQuorumDKGEnabled from header (Konstantin Akimov)
8a7941bd0d refactor: merge helper GetCoinbaseTx which is used only once into GetNonNullCoinbaseChainlock (Konstantin Akimov)

Pull request description:

  ## Issue being fixed or feature implemented
  Split from https://github.com/dashpay/dash/pull/6375 and added some extra

  ## What was done?
  Tidy up headers of evo/ and llmq/:
   - removed unused includes and added missing
   - removed unused forward declarations and added missing
   - removed helper GetCoinbaseTx, moved helper IsQuorumDKGEnabled from header to implementation

  ## How Has This Been Tested?
  Run unit and functional tests

  Compilation time _in theory_ should be improved, in really it shaved just 2-5 seconds from 5 minutes by my benchmark.

  ## Breaking Changes
  N/A

  ## Checklist:
  - [x] I have performed a self-review of my own code
  - [x] I have commented my code, particularly in hard-to-understand areas
  - [x] I have added or updated relevant unit/integration/functional/e2e tests
  - [x] I have made corresponding changes to the documentation
  - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_

ACKs for top commit:
  UdjinM6:
    utACK e9387eef69
  PastaPastaPasta:
    utACK e9387eef69

Tree-SHA512: 7b4795fe0bcea23b9f368a962b888d610cac94b42dd6419cfe06977c1a28bbe27a7a2ae2e4cd730ec0ca4f8b333f656a601ebb90bc271f4117dec7a424a08b45
2024-11-12 08:46:07 -06:00
pasta
b12f5f5f7c
Merge #6381: refactor: a bunch of trivial-ish code improvements
c32fac079f refactor: more `CGovernanceVote` cleanups (UdjinM6)
efc8c99139 refactor: Introduce `get_chain_conf_names` (UdjinM6)
519966efff refactor: Refactor `CCbTx` python class to match c++ declaration (UdjinM6)
38a0b5ac04 refactor: Move `HasChainLock()` calls out of loops (UdjinM6)
6370c7a9e5 refactor: Tidy up `CGovernanceVote` a bit (UdjinM6)
ae675d5314 refactor: Drop redundant `SplitBy` (UdjinM6)
88c3a13674 refactor: Use `switch..case` instead of `if` in `AvailableCoins` (UdjinM6)
38b304c7b0 refactor: Make bls worker aggregator batch size const (rename it accordingly) (UdjinM6)
0cf7d4a65e refactor: Turn `ReadResult` into enum class (UdjinM6)
d9aab0fa60 refactor: Rename `masternode_state_t` and turn it into enum class (UdjinM6)

Pull request description:

  ## Issue being fixed or feature implemented

  ## What was done?

  ## How Has This Been Tested?

  ## Breaking Changes

  ## Checklist:
  - [ ] I have performed a self-review of my own code
  - [ ] I have commented my code, particularly in hard-to-understand areas
  - [ ] I have added or updated relevant unit/integration/functional/e2e tests
  - [ ] I have made corresponding changes to the documentation
  - [ ] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_

ACKs for top commit:
  knst:
    utACK c32fac079f
  PastaPastaPasta:
    utACK c32fac079f

Tree-SHA512: 7a33d2d535f73c858cd01a442fb28793b1ea185a2eb50d6bce86b44be1012b7427649e3496647b4a0a7d7816dbbb50f138fa701d203c2aa1e7a515c9c9a0e931
2024-11-12 08:41:11 -06:00
UdjinM6
f4d879a0b3
guix: more sanity checks for WORKSPACE_PATH 2024-11-12 16:36:32 +03:00
UdjinM6
07f056a377
guix: Let XCODE_SOURCE be specified via env 2024-11-12 16:36:28 +03:00
UdjinM6
74489dc82d
chore: Log when preparing macOS SDK or adding safe.directory option 2024-11-12 15:28:55 +03:00
UdjinM6
3ac5739e38
guix: "Invert" guix-start/guix-check cmd-line argument behaviour, defaults to pwd 2024-11-12 15:17:13 +03:00
UdjinM6
187a4f1a0c
guix: Avoid adding duplicate safe.directory option 2024-11-12 15:13:31 +03:00
pasta
be97bfeedc
Merge #6383: backport: merge bitcoin#28370, #28759, #28580, #28786, #29078, #27897, #29651, #29695, #29673, #29828, #29846, #30231, #30438, partial bitcoin#30511 (guix backports: part 5)
91b7ef8607 merge bitcoin#30438: build Linux GCC with --enable-cet (Kittywhiskers Van Gogh)
cfc6cba4ea partial bitcoin#30511: GCC 12 consolidation (Kittywhiskers Van Gogh)
06f54318b3 merge bitcoin#30231: bump time-machine to f0bb724211872cd6158fce6162e0b8c73efed126 (Kittywhiskers Van Gogh)
5b292eec92 merge bitcoin#29846: replace GCC unaligned VMOV patch with binutils patch (Kittywhiskers Van Gogh)
4d1f7dccd7 merge bitcoin#29828: remove `gcc-toolchain static` from Windows build (Kittywhiskers Van Gogh)
f321d3de0c merge bitcoin#29673: use GCC 11 in macOS build env (Kittywhiskers Van Gogh)
d570e2d21f merge bitcoin#29695: build GCC with --enable-standard-branch-protection (Kittywhiskers Van Gogh)
c965943a57 merge bitcoin#29651: bump time-machine to dc4842797bfdc5f9f3f5f725bf189c2b68bd6b5a (Kittywhiskers Van Gogh)
59a125a5ad merge bitcoin#27897: use GCC 12.3.0 to build releases (Kittywhiskers Van Gogh)
a701b06435 merge bitcoin#29078: Bump guix time-machine to unlock riscv64 metal (Kittywhiskers Van Gogh)
d4b10a3813 merge bitcoin#28786: switch to 6.1 kernel headers over 5.15 (Kittywhiskers Van Gogh)
c3718700ab merge bitcoin#28580: update time-machine (Kittywhiskers Van Gogh)
d36c9b6466 merge bitcoin#28759: update signapple to latest master (Kittywhiskers Van Gogh)
38c71d88b4 merge bitcoin#28370: remove GCC 10 workaround from NSIS (Kittywhiskers Van Gogh)

Pull request description:

  ## Additional Information

  * Dependent on https://github.com/dashpay/dash/pull/6382
  * Dependency for https://github.com/dashpay/dash/pull/6384

  ## Breaking Changes

  None expected

  ## Checklist

  - [x] I have performed a self-review of my own code
  - [x] I have commented my code, particularly in hard-to-understand areas **(note: N/A)**
  - [x] I have added or updated relevant unit/integration/functional/e2e tests **(note: N/A)**
  - [x] I have made corresponding changes to the documentation **(note: N/A)**
  - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_

ACKs for top commit:
  UdjinM6:
    utACK 91b7ef8607

Tree-SHA512: 0cfb436a430cf4b624a48a9928ecac9cd5c50e88e51ed04e7d1d0100968af8be1183364f035ac75153781a5e1616aa2f6fadabf0a1c03ec4b66dedea544b77ad
2024-11-11 20:19:16 -06:00
UdjinM6
87c978605e
guix: guix-start should respect SDK_PATH 2024-11-11 20:56:16 +03:00
Kittywhiskers Van Gogh
ee5f62b0db
guix: build only supported targets using Guix container 2024-11-11 11:30:31 +03:00