bitcoin/depends/packages
W. J. van der Laan ecf5f2c1a0
Merge bitcoin/bitcoin#21889: macho: check for control flow instrumentation
42b589d18f scripts: test for MACHO control flow instrumentation (fanquake)
469a5bc4fa build: build Boost with -fcf-protection when targeting Darwin (fanquake)

Pull request description:

  Addresses the macOS portion of #21888.

  Build Boost with `-fcf-protection` when targeting Darwin. This should be ok, because our cross-compiler (Clang 10) supports the option, and I'd expect all versions of Apple Clang being used to compile Core would also support it. Building Boost with this option is required so that the `main` provided to `test_bitcoin` has instrumentation.

  Note that the presence of instrumentation does not mean it will be used, as that is determined at runtime by the CPU.
  From the Intel control flow enforcement documentation:

  > The ENDBR32 and ENDBR64 instructions will have the same effect as the NOP instruction on Intel 64 processors that do not support CET. On processors supporting CET, these instructions do not change register or flag state. This allows CET instrumented programs to execute on processors that do not support CET. Even when CET is supported and enabled, these NOP–like instructions do not affect the execution state of the program, do not cause any additional register pressure, and are minimally intrusive from power and performance perspectives.

  Follow up from #21135.

  Guix builds:
  ```bash
  663df8471400f06d4da739e39a886aa17f56a36d66e0ff7cc290686294ef39c9  guix-build-42b589d18fed/output/dist-archive/bitcoin-42b589d18fed.tar.gz
  45e841661e1659a634468b6f8c9fb0a7956c31ba296f1fd0c02cd880736d6127  guix-build-42b589d18fed/output/x86_64-apple-darwin18/bitcoin-42b589d18fed-osx-unsigned.dmg
  0ea85c99fef35429a5048fa14850bce6b900eaa887aeea419b019852f8d2be78  guix-build-42b589d18fed/output/x86_64-apple-darwin18/bitcoin-42b589d18fed-osx-unsigned.tar.gz
  85857a5a4a5d4d3a172d6c361c12c4a94f6505fc12b527ea63b75bfe54ee1001  guix-build-42b589d18fed/output/x86_64-apple-darwin18/bitcoin-42b589d18fed-osx64.tar.gz
  ```

  Gitian builds:
  ```bash
  # macOS:
  bdfd677a6b88273a741b433e1e7f554af50cc76b3342d44ab0c441e2b40efc96  bitcoin-42b589d18fed-osx-unsigned.dmg
  f3b2d09f3bea7a5cc489b02e8e53dd76a9922338500fae79cad0506655af56f9  bitcoin-42b589d18fed-osx-unsigned.tar.gz
  29d5ad5e46bc9fb0056922a8b47c026e5e9f71e6cf447203b74644587d6fb6f7  bitcoin-42b589d18fed-osx64.tar.gz
  663df8471400f06d4da739e39a886aa17f56a36d66e0ff7cc290686294ef39c9  src/bitcoin-42b589d18fed.tar.gz
  366f8d7a2fc1f3e22cb1018043099126a71ce65380cc27b1c3280cce42d06c98  bitcoin-core-osx-22-res.yml
  ```

ACKs for top commit:
  laanwj:
    Code review ACK 42b589d18f

Tree-SHA512: 12cb8d462d64d845b9fe48c5c6978892adff8bf5b5572bb29f35df1f6176e47b32a68bcb6e4883c7d9454e76e8868851005a7325916852a2d0d32659ac7dae3f
2021-05-14 12:26:38 +02:00
..
bdb.mk Android : Ensure pic build for bdb 2020-12-04 01:57:54 +02:00
boost.mk build: build Boost with -fcf-protection when targeting Darwin 2021-05-09 13:38:48 +08:00
capnp.mk depends: add MULTIPROCESS depends option 2020-05-12 09:47:06 -04:00
expat.mk build: pass --enable-option-checking to applicable packages 2019-10-11 13:31:50 -04:00
fontconfig.mk build: use patch rather than sed in fontconfig package 2020-08-25 14:37:35 +08:00
freetype.mk build: pass --enable-option-checking to applicable packages 2019-10-11 13:31:50 -04:00
libevent.mk build: pass _WIN32_WINNT=0x0601 when building libevent for Windows 2020-06-30 13:25:09 +08:00
libmultiprocess.mk depends: add MULTIPROCESS depends option 2020-05-12 09:47:06 -04:00
libnatpmp.mk build: compile libnatpmp with -DNATPMP_STATICLIB on Windows 2021-03-04 12:34:46 +08:00
libXau.mk build: pass --enable-option-checking to applicable packages 2019-10-11 13:31:50 -04:00
libxcb.mk build: qt 5.12.10 2021-03-10 12:57:22 +08:00
libxkbcommon.mk build: Cleanup libxkbcommon_postprocess_cmds 2021-03-12 14:51:10 +02:00
miniupnpc.mk build: miniupnpc 2.2.2 2021-03-23 08:39:16 +08:00
native_b2.mk depends: boost: Split into non-/native packages 2020-11-23 15:50:54 -05:00
native_capnp.mk depends: add MULTIPROCESS depends option 2020-05-12 09:47:06 -04:00
native_cctools.mk build: no longer patch threading out of ld64 2021-05-01 13:39:45 +08:00
native_clang.mk build: Clang 10.0.1 2021-05-01 13:39:44 +08:00
native_ds_store.mk depends: native_ds_store 1.3.0 2020-11-11 08:01:02 +08:00
native_libdmg-hfsplus.mk guix: Build dmg as a static binary 2021-04-05 11:00:39 -04:00
native_libmultiprocess.mk Update libmultiprocess library 2021-04-23 03:02:50 -05:00
native_libtapi.mk build: libtapi 1100.0.11 2021-05-01 13:39:44 +08:00
native_mac_alias.mk build: mac_alias 2.2.0 2021-04-11 16:38:33 -04:00
packages.mk build: split native_cctools 2021-03-30 14:54:08 +08:00
qrencode.mk Merge #16110: depends: Add Android NDK support 2019-11-04 13:32:19 +01:00
qt.mk Merge bitcoin/bitcoin#21593: build, qt, refactor: Get rid of some sed command instances 2021-05-12 14:24:47 +10:00
sqlite.mk Add sqlite to travis and depends 2020-10-14 11:18:13 -04:00
xcb_proto.mk depends: don't configure xcb_proto 2019-12-08 17:55:11 -05:00
xproto.mk build: pass --enable-option-checking to applicable packages 2019-10-11 13:31:50 -04:00
zeromq.mk depends: build zeromq with -std=c++17 2020-11-24 10:18:06 +08:00