Commit Graph

44 Commits

Author SHA1 Message Date
Kittywhiskers Van Gogh
1d8b8900ef
merge bitcoin#26557: Update Boost to 1.81.0 in depends 2024-08-13 22:53:49 +07:00
Kittywhiskers Van Gogh
1ad64dadca
merge bitcoin#25873: Boost 1.80.0 2024-08-13 22:53:49 +07:00
Kittywhiskers Van Gogh
aa361b2717
merge bitcoin#24301: header-only Boost 2024-08-13 22:53:48 +07:00
Kittywhiskers Van Gogh
a3b79267e0
merge bitcoin#20744: Use std::filesystem. Remove Boost Filesystem & System 2024-08-06 18:00:39 +00:00
Kittywhiskers Van Gogh
28b96a071d
merge bitcoin#22840: fix unoptimized libraries in depends 2024-08-06 18:00:37 +00:00
Kittywhiskers Van Gogh
bbc99571f3
fix: sidestep c++17 std::unary_function removal by compiling boost with c++11
we can revert this after upgrading to boost 1.81
2024-07-11 19:00:02 +00:00
Kittywhiskers Van Gogh
3c622a3916
revert: partial dash#5610 (make depends compilable with Xcode 15 on macos)
reverted commit:
- aa7ba58804
2024-07-11 16:37:03 +00:00
Kittywhiskers Van Gogh
77862d8f5f
merge bitcoin#23494: minor boost tidyups 2024-06-25 13:39:57 +00:00
Wladimir J. van der Laan
0e8a4d54a4
Merge #21064: refactor: use std::shared_mutex & remove Boost Thread
060a2a64d40d75fecb60b7d2b9946a67e46aa6fc ci: remove boost thread installation (fanquake)
06e1d7d81d5a56d136c6fc88f09a2b0654a164f9 build: don't build or use Boost Thread (fanquake)
7097add83c8596f81be9edd66971ffd2486357eb refactor: replace Boost shared_mutex with std shared_mutex in sigcache (fanquake)
8e55981ef834490c438436719f95cbaf888c4914 refactor: replace Boost shared_mutex with std shared_mutex in cuckoocache tests (fanquake)

Pull request description:

  This replaces `boost::shared_mutex` and `boost::unique_lock` with [`std::shared_mutex`](https://en.cppreference.com/w/cpp/thread/shared_mutex) & [`std::unique_lock`](https://en.cppreference.com/w/cpp/thread/unique_lock).

  Even though [some concerns were raised](https://github.com/bitcoin/bitcoin/issues/16684#issuecomment-726214696) in #16684 with regard to `std::shared_mutex` being unsafe to use across some glibc versions, I still think this change is an improvement. As I mentioned in #21022, I also think trying to restrict standard library feature usage based on bugs in glibc is not only hard to do, but it's not currently clear exactly how we do that in practice (does it also extend to patching out use in our dependencies, should we be implementing more runtime checks for features we are using, when do we consider an affected glibc "old enough" not to worry about? etc). If you take a look through the [glibc bug tracker](https://sourceware.org/bugzilla/describecomponents.cgi?product=glibc) you'll no doubt find plenty of (active) bug reports for standard library code we already using. Obviously not to say we shouldn't try and avoid buggy code where possible.

  Two other points:

  [Cory mentioned in #21022](https://github.com/bitcoin/bitcoin/pull/21022#issuecomment-769274179):
  > It also seems reasonable to me to worry that boost hits the same underlying glibc bug, and we've just not happened to trigger the right conditions yet.

  Moving away from Boost to the standard library also removes the potential for differences related to Boosts configuration. Boost has multiple versions of `shared_mutex`, and what you end up using, and what it's backed by depends on:
  * The version of Boost.
  * The platform you're building for.
  * Which version of `BOOST_THREAD_VERSION` is defined: (2,3,4 or 5) default=2. (see [here](https://www.boost.org/doc/libs/1_70_0/doc/html/thread/build.html#thread.build.configuration) for some of the differences).
  * Is `BOOST_THREAD_V2_SHARED_MUTEX` defined? (not by default). If so, you might get the ["less performant, but more robust"](https://github.com/boostorg/thread/issues/230#issuecomment-475937761) version of `shared_mutex`.

  A lot of these factors are eliminated by our use of depends, but users will have varying configurations. It's also not inconceivable to think that a distro, or some package manager might start defining something like `BOOST_THREAD_VERSION=3`. Boost tried to change the default from 2 to 3 at one point.

  With this change, we no longer use Boost Thread, so this PR also removes it from depends, the build system, CI etc.

  Previous similar PRs were #19183 & #20922. The authors are included in the commits here.
  Also related to #21022 - pthread sanity checking.

ACKs for top commit:
  laanwj:
    Code review ACK 060a2a64d40d75fecb60b7d2b9946a67e46aa6fc
  vasild:
    ACK 060a2a64d40d75fecb60b7d2b9946a67e46aa6fc

Tree-SHA512: 572d14d8c9de20bc434511f20d3f431836393ff915b2fe9de5a47a02dca76805ad5c3fc4cceecb4cd43f3ba939a0508178c4e60e62abdbaaa6b3e8db20b75b03
2024-01-16 09:29:52 -06:00
Kittywhiskers Van Gogh
fb327d81bd
build: drop unused variable replacement and comment
we're currently using boost 1.77, this replacement was dropped in its
patch form in bitcoin#19764 (backported as 6a367fc1 in dash#4356), the
comment was dropped in bitcoin#19761 but the change is in this commit
instead due to direct relevance.
2024-01-10 12:11:17 -06:00
laanwj
7917168158
Merge bitcoin/bitcoin#24383: build: upgrade depends Boost to 1.77.0
4bba7ab2ffc3a79acfec48727d3c8b35d8ee3f8f build: upgrade depends Boost to 1.77.0 (Pasta)

Pull request description:

  This primarily improves support for external signing, as it includes
  multiple bugfixes for Boost Process. As well as various improvements to
  the multi-index library.

  #23340 rebased.

  Guix build:
  ```bash
  bash-5.1# find guix-build-$(git rev-parse --short=12 HEAD)/output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
  b5186404303e2a6573a6df404f943f6d172d4965bd9a78d7f9d1f7cf7080b774  guix-build-4bba7ab2ffc3/output/aarch64-linux-gnu/SHA256SUMS.part
  9d03756665fac8cb1e3af6623b8cede3032bad6cbc15739db5145c4813f0c2f9  guix-build-4bba7ab2ffc3/output/aarch64-linux-gnu/bitcoin-4bba7ab2ffc3-aarch64-linux-gnu-debug.tar.gz
  32897b5fda018d4fe57f65234da9620202de0b774ae4fa454309460ee451ef98  guix-build-4bba7ab2ffc3/output/aarch64-linux-gnu/bitcoin-4bba7ab2ffc3-aarch64-linux-gnu.tar.gz
  f64304b16fbfaf7a7330842bf8f535acacdcdd36ddf185f5dfcdbe184f05571f  guix-build-4bba7ab2ffc3/output/arm-linux-gnueabihf/SHA256SUMS.part
  f5cb4c742edf42aec2f64f97c727a8e325050d465ea58ff9c22f8b5b31073879  guix-build-4bba7ab2ffc3/output/arm-linux-gnueabihf/bitcoin-4bba7ab2ffc3-arm-linux-gnueabihf-debug.tar.gz
  0f834947a3eb2d802ba4d1d6dbd26fea9d3453bd8c2dedb06fcfbf1498b45433  guix-build-4bba7ab2ffc3/output/arm-linux-gnueabihf/bitcoin-4bba7ab2ffc3-arm-linux-gnueabihf.tar.gz
  389feef0bf716dd7ea7d72d755f999dbd2d3160f895a606ad6f4a14e97083a47  guix-build-4bba7ab2ffc3/output/arm64-apple-darwin/SHA256SUMS.part
  a9c791b6bcc2bbeff0c94f71dbd9967676559297e089079216253e303acd82cb  guix-build-4bba7ab2ffc3/output/arm64-apple-darwin/bitcoin-4bba7ab2ffc3-arm64-apple-darwin.tar.gz
  55cdef30941f3fc4716bae5be1230b529b171c5e2cd0c18cc57a15206d742a13  guix-build-4bba7ab2ffc3/output/arm64-apple-darwin/bitcoin-4bba7ab2ffc3-osx-unsigned.dmg
  5343499bd15ae59627d3b33259ac7ccec8c841c8bc27cd1a47b41389fae48ac3  guix-build-4bba7ab2ffc3/output/arm64-apple-darwin/bitcoin-4bba7ab2ffc3-osx-unsigned.tar.gz
  fbb99e7f3d5249b92c90ba312ac769adfc9813fb70468decd09f722826f48119  guix-build-4bba7ab2ffc3/output/dist-archive/bitcoin-4bba7ab2ffc3.tar.gz
  c5f466eb462dccea8daa10307ff140844f38097b198282600528acd486915e97  guix-build-4bba7ab2ffc3/output/powerpc64-linux-gnu/SHA256SUMS.part
  174c75cbf16f3ca593d1c684b597eb8dac483dc10ae3cd46cbff61d3f70e70a5  guix-build-4bba7ab2ffc3/output/powerpc64-linux-gnu/bitcoin-4bba7ab2ffc3-powerpc64-linux-gnu-debug.tar.gz
  1e6692f4876ba13847cd3722c6e2cd3ee886ebede6b12dffa01b1dbc55186358  guix-build-4bba7ab2ffc3/output/powerpc64-linux-gnu/bitcoin-4bba7ab2ffc3-powerpc64-linux-gnu.tar.gz
  dac7f60b99dfb96daf8c3c9a0b98d4ecc3a7ecf7ad6a8dfb879cb61aa4f2e429  guix-build-4bba7ab2ffc3/output/powerpc64le-linux-gnu/SHA256SUMS.part
  4cef32efcd9fa591a53ea5354d63e9d6c0d663ae7748599b34427f17ef462f1c  guix-build-4bba7ab2ffc3/output/powerpc64le-linux-gnu/bitcoin-4bba7ab2ffc3-powerpc64le-linux-gnu-debug.tar.gz
  d5ac47db91eb0232075a1138cc0ae212516e4f7fa022b2de181533d411a0d507  guix-build-4bba7ab2ffc3/output/powerpc64le-linux-gnu/bitcoin-4bba7ab2ffc3-powerpc64le-linux-gnu.tar.gz
  7eb67ea46c7ade1f51928648e664bc2295a96ae0e3f144cf6903f277334b228f  guix-build-4bba7ab2ffc3/output/riscv64-linux-gnu/SHA256SUMS.part
  b97d248731573ef3911f4d2750409615a940f975d9c4de783c76beb897a4dd53  guix-build-4bba7ab2ffc3/output/riscv64-linux-gnu/bitcoin-4bba7ab2ffc3-riscv64-linux-gnu-debug.tar.gz
  7d2b0cef4cc83dbf54cd1af18fe4cb7b7ea408747e30993c20e1012b1b628373  guix-build-4bba7ab2ffc3/output/riscv64-linux-gnu/bitcoin-4bba7ab2ffc3-riscv64-linux-gnu.tar.gz
  a45eb59edc5a1e8742dd9fce1a9916b43ab2894ff8f3c62d5110a9afa35cf9e9  guix-build-4bba7ab2ffc3/output/x86_64-apple-darwin/SHA256SUMS.part
  504efd5c1131407a3e3120e77a1abe1e183727d995e7cb944c9c8089518314a0  guix-build-4bba7ab2ffc3/output/x86_64-apple-darwin/bitcoin-4bba7ab2ffc3-osx-unsigned.dmg
  0f14f26d2074de96d078ea31ef249a6f9ba2db1fec86856496fca5ab2f517cb7  guix-build-4bba7ab2ffc3/output/x86_64-apple-darwin/bitcoin-4bba7ab2ffc3-osx-unsigned.tar.gz
  574aab5513038a80c6cac16eb927d7dcec27b880ffd313c6b56272ed577e2df3  guix-build-4bba7ab2ffc3/output/x86_64-apple-darwin/bitcoin-4bba7ab2ffc3-osx64.tar.gz
  ec7861c9840c2888022a81d5fbb807284c07f603053ba9cc200c103e26379e7f  guix-build-4bba7ab2ffc3/output/x86_64-linux-gnu/SHA256SUMS.part
  9d1d2fb313d15048ae6b10b9c50942a00ef8c65c367b25656810b3819fdc95ff  guix-build-4bba7ab2ffc3/output/x86_64-linux-gnu/bitcoin-4bba7ab2ffc3-x86_64-linux-gnu-debug.tar.gz
  d668065e2de147d352914f0d2f5769051f0ec0a29ce208979758724fe556cc04  guix-build-4bba7ab2ffc3/output/x86_64-linux-gnu/bitcoin-4bba7ab2ffc3-x86_64-linux-gnu.tar.gz
  aa1f2ce87f707d28c137775830da128bd2b49b20eb258ff46a78f1ada1516480  guix-build-4bba7ab2ffc3/output/x86_64-w64-mingw32/SHA256SUMS.part
  bcf3f19575662dadf3f77ca0bd5d4a3268314fd97c46f88679af1977d83863c5  guix-build-4bba7ab2ffc3/output/x86_64-w64-mingw32/bitcoin-4bba7ab2ffc3-win-unsigned.tar.gz
  c8d64700e03757a5f46ec04dc7e2cdf9435ebdee9e6cea5789475ca86461f912  guix-build-4bba7ab2ffc3/output/x86_64-w64-mingw32/bitcoin-4bba7ab2ffc3-win64-debug.zip
  92bd0cb7a43551e89910e8fabfb2915da03835ac074331436e1f159760ed8d19  guix-build-4bba7ab2ffc3/output/x86_64-w64-mingw32/bitcoin-4bba7ab2ffc3-win64-setup-unsigned.exe
  e414c9a500ebf49ef1f2625c6763b945a13d5f1d1c56463f642f325e054f87ed  guix-build-4bba7ab2ffc3/output/x86_64-w64-mingw32/bitcoin-4bba7ab2ffc3-win64.zip
  ```

ACKs for top commit:
  laanwj:
    ACK 4bba7ab2ffc3a79acfec48727d3c8b35d8ee3f8f
  hebasto:
    ACK 4bba7ab2ffc3a79acfec48727d3c8b35d8ee3f8f

Tree-SHA512: f0eb26860180c45ef169ea7fe70d43e68abf103185d5b9a1021d3c72e1cb0126809f43e56ec378430ab3625a09c025797fe1438360832101439c2b014287dc47
2023-12-06 18:40:36 -06:00
fanquake
cb63ec1e32
Merge bitcoin/bitcoin#24276: build, refactor: Improve package version usage
edc9a6afdc6926b40de2fed897b9b866d58f28d2 build, refactor: Reuse expat package version in its download path (Hennadii Stepanov)
4bb7821ab243325467a89ff8ffc1bed290f2cb58 build, refactor: Use conventional version notation for boost package (Hennadii Stepanov)

Pull request description:

  `boost` package:
  - `.` is used as a separator in versions of other depends packages.

  `expat` package:
  - reuse package version in its download path

  ---

  The straightforward way to verify this PR:
  ```
  $ cd depends
  $ make clean-all
  $ make boost_fetched
  $ make expat_fetched
  ```

ACKs for top commit:
  prusnak:
    ACK edc9a6a
  shaavan:
    ACK edc9a6afdc6926b40de2fed897b9b866d58f28d2

Tree-SHA512: c15d672fe34ac59850425d3d6a6eee5f720e16d227aad1332a563b218465879b7ee6fb865dd1bac06aedf356f9bb1c67112d9d88da8f877f04838b50a9dc97be
2023-12-06 18:38:53 -06:00
UdjinM6
aa7ba58804
fix(depends): make it compilable with Xcode 15 on macos 2023-10-12 18:57:46 +03:00
Kittywhiskers Van Gogh
7181c721e2 merge bitcoin#23998: support OpenBSD in depends
excludes `fix_openbsd_test_lib.patch` as it's already present

```
Preprocessing boost...
patching file boost/test/impl/execution_monitor.ipp
Reversed (or previously applied) patch detected!  Assume -R? [n]
```
2023-08-08 06:05:02 -05:00
Kittywhiskers Van Gogh
df50931ae2 merge bitcoin#23948: add FreeBSD support to depends 2023-08-08 06:05:02 -05:00
Kittywhiskers Van Gogh
e39a1de731 merge bitcoin#23839: build with and test for control flow instrumentation on x86_64 2023-06-07 14:42:02 +05:30
Kittywhiskers Van Gogh
1e9278ea11 merge bitcoin#23535: check for control flow instrumentation 2023-06-07 14:42:02 +05:30
Kittywhiskers Van Gogh
8dab7027e3 merge bitcoin#22070: don't use cf-protection when targeting arm-apple-darwin 2023-06-07 14:42:02 +05:30
Kittywhiskers Van Gogh
cdedbea0b4 merge bitcoin#21889: check for control flow instrumentation 2023-06-07 14:42:02 +05:30
Pasta
7d614fabc6
remove unused boost libraries 2021-12-02 19:03:42 -05:00
PastaPastaPasta
25a965d691
Merge pull request #4582 from kittywhiskers/openssl_bump
merge bitcoin#16110, #16413, #16837, #17466, #19959, #19867, #20447, #21363, partial #17730: bump qt
2021-11-30 11:24:40 -05:00
PastaPastaPasta
8d2b6bb684
depends: upgrade depends Boost to 1.73 (#4576) 2021-11-29 08:28:09 +03:00
Kittywhiskers Van Gogh
56d04ade06 merge bitcoin#16110: Add Android NDK support 2021-11-24 10:02:59 +05:30
Kittywhiskers Van Gogh
c81f430289 merge #20471: use C++17 in depends 2021-09-15 11:30:57 +05:30
Kittywhiskers Van Gogh
ad7045047b partial merge #15382: add RunCommandParseJSON
contains only 8314c23d7b39fc36dde8b40b03b6efbe96f85698
2021-09-04 10:19:31 +05:30
Kittywhiskers Van Gogh
a003178978 partial merge #18677: Multiprocess build support
The bare minimum necessary change for #19764. Marked as "partial merge" for attribution only, otherwise considered unmerged
2021-08-28 00:42:10 +05:30
Kittywhiskers Van Gogh
6a367fc198 merge bitcoin#19764: Split boost into build/host packages + bump + cleanup 2021-08-28 00:42:09 +05:30
Kittywhiskers Van Gogh
ca0f5f5078 merge bitcoin#18820: Propagate well-known vars into depends 2021-08-28 00:42:02 +05:30
fanquake
9f23cc0c52 Merge #17928: depends: Consistent use of package variable
22c5a986e95d2bd14273465ca0e15fbe3772252d depends: Consistent use of package variable (Peter Bushnell)

Pull request description:

  All other mk files use the package variable consistently except for the two instances here, which have always been here, since depends was introduced in 0.10.

ACKs for top commit:
  fanquake:
    ACK 22c5a986e95d2bd14273465ca0e15fbe3772252d - tested a `make boost -C depends/ -j8`.

Tree-SHA512: 41766a328603db2ebb1f23ea0c5b2936de043587dd86396eaba73524d2f5bdeff25447040e33d61de2ef612a920281cd81c6fac097913270287f344beb839c5d
2021-07-13 21:17:15 -05:00
Wladimir J. van der Laan
a9fb8a57ab
Merge #13482: Remove boost::program_options dependency
f447a0a7079619f0d650084df192781cca9fd826 Remove program options from build system (Chun Kuan Lee)
11588c639e8912f1b28e981c1a2a0e4306dbd093 Replace boost program_options (Chun Kuan Lee)

Pull request description:

  Concept from #12744, but without parsing negated options.

Tree-SHA512: 7f418744bb8934e313d77a5f162633746ef5d043de802b9c9cd9f7c1842e7e566eb5f171cd9e2cc13317281b2449c6fbd553fa4f09b837e6af2f5d2b2aabdca2
2021-07-02 12:59:27 +03:00
Kittywhiskers Van Gogh
d03eed72a7
Merge #21662: build: update Boost download URL (#4140)
See 36c10b9f4b from https://github.com/bitcoin/bitcoin/pull/21662/commits
2021-05-06 13:14:22 -04:00
Wladimir J. van der Laan
badc91f98e Merge #17231: depends: fix boost mac cross build with clang 9+
50037e97d11356218c4b36767232e47b74742b0b depends: fix boost mac cross build with clang 9+ (Cory Fields)

Pull request description:

  The ancient "darwin-4.9.1" profile has long been used to match against clang, which prior to version 9, reported 4.9.1 as its version when invoking "clang++ -dumpversion". Presumably this was a historical compatibility quirk related to Apple's switch from gcc to clang.

  This was "fixed" in clang 9.0, so that -dumpversion reports the real version. Unfortunately that had the side-effect of breaking the (brittle) boost compiler detection.

  Move to the seemingly more-correct "clang-darwin" profile, which passes the checks and builds correctly.

  Also switch to using ar rather than libtool for archiving, as it's what the clang-darwin profile expects to be using.

  Note that because this is using a different profile, some of the final command-line arguments end up changing. Those changes look sane at a glance.

ACKs for top commit:
  fanquake:
    ACK 50037e97d11356218c4b36767232e47b74742b0b - tested on on macOS, will wait for the gitian build.

Tree-SHA512: eac1f353513a445add6fbece7fc78dd3dbdde5e2219bfb7739b82f40bb14de449667a94d2e303d43c67d9b38e7ceb0ba5f0d8fe20b40be2017b1ca0875467c2c
2021-02-17 14:53:57 +01:00
Wladimir J. van der Laan
d390a1412e Merge #15461: [depends] update to Boost 1.70
2620e24b83d16bf0f2bfe360dee1e98b4be59ca5 [depends] boost: update to 1.70 (Sjors Provoost)

Pull request description:

  Version [1.70](https://www.boost.org/users/history/version_1_70_0.html) is most recent.

  Versions needed for:
  * 1.66: #12557: fixes the single arm64 configuration ([06ee5b5](06ee5b54ef))

ACKs for commit 2620e2:

Tree-SHA512: 6e0174f1d92c2c24314c0689d4809e048914f8f42d17aa73799f5ee232169e0dd0ed71f5f973903c44c08309f2837c629c493f15e5c31ec6c7bd1daae5f3b25f
2021-02-17 14:22:09 +01:00
Wladimir J. van der Laan
32c0e0f9b1
Merge #10325: 0.15.0 Depends Updates
355c116 [depends] dbus 1.10.18 (fanquake)
a8d7474 [depends] ccache 3.3.4 (fanquake)
daeb767 [depends] libevent 2.1.8-stable (fanquake)
d78269a [depends] Boost 1.64.0 (fanquake)
7d92c6f [depends] Latest config.guess and config.sub (fanquake)

Tree-SHA512: c63cdffabb1f57b7efd71c85f845c30ce00cda56f6d665f935674f3324563a7364f3bc30c105a1ee1064f1d24eb7345d7e44791cd471094dcc5e20f307fec4cb
2019-06-19 08:20:15 -05:00
fanquake
7f87754094 Boost 1.63.0 2017-05-12 00:58:36 +03:00
fanquake
be968206bb Boost 1.61.0 2017-05-12 00:58:36 +03:00
Oleg Girko
39750439bf Force to use C++11 mode for compilation (#1463)
* build: Enable C++11 build, require C++11 compiler

Implements #6211.

* depends: use c++11

* build: update ax_cxx_compile_stdcxx to serial 4

* build: force a c++ standard to be specified

Newer compilers may switch to newer standards by default. For example, gcc6
uses std=gnu++14 by default.

* c++11: fix libbdb build against libc++ in c++11 mode

atomic_init clashes with

* c++11: CAccountingEntry must be defined before use in a list

c++11ism. This fixes builds against libc++.
2017-05-05 14:27:27 +03:00
fanquake
eccd67106d
[Depends] Bump Boost, miniupnpc, ccache & zeromq
Bring dependencies up to date with master:
[depends] Boost 1.59.0
[depends] miniupnpc 1.9.20151026
[depends] native ccache 3.2.4
[depends] zeromq 4.0.7
[depends] Latest config.guess & config.sub
[depends] Fix miniupnpc compilation on osx

Github-Pull: #6980
Rebased-From: 9e940fa4c6 17ad964c2f 26f8ea5342 10d3c77644 23a3c47f95 e0769e1928
2015-12-18 09:42:09 +01:00
Cory Fields
4bdad99f50 depends: bump boost to 1.58.0 2015-07-03 12:59:13 -04:00
Jacob Welsh
b19a88b2a0 depends: fix Boost 1.55 build on GCC 5
Boost assumes variadic templates are always available in GCC 4.4+, but
they aren't since we don't build with -std=c++11.

This applies the patch that fixed the issue in boost 1.57:
eec8085549

See also: https://svn.boost.org/trac/boost/ticket/10500
2015-06-13 17:02:34 -05:00
Cory Fields
4302fa67b1 depends: Use pic for all linux dependencies
This avoids textrels, and matches previous gitian behavior.
2014-11-19 22:49:41 -05:00
Cory Fields
0246ab6088 depends: boost: hard-code hidden symbol visibility
tl;dr: This solves boost visibility problems for default/release build configs
on non-Linux platforms.

When Bitcoin builds against boost's header-only classes, it ends up with
objects containing symbols that the upstream boost libs also have. Since
Bitcoin builds by default with hidden symbol visibility, it can end up trying
to link against a copy of the same symbols with default visibility.
This is not a problem on Linux because 3rd party static libs are un-exported
by default (--exclude-libs,ALL), but that is not available for MinGW and OSX.

Those platforms (and maybe others?) end up confused about which version to use.

The OSX linker spews hundreds of: "ld: warning: direct access in <foo> to
global weak symbol guard variable for <bar> means the weak symbol cannot be
overridden at runtime. This was likely caused by different translation units
being compiled with different visibility settings."

MinGW's linker complains similarly.

Since the default symbol visibility for Bitcoin is hidden and releases are
built that way as well, build Boost with hidden visibility. Linux builds Boost
this way also, but only for the sake of continuity.

This means that the linker confusion logic is reversed, so the problem will
will now be encountered if Bitcoin is built with --disable-reduce-exports, but
that's better than the current situation.
2014-11-05 01:16:53 -05:00
Cory Fields
3b63df5fac depends: boost: build for debug or release as requested
Also hook up cppflags there, which was missing before.
2014-09-25 14:56:26 -04:00
Cory Fields
1dec09b341 depends: add shared dependency builder
See the README's in depends for documentation
2014-08-08 15:10:46 -04:00