aboutsummaryrefslogtreecommitdiff
path: root/build-aux
AgeCommit message (Collapse)Author
2024-06-05build: no-longer allow GCC-10 in C++20 checkfanquake
Reverts part of fa67f096bdea9db59dd20c470c9e32f3dac5be94, now that we require a minimum of GCC 11. See also: https://github.com/bitcoin/bitcoin/pull/28349#issuecomment-1745143612.
2024-05-30Merge bitcoin/bitcoin#30049: build, test, doc: Temporarily remove ↵merge-script
Android-related stuff 5deb0b024e14c7c63d405c651d1ca323560a1c21 build, test, doc: Temporarily remove Android-related stuff (Hennadii Stepanov) Pull request description: Previously, our Android builds were geared towards generating APKs, which relied on Qt. However, after migrating to C++20, compiling for Android became unfeasible due to Qt 5.15's compatibility limitations with NDK only up to r25, which includes an outdated embedded libc++ (see https://github.com/bitcoin/bitcoin/issues/29360). All removed stuff will be reinstated after migrating the build system to CMake and upgrading Qt to version 6.x. This PR makes possible a clean migration to the CMake-based build system as it removes code, which is not used at this moment. ACKs for top commit: vasild: ACK 5deb0b024e14c7c63d405c651d1ca323560a1c21 fanquake: ACK 5deb0b024e14c7c63d405c651d1ca323560a1c21 - given none of this is currently tested/wont compile. Can be revisted in future. Tree-SHA512: 3bc2ccfe881e11cc1d78c27acd6f1d86cfba86821ef3bb5eca2e80d978fdfa13659ec82284dcaadc507e2394524dea91d4b8f81d0030c1cef9708df8be76bf07
2024-05-06build, test, doc: Temporarily remove Android-related stuffHennadii Stepanov
Previously, our Android builds were geared towards generating APKs, which relied on Qt. However, after migrating to C++20, compiling for Android became unfeasible due to Qt 5.15's compatibility limitations with NDK only up to r25, which includes an outdated embedded libc++. All removed stuff will be reinstated after migrating the build system to CMake and upgrading Qt to version 6.x."
2024-05-01Add lint check for bitcoin-config.h include IWYU pragmaMarcoFalke
Also, remove the no longer needed, remaining definitions and checks of HAVE_CONFIG_H.
2024-04-12build: Fix false positive `CHECK_ATOMIC` test for clang-15Hennadii Stepanov
2024-01-09Revert "build: Fix undefined reference to __mulodi4"MarcoFalke
This reverts commit e4c8bb62e4a6873c45f42d0d2a24927cb241a0ea.
2024-01-04build: Fix check whether `-latomic` neededHennadii Stepanov
2023-12-07build: Require C++20 compilerMarcoFalke
2023-11-02doc: update docs for CHECK_ATOMIC macrofanquake
Clarify that supported versions of GCC are not affected, and that Clang prior to version 15 still requires the explicit -latomic linking, when compiling for 32-bit.
2023-05-18build: Bump minimum supported GCC to g++-9MarcoFalke
Also, update the code to use constexpr, which does not work in g++-8. Also, drop the no longer needed build-aux/m4/l_filesystem.m4.
2023-05-17build: Bump minimum Clang to clang-10MarcoFalke
2023-01-13build: remove Boost lib detection from ax_boost_basefanquake
We don't use / link against Boost libraries, so there is no reason for us to try and detect them / muddle with LDFLAGS.
2022-09-04build: sync ax_boost_base from upstreamfanquake
I upstreamed our change, https://github.com/autoconf-archive/autoconf-archive/pull/260, so sync with upstream. Slightly simplifies #25465.
2022-07-18build: Check for std::atomic::exchange rather than std::atomic_exchangeAndrew Chow
Our usage of std::atomic is with it's own exchange function, not std::atomic_exchange. So we should be looking specifically for that function. Additionally, -pthread and -lpthread have an effect on whether -latomic will be needed, so the atomics check needs to use these flags as well. This will make the flags in use better match what is actually used when linking. This removes the need for -latomic for riscv builds, which resolves a guix cross architecture reproducibility issue.
2022-04-03build: stop overriding user CXXFLAGSfanquake
Let users have the final say in regards to CXXFLAGS.
2022-04-03build: stop overriding user CPPFLAGSfanquake
Let the user have the final say in regards to CPPFLAGS
2022-03-02build: update ax_cxx_compile_stdcxx to serial 14MarcoFalke
2022-02-13build: use header-only Boost unit testfanquake
2022-02-03build: remove Boost::system usagefanquake
2022-02-03build: remove boost::filesystem usageKiminuo
2022-02-03build: add support for std::filesystemfanquake
Add a macro to check if linking with -lstdc++fs or -lc++fs is required.
2021-12-29build: Drop redundant AC_SUBST macrosHennadii Stepanov
Variables that are declared with AC_ARG_VAR macro are substituted via AC_SUBST macro. PKG_CHECK_MODULES macro already has AC_ARG_VAR(${PACKAGE}_CFLAGS) and AC_ARG_VAR(${PACKAGE}_LIBS).
2021-12-12build, refactor: Re-use `qt_lib_suffix` variableHennadii Stepanov
2021-12-08Merge bitcoin/bitcoin#23616: build: Bump AX_PTHREAD macro to the latest versionfanquake
d796091b04f3b02d2280aaa761c2b94950199da8 build: Bump AX_PTHREAD macro to the latest version (Hennadii Stepanov) Pull request description: This PR silents autoconf >2.69 (this [one](https://formulae.brew.sh/formula/autoconf), for instance) warnings about the obsolete `$as_echo`: ``` % ./autogen.sh ... configure.ac:847: warning: $as_echo is obsolete; use AS_ECHO(["message"]) instead lib/m4sugar/m4sh.m4:692: _AS_IF_ELSE is expanded from... lib/m4sugar/m4sh.m4:699: AS_IF is expanded from... ./lib/autoconf/general.m4:2249: AC_CACHE_VAL is expanded from... ./lib/autoconf/general.m4:2270: AC_CACHE_CHECK is expanded from... build-aux/m4/ax_pthread.m4:89: AX_PTHREAD is expanded from... configure.ac:847: the top level ... ``` No other behavior changes. ACKs for top commit: fanquake: ACK d796091b04f3b02d2280aaa761c2b94950199da8 - matches upstream at serial 31. Tree-SHA512: aa9b60698f453427221444a5a63420d833c4c5dd23f8b0c74e5bd4639daec9c6cff0907a5281c00103ccb030e394998cf05653be750d4a3bf0f37ca41ff6fbe1
2021-12-07build: Bump AX_PTHREAD macro to the latest versionHennadii Stepanov
This change silents autoconf >2.69 warnings about the obsolete $as_echo.
2021-12-03build: remove x-prefix comparisonsfanquake
Very old shells suffered from bugs which meant that prefixing variables with an "x" to ensure that the lefthand side of a comparison always started with an alphanumeric character was needed. Modern shells don't suffer from this issue (i.e Bash was fixed in 1996). In any case, we've already got unprefixed checks used in our codebase, i.e https://github.com/bitcoin/bitcoin/blob/master/configure.ac#L292, and have dependencies (in depends) that also use unprefixed comparisons. I think it's time that we can consolidate on not using the x-prefix workaround. At best it's mostly just confusing. More info: https://github.com/koalaman/shellcheck/wiki/SC2268 https://www.vidarholen.net/contents/blog/?p=1035
2021-12-03build: qt 5.15.2fanquake
2021-11-12build: consistently quote AC_MSG_* argumentsfanquake
2021-11-12build: consistently quote arguments in AC_ARG_VAR()fanquake
2021-11-12build: consistently quote AC_DEFINE() argumentsfanquake
2021-11-12build: consistently quote AC_MSG_CHECKING() argumentsfanquake
2021-11-12build: AC_PATH_PROG(S) consistently quote argumentsfanquake
2021-11-12build: AX_CHECK_PREPROC_FLAG() serial 6fanquake
2021-11-12build: AX_CHECK_COMPILE_FLAG() serial 6fanquake
2021-11-12build: cleanup AX_CHECK_LINK_FLAG() usagefanquake
There should be no functional change.
2021-11-12build: AX_CHECK_LINK_FLAG serial 6fanquake
2021-10-05build: no-longer fail default configure if BDB isn't availablefanquake
Inline with moving to descriptor (sqlite) wallets by default for 0.23, this adapts the build system so that a default `./configure` invocation no-longer fails if BDB isn't present. Currently, if configure is run with no options, and no BDB is present, we'll fail with: ```bash checking for Berkeley DB C++ headers... no configure: error: libdb_cxx headers missing, Bitcoin Core requires this library for BDB wallet support (--without-bdb to disable BDB wallet support) ``` If descriptor wallets are to be the default, this behaviour no longer makes sense, as a builder should be able to configure and build, to use a wallet, without BDB installed, and without passing additional arguments, i.e `--without-bdb` or `--with-incompatible-bdb`, to configure. With this change, running configure will no-longer fail, and will instead print: ```bash checking for Berkeley DB C++ headers... no configure: WARNING: libdb_cxx headers missing configure: WARNING: Bitcoin Core requires this library for BDB (legacy) wallet support configure: WARNING: Passing --without-bdb will suppress this warning checking for sqlite3 >= 3.7.17... yes checking whether to build wallet with support for sqlite... yes ```
2021-08-27build, qt: Fix typo in QtInputSupport checkHennadii Stepanov
2021-07-29Merge bitcoin/bitcoin#21882: build: Fix undefined reference to __mulodi4fanquake
e4c8bb62e4a6873c45f42d0d2a24927cb241a0ea build: Fix undefined reference to __mulodi4 (Hennadii Stepanov) Pull request description: When compiling with clang on 32-bit systems the `__mulodi4` symbol is defined in compiler-rt only. Fixes #21294. See more: - https://bugs.llvm.org/show_bug.cgi?id=16404 - https://bugs.llvm.org/show_bug.cgi?id=28629 ACKs for top commit: MarcoFalke: tested-only ACK e4c8bb62e4a6873c45f42d0d2a24927cb241a0ea luke-jr: utACK e4c8bb62e4a6873c45f42d0d2a24927cb241a0ea fanquake: ACK e4c8bb62e4a6873c45f42d0d2a24927cb241a0ea - it's a bit of an awkward workaround to carry, but at-least it's contained to the fuzzers. Tree-SHA512: 93edb4ed568027702b1b9aba953ad50889b834ef97fde3cb99d1ce70076d9c00aa13f95c86b12d6f59b24fa90108d93742f920e15119901a2848fb337ab859a1
2021-07-27build: Fix undefined reference to __mulodi4Hennadii Stepanov
When compiling with clang on 32-bit systems the __mulodi4 symbol is defined in compiler-rt only.
2021-06-06build, qt: Fix libraries linking order for Linux hostsHennadii Stepanov
This change fixes configuring with Qt on Alpine Linux.
2021-06-03Merge bitcoin/bitcoin#22133: build, qt: Make QWindowsVistaStylePlugin ↵fanquake
available again (regression) ab86ac7739b27f2c45ae72ce4c4ebecf324b3e90 build, qt: Make QWindowsVistaStylePlugin available again (regression) (Hennadii Stepanov) Pull request description: This PR is similar to 1be8e0f2388e243d310fe7eeb46149a690de4ddf, and, actually, it is a #21376 follow up. Required as in Qt 5.12.x style plugins are separated. Fixes #22132. Fixes https://github.com/bitcoin-core/gui/issues/303. **Note for reviewers**. Besides visual changes in the GUI, you could compare the first dozen of lines in the `debug.log` file. --- #### Guix build: ``` $ HOSTS=x86_64-w64-mingw32 contrib/guix/guix-build $ find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 guix-build-ab86ac7739b2/output/dist-archive/SKIPATTEST.TAG d3f05888c95d6cf6f4a0bac952d4c0bf1e271f49cb7ab92b08080b753957e5e5 guix-build-ab86ac7739b2/output/dist-archive/bitcoin-ab86ac7739b2.tar.gz 113bb86ffd2854e08d3c0c5cd3f9728f2e4fe6c7a1813bc1c4b73eb48ad6597f guix-build-ab86ac7739b2/output/x86_64-w64-mingw32/bitcoin-ab86ac7739b2-win-unsigned.tar.gz 3fdc99754d6f26d9655a308c8847076d8fd4db8d61f4f18d8ef545894a42c10d guix-build-ab86ac7739b2/output/x86_64-w64-mingw32/bitcoin-ab86ac7739b2-win64-debug.zip 932bb69e3eb1a617f9e337b83220c9d6a277bec421f4d78e32dffde5643eb00c guix-build-ab86ac7739b2/output/x86_64-w64-mingw32/bitcoin-ab86ac7739b2-win64-setup-unsigned.exe 852f4c03ad049fcd6bb2ce25b3bcf4e18b90d34f7232660024b341bd7c8dd710 guix-build-ab86ac7739b2/output/x86_64-w64-mingw32/bitcoin-ab86ac7739b2-win64.zip c6a33a193a6b128e665198dde94758acab3a5ab7fefe0c3c6617eb98ad01693d guix-build-ab86ac7739b2/output/x86_64-w64-mingw32/inputs.SHA256SUMS ``` ACKs for top commit: laanwj: Concept and code review ACK ab86ac7739b27f2c45ae72ce4c4ebecf324b3e90 fanquake: ACK ab86ac7739b27f2c45ae72ce4c4ebecf324b3e90 Tree-SHA512: 9f5498480379fad41de616da48331e123daf5b2294ca79c33ffea2b113b314634be9a2a70bf060cb5be1392a48e9d047891e1d22c129f408f1d76a0bc888441f
2021-06-03build, qt: Make QWindowsVistaStylePlugin available again (regression)Hennadii Stepanov
In Qt 5.12.x style plugins are separated. Co-authored-by: Jarol Rodriguez <jarolrod@tutanota.com>
2021-06-02Merge bitcoin/bitcoin#21231: Add /opt/homebrew to path to look for boost ↵W. J. van der Laan
libraries 9a0969585fce03b45be7004bba865bc15909904c build: Add /opt/homebrew to path to look for boost libraries (Fu Yong Quah) Pull request description: Following the instruction in https://github.com/bitcoin/bitcoin/blob/master/doc/build-osx.md for building on the M1 Macs don't work out of the box, because homebrew now defaults to /opt/homebrew instead of /usr/local. This PR fixes that. ACKs for top commit: jonasschnelli: utACK 9a0969585fce03b45be7004bba865bc15909904c promag: Tested ACK 9a0969585fce03b45be7004bba865bc15909904c. Tree-SHA512: 472568b97fbd8623481fe6fd43b0509fa32fe7f1c1d8090321a6a6a5bdc7343d4ad4122c10dcc7c9c93068db8a3f009a73befaf1ba11e4af54a66afd2c2dbe14
2021-05-11build: improve macro for testing -latomic requirementMarcoFalke
2021-04-20build: Use XLIFF file to provide more context to Transifex translatorsHennadii Stepanov
Details: https://docs.transifex.com/formats/xliff
2021-04-03build: additional PKG_CHECK_MODULES calls in bitcoin_qt.m4fanquake
Add checks for the edid, input and service support modules.
2021-04-03build: misc doc changes in bitcoin_qt.m4fanquake
2021-04-03build: set QT_*_CFLAGS & QT_*_LIBS in PKG_CHECK_MODULES() callsfanquake
2021-04-03build: use QT_*_LIBS rather than passing lib namesfanquake