dash/depends/packages
laanwj 4fde6a8f71 Merge bitcoin/bitcoin#25436: build: GCC-12 build improvements
880d4aaf81f3d5d7fbb915905c2e61b816a6a747 build: use BOOST_NO_CXX98_FUNCTION_BASE to suppress warnings (fanquake)
1bdbbbdc46c4e50bf07bc362e7e391ea1a53ea2f build: suppress array-bounds errors in libxkbcommon (fanquake)

Pull request description:

  2 changes to better support building with GCC 12, which out of the box, is currently broken if you want to build using depends.
  Prevent `-Warray-bounds` errors when building libxkbcommon. i.e:
  ```bash
  src/xkbcomp/ast-build.c:82:27: error: array subscript 'ExprDef[0]' is partly outside array bounds of 'unsigned char[32]' [-Werror=array-bounds]
     82 |     expr->expr.value_type = type;
        |     ~~~~~~~~~~~~~~~~~~~~~~^~~~~~
  src/xkbcomp/ast-build.c:75:21: note: object of size 32 allocated by 'malloc'
     75 |     ExprDef *expr = malloc(size);
        |                     ^~~~~~~~~~~~
  ```

  It might be the case that these would be fixed by updating the
  package, but that would also require installing new build tools (meson),
  as well as potentially more dependencies (wayland), and it'd need
  testing with Qt. For now, just turn the errors into wanrings.

  Define `BOOST_NO_CXX98_FUNCTION_BASE` to prevent GCC warning about the use of `std::unary_function`. i.e:
  ```bash
  /bitcoin/depends/aarch64-unknown-linux-gnu/include/boost/container_hash/hash.hpp:131:33:
  warning: 'template<class _Arg, class _Result> struct std::unary_function' is deprecated [-Wdeprecated-declarations]
    131 |         struct hash_base : std::unary_function<T, std::size_t> {};
        |                                 ^~~~~~~~~~~~~~
  In file included from /usr/include/c++/12/bits/unique_ptr.h:37,
                   from /usr/include/c++/12/memory:76,
                   from ./init.h:10,
                   from init.cpp:10:
  /usr/include/c++/12/bits/stl_function.h:117:12: note: declared here
    117 |     struct unary_function
  ```

  Boost `container_hash` (included via functional -> multi_index) uses
  [`std::unary_function`, which was deprecated in C++11](https://en.cppreference.com/w/cpp/utility/functional/unary_function), and "removed" in
  C++17. It's use causes warnings with newer compilers, i.e GCC 12.1.

  Use the MACRO outlined in https://github.com/boostorg/container_hash/issues/22, and added to Boost Config for GCC 12 in https://github.com/boostorg/config/pull/430, to prevent it's use.

  [BOOST_NO_CXX98_FUNCTION_BASE](https://www.boost.org/doc/libs/master/libs/config/doc/html/boost_config/boost_macro_reference.html):
  > The standard library no longer supports std::unary_function and std::binary_function.
  > They were deprecated in C++11 and is removed from C++14.

  Guix Build (x86_64):
  ```bash

  ```

  Guix Build (arm64):
  ```bash

  ```

ACKs for top commit:
  laanwj:
    Code review ACK 880d4aaf81f3d5d7fbb915905c2e61b816a6a747

Tree-SHA512: 10c4679c3eb788e9279acc4960731c55ae1568bd3df525d3c46f97d8b0319e7d8450b1638b6777d98111b5991dba5c787e95d80b1ac932e0b4779d4b8e74875e
2022-11-02 10:24:45 -05:00
..
backtrace.mk Partial Merge #15844: depends: Purge libtool archives 2022-05-17 12:57:47 -04:00
bdb.mk Merge #16949: build: only pass --disable-dependency-tracking to packages that understand it 2022-06-18 17:19:48 +05:30
bls-dash.mk depends: bump bls-dash to 1.2.0, cmake to 3.22.2, relic to aecdcae (#4681) 2022-02-15 22:12:11 +07:00
boost.mk remove unused boost libraries 2021-12-02 19:03:42 -05:00
cmake.mk depends: bump bls-dash to 1.2.0, cmake to 3.22.2, relic to aecdcae (#4681) 2022-02-15 22:12:11 +07:00
dbus.mk Partial Merge #15844: depends: Purge libtool archives 2022-05-17 12:57:47 -04:00
expat.mk Merge bitcoin/bitcoin#22783: build: Cleanup depends build system 2022-06-27 11:37:03 -05:00
fontconfig.mk Merge bitcoin/bitcoin#22783: build: Cleanup depends build system 2022-06-27 11:37:03 -05:00
freetype.mk Merge bitcoin/bitcoin#22783: build: Cleanup depends build system 2022-06-27 11:37:03 -05:00
gmp.mk Partial Merge #15844: depends: Purge libtool archives 2022-05-17 12:57:47 -04:00
immer.mk trivial: bump immer to 9cb6a5a, fix irange to work on c++20 (#4827) 2022-05-09 09:49:33 -05:00
libevent.mk Merge #16949: build: only pass --disable-dependency-tracking to packages that understand it 2022-06-18 17:19:48 +05:30
libnatpmp.mk merge bitcoin#21209: use newer source for libnatpmp 2022-02-26 17:49:13 +05:30
libXau.mk Merge bitcoin/bitcoin#22783: build: Cleanup depends build system 2022-06-27 11:37:03 -05:00
libxcb.mk Merge #16949: build: only pass --disable-dependency-tracking to packages that understand it 2022-06-18 17:19:48 +05:30
libxkbcommon.mk Merge bitcoin/bitcoin#25436: build: GCC-12 build improvements 2022-11-02 10:24:45 -05:00
miniupnpc.mk Merge #16049: depends: switch to secure download of all dependencies 2021-11-18 15:57:21 -05:00
native_b2.mk merge bitcoin#19764: Split boost into build/host packages + bump + cleanup 2021-08-28 00:42:09 +05:30
native_cctools.mk merge bitcoin#19817: macOS toolchain bump 2021-10-05 08:04:26 +05:30
native_clang.mk Merge bitcoin/bitcoin#24326: build: minor cleanups to native_clang package 2022-04-11 09:46:40 -07:00
native_ds_store.mk Merge #20333: build: remove native_biplist dependency 2022-03-05 13:48:08 -06:00
native_libdmg-hfsplus.mk merge bitcoin#18004: don't embed a build-id when building libdmg-hfsplus 2021-11-01 21:41:35 +05:30
native_libtapi.mk Merge bitcoin/bitcoin#24288: build, refactor: Drop redundant $(package)_download_file assignments 2022-04-11 09:46:40 -07:00
native_mac_alias.mk merge #15601: Switch to python3 2021-08-31 11:16:12 +05:30
packages.mk Merge bitcoin/bitcoin#24093: build: specify hosts for qrencode package 2022-06-27 11:37:04 -05:00
qrencode.mk Merge #16949: build: only pass --disable-dependency-tracking to packages that understand it 2022-06-18 17:19:48 +05:30
qt.mk Merge bitcoin/bitcoin#22783: build: Cleanup depends build system 2022-06-27 11:37:03 -05:00
xcb_proto.mk Merge #17698: depends: don't configure xcb_proto 2022-06-08 12:33:00 +07:00
xproto.mk Merge #16949: build: only pass --disable-dependency-tracking to packages that understand it 2022-06-18 17:19:48 +05:30
zeromq.mk Merge #16949: build: only pass --disable-dependency-tracking to packages that understand it 2022-06-18 17:19:48 +05:30