Commit Graph

27703 Commits

Author SHA1 Message Date
pasta
018d80a896
Merge #6398: backport: 24306, 24312, 24371
ba7e500062 refactor: more of 24306 (GetPathArg in Dash-specific code) (UdjinM6)
562e3f7b18 Merge bitcoin/bitcoin#24371: util: Fix ReadBinaryFile reading beyond maxsize (MarcoFalke)
3383b79049 Merge bitcoin/bitcoin#24312: addrman: Log too low compat value (MarcoFalke)
d96983a327 Merge bitcoin/bitcoin#24306: util: Make ArgsManager::GetPathArg more widely usable (MarcoFalke)

Pull request description:

  ## Issue being fixed or feature implemented
  A few simple backports

  ## What was done?

  ## How Has This Been Tested?
  Built locally; see CI

  ## Breaking Changes
  None

  ## Checklist:
    _Go over all the following points, and put an `x` in all the boxes that apply._
  - [ ] 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
  - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_

ACKs for top commit:
  UdjinM6:
    utACK ba7e500062
  kwvg:
    utACK ba7e500062

Tree-SHA512: 42f41cb04945af15bfa4581ae53354eec88d4cdec44ab7c0100edcfe2fa71a95e05073e76b8d3935bd05cd5ee1f5cd5b34d2ed99e7eb551475abdc77f1ffff7c
2024-11-18 14:04:24 -06:00
pasta
cde4d0294a
Merge #6401: ci: deduplicate depends building
2f18c1af30 ci: deduplicate depends building (pasta)

Pull request description:

  ## Issue being fixed or feature implemented
  Currently we build the same host / options multiple times. Don't do this!

  ## What was done?
  Now building depends only twice

  ## How Has This Been Tested?
  Local CI appears to be working

  ## Breaking Changes
  None

  ## Checklist:
    _Go over all the following points, and put an `x` in all the boxes that apply._
  - [ ] 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
  - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_

ACKs for top commit:
  kwvg:
    utACK 2f18c1af30
  UdjinM6:
    utACK 2f18c1af30

Tree-SHA512: 67460508a2e9458152f7c8bb5f4a1a786aedcfded0e5c54fb03d85010ba8bb87362b66a0c322b51aeba75752e36418fc235d8dc4197ef10695e234ccc5a00a39
2024-11-18 13:18:18 -06:00
pasta
65c5f46ea7
Merge #6402: ci: cache built
9604d87af1 ci: cache depends/built like gitlab (pasta)

Pull request description:

  ## Issue being fixed or feature implemented
  Depends build didn't seem to be caching properly

  ## What was done?
  changed depends/${{ matrix.host }} to depends/built as gitlab does

  ## How Has This Been Tested?
  Depends "build" now takes only ~1 minute instead of ~15 minutes in CI: https://github.com/PastaPastaPasta/dash/actions/runs/11899038167

  ## Breaking Changes
  None

  ## 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
  - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_

ACKs for top commit:
  UdjinM6:
    utACK 9604d87af1
  kwvg:
    utACK 9604d87af1

Tree-SHA512: 63d2321f41b284be6cc2f0b2d53294cf220b1623af464d411225c0e43ec14268e1c3a701e23973e5c641925b6ea28dcb92062d8cefb9e6baed6ac5bb619ce1a1
2024-11-18 13:16:57 -06:00
pasta
2f18c1af30
ci: deduplicate depends building 2024-11-18 12:45:15 -06:00
pasta
9604d87af1
ci: cache depends/built like gitlab 2024-11-18 12:28:52 -06:00
pasta
8fa1c245d4
Merge #6397: ci: add powerpc64 to GH Guix job matrix
c5d5b14205 ci: add powerpc64 to GH Guix job matrix (UdjinM6)

Pull request description:

  ## Issue being fixed or feature implemented
  I guess we should make sure that binaries for every possible platform can be built via Guix with no issues even if we do not want to provide "official" binaries for it.

  ## 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)_

Top commit has no ACKs.

Tree-SHA512: 6464b68a47e680bb379c82842599200d6917adb8f1493fa75ac80ddc7a6fea92a9190215cfa3f32b0bd88e2dd0425d4eb13846ea2d7e19e144afff9c1171ff13
2024-11-18 12:28:29 -06:00
UdjinM6
ba7e500062
refactor: more of 24306 (GetPathArg in Dash-specific code) 2024-11-18 12:20:38 -06:00
MarcoFalke
562e3f7b18
Merge bitcoin/bitcoin#24371: util: Fix ReadBinaryFile reading beyond maxsize 2024-11-18 12:20:13 -06:00
MarcoFalke
3383b79049
Merge bitcoin/bitcoin#24312: addrman: Log too low compat value
fa097d074bc1afcc2a52976796bb618f7c6a68b3 addrman: Log too low compat value (MarcoFalke)

Pull request description:

  Before this patch, when writing a negative `lowest_compatible` value, it would be read as a positive value. For example `-32` will be read as `224`. There is generally nothing wrong with that. Though, similarly there shouldn't be anything wrong with refusing to read a negative value. I find the code after this patch more logical than before. Also, this allows dropping a file-wide sanitizer suppression.

  In practice none of this should ever happen. Bitcoin Core would never write a negative `lowest_compatible` in normal operation, unless the file storage is later corrupted by external influence.

ACKs for top commit:
  mzumsande:
    re-ACK fa097d074bc1afcc2a52976796bb618f7c6a68b3

Tree-SHA512: 9aae7b8fe666f52f667f149667025e0160cef1a793cc4d392e36608f65c2bee8096da429235118f40a3368f327aabe30f3732ae78c5874648ea6f423f2687b65
2024-11-17 17:49:40 -06:00
MarcoFalke
d96983a327
Merge bitcoin/bitcoin#24306: util: Make ArgsManager::GetPathArg more widely usable
60aa179d8f9a675efa2d78eaadc09e3ba450f50f Use GetPathArg where possible (Pavol Rusnak)
5b946edd73640c6ecdfb4cbac1d4351e634678dc util, refactor: Use GetPathArg to read "-settings" value (Ryan Ofsky)
687e655ae2970f2f13aca0267c7de86dc69be763 util: Add GetPathArg default path argument (Ryan Ofsky)

Pull request description:

  Improve `ArgsManager::GetPathArg` method added in recent PR #24265, so it is usable more places. This PR starts to use it for the `-settings` option. This can also be helpful for #24274 which is parsing more path options.

  - Add `GetPathArg` default argument so it is less awkward to use to parse options that have default values.
  - Fix `GetPathArg` negated argument handling. Return path{} not path{"0"} when path argument is negated.
  - Add unit tests for default and negated cases
  - Move `GetPathArg` method declaration next to `GetArg` declaration. The two methods are close substitutes for each, so this should help keep them consistent and make them more discoverable.

ACKs for top commit:
  w0xlt:
    Tested ACK 60aa179 on Ubuntu 21.10
  hebasto:
    re-ACK 60aa179d8f9a675efa2d78eaadc09e3ba450f50f

Tree-SHA512: 3d24b885d8bbeef39ea5d0556e2f09b9e5f4a21179cef11cbbbc1b84da29c8fb66ba698889054ce28d80bc25926687654c8532ed46054bf5b2dd1837866bd1cd
2024-11-17 17:49:05 -06:00
pasta
6a51ab271d
Merge #6385: backport: merge bitcoin#24241, #24534, #24948, #28622, #28880, #29185, #29170, #29233, #29298, #29598, #29732, #29890, #29739, #30074, #30198, #29072 (toolchain backports: part 2)
1506d9d9b8 merge bitcoin#29072: use `-no_exported_symbols` on macOS (Kittywhiskers Van Gogh)
9247960c3e merge bitcoin#30198: qt 5.15.14 and fix macOS build with Clang 18 (Kittywhiskers Van Gogh)
5585e7a849 merge bitcoin#30074: use ENV flags in get_arch (Kittywhiskers Van Gogh)
decd420ca1 merge bitcoin#29739: swap cctools otool for llvm-objdump (Kittywhiskers Van Gogh)
0f8c420f2c merge bitcoin#29890: remove some tools when cross-compiling for macOS (Kittywhiskers Van Gogh)
936da1a3d3 merge bitcoin#29732: qt 5.15.13 (Kittywhiskers Van Gogh)
c294b47487 revert: patch qt to make placeholders differ from actual text (Kittywhiskers Van Gogh)
af7090c68e merge bitcoin#29598: don't use -h with touch on OpenBSD (Kittywhiskers Van Gogh)
ebf8ff2a34 merge bitcoin#29298: patch libtool out of libnatpmp/miniupnpc (Kittywhiskers Van Gogh)
070b8768a5 merge bitcoin#29233: depends move macOS C(XX) FLAGS out of C & CXX (Kittywhiskers Van Gogh)
d838481f96 revert dash#2398: Force fvisibility=hidden when compiling on macos (Kittywhiskers Van Gogh)
59a18f9fb9 merge bitcoin#29170: add macho branch protection check (Kittywhiskers Van Gogh)
cb024d968b merge bitcoin#29185: remove `--enable-lto` (Kittywhiskers Van Gogh)
6d75a81f62 merge bitcoin#28880: switch to using LLVM 17.x for macOS builds (Kittywhiskers Van Gogh)
7b0a1f2256 merge bitcoin#28622: use macOS 14 SDK (Xcode 15.0) (Kittywhiskers Van Gogh)
02eb73513e merge bitcoin#24948: fix typo in permissions (Kittywhiskers Van Gogh)
2739107de3 merge bitcoin#24534: make gen-sdk deterministic (Kittywhiskers Van Gogh)
ab10bf9692 merge bitcoin#24241: cleanup doc on need of Developer Account to obtain macOS SDK (Kittywhiskers Van Gogh)

Pull request description:

  ## Additional Information

  * Dependent on https://github.com/dashpay/dash/pull/6384
  * Dependency for https://github.com/dashpay/dash/pull/6389
  * The Qt patch introduced in [dash#5596](https://github.com/dashpay/dash/pull/5596), `fix_qt_placeholders.patch`, was a portion of a suggested workaround for QTBUG-92199 ([source](https://bugreports.qt.io/browse/QTBUG-92199?focusedId=669719&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-669719)) but since then, a fix ([here](https://codereview.qt-project.org/c/qt/qtbase/+/434310)) has made its way to 5.15.12 and we are upgrading to 5.15.14 from 5.15.11.

    So we can safely remove this patch.

  ## 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
  - [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 1506d9d9b8
  PastaPastaPasta:
    utACK 1506d9d9b8

Tree-SHA512: df8e4ea0ce9e7b269d248518698f0566b5eca1a54cdfb53f5b213b90fb5177e5a5df44eaeb6f3fc014cd93351c9245736bb2fd52bc2af4ae274d8fa93e601b07
2024-11-17 14:15:38 -06:00
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
pasta
12e5e32d83
Merge #6396: refactor: Drop llmq split migration logic (dead code)
4622d9e04a refactor: Drop llmq split migration logic (dead code) (UdjinM6)

Pull request description:

  ## Issue being fixed or feature implemented
  This code was introduced in #4141 and it does essentially nothing now (db is not empty so it bails out early). It was used by masternodes only so it's safe to drop it completely, no outdated node needs it.

  ## 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:
  PastaPastaPasta:
    utACK 4622d9e04a
  knst:
    utACK 4622d9e04a
  kwvg:
    utACK 4622d9e04a

Tree-SHA512: 7ed85734c0ae13d5ffabe9e0d9cf9754f6beed5f915f1d4a5aa53d1cf32f3d2d0dedf357966d03101fa1f3f9ba67f048e5c4b9bf6d9ffbafe4a50049ddc87eda
2024-11-17 00:59:36 -06:00
pasta
d159abc422
Merge #6394: feat: update IS database instantly, no more dependency on DIP0020
89528bc4dd feat: overwrite outdated IS db with a new empty one (UdjinM6)
3b7df9aea0 feat: update IS database instantly, no more dependency on DIP0020 (Konstantin Akimov)

Pull request description:

  ## Issue being fixed or feature implemented

  Upgrade of IS database depends on activation of DIP0020. It's no more need because it is activated long time ago.

  ## What was done?
  Removed dependency of IS database upgrade on DIP0020. Also removed LOCK for `::mempool.cs` which is not actually has been used inside GetTransaction during upgrade: no mempool -- no lock.

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

  ## 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

ACKs for top commit:
  UdjinM6:
    utACK 89528bc4dd
  PastaPastaPasta:
    utACK 89528bc4dd

Tree-SHA512: 50feb2a8d0bb88b6443e4fc019c04187a5e1901f50bd08085b1e81379b297dd929b33fc2990c1a78e0b8607ba590069eca7927f3e1df5564b0709caafa2b4326
2024-11-16 20:08:40 -06:00
UdjinM6
c5d5b14205
ci: add powerpc64 to GH Guix job matrix 2024-11-17 02:22:54 +03:00
UdjinM6
4622d9e04a
refactor: Drop llmq split migration logic (dead code) 2024-11-16 23:44:32 +03:00
pasta
495171b2e7
Merge #6395: refactor: drop unused InstantSendManager from blockheaderToJSON
3a48c7f503 refactor: drop unused InstantSendManager from blockheaderToJSON (Konstantin Akimov)

Pull request description:

  ## What was done?
  Trivial refactoring - see a commit

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

  ## 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 3a48c7f503
  PastaPastaPasta:
    utACK 3a48c7f503

Tree-SHA512: d33fbc504f8be076bd89a6651b38c27323b371009c2839dd7125ac0b75d5bc89344e247b13e19af1ddc57f80cb30693673a54311afd41cadd0b76a471d96712f
2024-11-16 13:58:56 -06:00
UdjinM6
89528bc4dd
feat: overwrite outdated IS db with a new empty one 2024-11-16 23:03:34 +07:00
Konstantin Akimov
3b7df9aea0
feat: update IS database instantly, no more dependency on DIP0020
This fork is activated long time ago, no more possible conflicts
2024-11-16 17:48:19 +07:00
Konstantin Akimov
3a48c7f503
refactor: drop unused InstantSendManager from blockheaderToJSON 2024-11-16 17:44:31 +07: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