Commit graph

129 commits

Author SHA1 Message Date
Cory Fields 4caad26ba1 depends: bump cctools to a custom version with less deps
This one no longer requires native libuuid or libcrypto
2015-01-02 19:31:07 -05:00
Cory Fields 4fe6c3c24f depends: major upgrade to darwin toolchain
tl;dr: Update to the newer stable toolchain and SDK for OSX without giving up
any backwards compatibility. We can move to clang 3.5 as a next step which
allows use to use libc++ and the 10.10 sdk, but we'll need to find a build that
works in gitian/travis first.

Switch to a new, better maintained fork of cctools:
https://github.com/tpoechtrager/cctools-port

I've forked this and will be working on it some as well:
https://github.com/theuni/cctools-port

This brings in:
cctools v862
ld64: v241.9

It also fixes 64bit builds, so there's no longer any need to use a 32bit clang.
Since clang is no longer tied to an old/crusty 32bit build, clang has been
upgraded to 3.3. Unfortunately, there's a bug in 3.4 that breaks builds. 3.5
works fine, but there are no binary builds compatible with precise, which is
currently used for gitian and travis. We could always build our own if
necessary.

After updating to stable clang/linker/cctools, it's possible to use a more
recent SDK. The current SDK (10.7) through the most recent 10.10 have all been
built/tested successfully, both with and without 10.6 compatibility. However,
10.10 requires clang 3.5.

SDKs >= 10.9 use libc++ rather than libstdc++. This is verified working as well.
2015-01-02 15:09:43 -05:00
Cory Fields ec90c97d13 depends: osx: fix qt5 build against 10.10 sdk 2015-01-02 15:09:43 -05:00
Wladimir J. van der Laan e36e619886 Add mips, mipsel and aarch64 to depends platforms 2014-12-17 13:20:11 +01:00
BtcDrak 164a45f57a
Fix download link for gitian builds 2014-12-13 09:03:33 +00:00
Cory Fields d7db4b6317 depends: fix packages with hard-coded SOURCES_PATH
Also fixes a nasty bug that removes the downloaded comparisontool jar file.
2014-12-11 19:23:12 -05:00
Pieter Wuille ffe3291466 Remove gmp dependency and doc mentions 2014-12-04 19:17:02 +01:00
Cory Fields d61dc25c71 qt: osx: fix hidden symbol visibility
Fixes default hidden symbol visibility for our linux->osx cross build. Without
this change, the check for working -fvisibility=hidden fails, and all symbols
are visible by default.

Ugly as this is, it's just a simple find/replace to fix a bug in Qt's configure.
They assume in an "XPLATFORM_MAC" block that the builder is capable of running
osx programs. This should be "BUILD_ON_MAC" instead.
2014-11-24 22:00:31 -05:00
Cory Fields 1aead42d41 gitian: descriptors overhaul
Descriptors now make use of the dependencies builder, so results are cached.
A very new version (>= e9741525c) of Gitian should be used in order to take
advantage of caching.
2014-11-19 22:49:41 -05:00
Cory Fields 5f93ec2028 depends: Add a package for qt4.6. Linux uses it by default.
We're not ready to switch to a static qt5 for Linux yet due to missing plugin
support. This adds a recipe for building a shared qt4 that we build and link
against, but don't distribute.

make USE_LINUX_STATIC_QT5=1 can be used to build static qt5 as before.
2014-11-19 22:49:41 -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 ff1e5ba8c7 depends: add gmp package 2014-11-18 18:06:46 +01:00
Cory Fields 187739006c depends: cleanup better after qt and force a bump
qt needs to be rebuilt for travis. The previous commit should help ensure that
this won't need to be done again.
2014-11-13 04:09:19 -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
Dominyk Tiller a6a3f141b1 openssl version bump
Bumps the OpenSSL version to the latest release, and kills SSL2. (SSL3 was already killed here, so I'm not sure why SSL2 was left around?)

No other changes.
2014-10-21 21:49:45 +01:00
Matt Corallo c9c51cba4e Make comptool more deterministic 2014-10-02 13:52:19 -07:00
Cory Fields 609adc7660 depends: disable unused bdb replication manager. Fixes new mingw builds
Newer mingw supports the features necessary to enable this api, whereas older
versions didn't. However once enabled (automatically by configure), it triggers
an unrelated build bug.

Since it was not enabled previously anyway, and we don't depend on the
functionality, just disable it across the board.
2014-10-02 13:41:31 -04:00
Pieter Wuille 0f78a0a2eb Upgrade comparison tool further 2014-10-02 03:55:33 +02:00
Cory Fields 6d7a0fa4e5 depends: update the comparison tool to a more recent version 2014-09-30 12:14:22 -07:00
Cory Fields b1efba8298 depends: give miniupnpc cppflags 2014-09-25 14:56:26 -04:00
Cory Fields 1d154db457 depends: teach qt to honor debug/release
This means it also needs to honor our flags, so patch them in as necessary.
2014-09-25 14:56:26 -04: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 7e99df78c4 depends: make sure openssl sees cppflags 2014-09-25 14:56:26 -04:00
Cory Fields 21f139b4a6 qt: fix tablet crash. closes #4854.
This backports the relevant parts of:
https://codereview.qt-project.org/#/c/82689/
2014-09-08 14:42:46 -04:00
Wladimir J. van der Laan 107922663b
Merge pull request #4767
b144a74 depends: bump miniupnpc to 1.9.20140701. (Cory Fields)
f628127 depends: bump openssl to 1.0.1i (Cory Fields)
9f7f504 build: add -DMINIUPNP_STATICLIB for new version (Cory Fields)
2014-09-01 10:28:33 +02:00
Cory Fields b144a74a08 depends: bump miniupnpc to 1.9.20140701.
This is the forward-port of a9c6eef915
2014-08-27 02:54:49 -04:00
Cory Fields f628127887 depends: bump openssl to 1.0.1i
This is the forward-port of bba0175022.
2014-08-26 15:28:31 -04:00
Cory Fields c897b1e732 depends: add a fallback path in case package sources go missing
If a source url fails to download, try again at
$FALLBACK_DOWNLOAD_PATH/file.name, where FALLBACK_DOWNLOAD_PATH can be
overridden by the user.
2014-08-22 15:42:54 -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