Upgrade gitian win32 to boost-1.54.0
Workaround 1.54.0 build bug, upstream #9156 Workaround 1.51.0+ human bug, upstream #7262 This commit also demonstrates a method to verify the integrity of inputs.
This commit is contained in:
parent
af6c2c71ed
commit
f2bc1d35d6
3 changed files with 42 additions and 56 deletions
|
@ -12,57 +12,19 @@ packages:
|
||||||
reference_datetime: "2011-01-30 00:00:00"
|
reference_datetime: "2011-01-30 00:00:00"
|
||||||
remotes: []
|
remotes: []
|
||||||
files:
|
files:
|
||||||
- "boost_1_50_0.tar.bz2"
|
- "boost_1_54_0.tar.bz2"
|
||||||
|
- "boost-mingw-gas-cross-compile-2013-03-03.patch"
|
||||||
script: |
|
script: |
|
||||||
#
|
# Defines
|
||||||
INSTALLPREFIX="$OUTDIR/staging/boost"
|
INSTALLPREFIX="$OUTDIR/staging/boost"
|
||||||
HOST=i686-w64-mingw32
|
HOST=i686-w64-mingw32
|
||||||
#
|
# Input Integrity Check
|
||||||
|
echo "047e927de336af106a24bceba30069980c191529fd76b8dff8eb9a328b48ae1d boost_1_54_0.tar.bz2" | shasum -c
|
||||||
|
echo "d2b7f6a1d7051faef3c9cf41a92fa3671d905ef1e1da920d07651a43299f6268 boost-mingw-gas-cross-compile-2013-03-03.patch" | shasum -c
|
||||||
|
|
||||||
mkdir -p "$INSTALLPREFIX"
|
mkdir -p "$INSTALLPREFIX"
|
||||||
tar xjf boost_1_50_0.tar.bz2
|
tar xjf boost_1_54_0.tar.bz2
|
||||||
cd boost_1_50_0
|
cd boost_1_54_0
|
||||||
|
|
||||||
# Boost #4258: multiple definition of `_tls_used' https://svn.boost.org/trac/boost/ticket/4258
|
|
||||||
cd libs/thread/
|
|
||||||
patch -p1 << 'EOF'
|
|
||||||
From 8b83ad1f0ac4c56f019072de4a7a93f8fcccb96b Mon Sep 17 00:00:00 2001
|
|
||||||
From: "Vicente J. Botet Escriba" <vicente.botet@wanadoo.fr>
|
|
||||||
Date: Sat, 7 Jul 2012 14:37:07 +0000
|
|
||||||
Subject: [PATCH] Thread: Added __MINGW64_VERSION_MAJOR when __MINGW64__ is not
|
|
||||||
defined
|
|
||||||
|
|
||||||
---
|
|
||||||
src/win32/tss_pe.cpp | 4 ++--
|
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/win32/tss_pe.cpp b/src/win32/tss_pe.cpp
|
|
||||||
index 4d75680..0cdb7a6 100644
|
|
||||||
--- a/src/win32/tss_pe.cpp
|
|
||||||
+++ b/src/win32/tss_pe.cpp
|
|
||||||
@@ -11,7 +11,7 @@
|
|
||||||
|
|
||||||
#if defined(BOOST_HAS_WINTHREADS) && defined(BOOST_THREAD_BUILD_LIB)
|
|
||||||
|
|
||||||
-#if (defined(__MINGW32__) && !defined(_WIN64)) || defined(__MINGW64__)
|
|
||||||
+#if (defined(__MINGW32__) && !defined(_WIN64)) || defined(__MINGW64__) || (__MINGW64_VERSION_MAJOR)
|
|
||||||
|
|
||||||
#include <boost/thread/detail/tss_hooks.hpp>
|
|
||||||
|
|
||||||
@@ -38,7 +38,7 @@
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
-#if defined(__MINGW64__) || (__MINGW32_MAJOR_VERSION >3) || \
|
|
||||||
+#if defined(__MINGW64__) || (__MINGW64_VERSION_MAJOR) || (__MINGW32_MAJOR_VERSION >3) || \
|
|
||||||
((__MINGW32_MAJOR_VERSION==3) && (__MINGW32_MINOR_VERSION>=18))
|
|
||||||
extern "C"
|
|
||||||
{
|
|
||||||
--
|
|
||||||
1.8.4
|
|
||||||
EOF
|
|
||||||
cd -
|
|
||||||
|
|
||||||
GCCVERSION=$($HOST-g++ -E -dM $(mktemp --suffix=.h) | grep __VERSION__ | cut -d ' ' -f 3 | cut -d '"' -f 2)
|
GCCVERSION=$($HOST-g++ -E -dM $(mktemp --suffix=.h) | grep __VERSION__ | cut -d ' ' -f 3 | cut -d '"' -f 2)
|
||||||
echo "using gcc : $GCCVERSION : $HOST-g++
|
echo "using gcc : $GCCVERSION : $HOST-g++
|
||||||
:
|
:
|
||||||
|
@ -73,10 +35,32 @@ script: |
|
||||||
;" > user-config.jam
|
;" > user-config.jam
|
||||||
./bootstrap.sh --without-icu
|
./bootstrap.sh --without-icu
|
||||||
|
|
||||||
./bjam toolset=gcc target-os=windows threadapi=win32 threading=multi variant=release link=static --user-config=user-config.jam --without-mpi --without-python -sNO_BZIP2=1 -sNO_ZLIB=1 --layout=tagged --build-type=complete --prefix="$INSTALLPREFIX" $MAKEOPTS install
|
# Workaround: Upstream boost dev refuses to include patch that would allow Free Software cross-compile toolchain to work
|
||||||
|
# This patch was authored by the Fedora package developer and ships in Fedora's mingw32-boost.
|
||||||
|
# Please obtain the exact patch that matches the above sha256sum from one of the following mirrors.
|
||||||
|
#
|
||||||
|
# Read History: https://svn.boost.org/trac/boost/ticket/7262
|
||||||
|
# History Mirror: http://rose.makesad.us/~paulproteus/mirrors/7262%20Boost.Context%20fails%20to%20build%20using%20MinGW.html
|
||||||
|
#
|
||||||
|
# Patch: https://svn.boost.org/trac/boost/raw-attachment/ticket/7262/boost-mingw.patch
|
||||||
|
# Patch Mirror: http://wtogami.fedorapeople.org/boost-mingw-gas-cross-compile-2013-03-03.patch
|
||||||
|
# Patch Mirror: http://mindstalk.net/host/boost-mingw-gas-cross-compile-2013-03-03.patch
|
||||||
|
# Patch Mirror: http://rose.makesad.us/~paulproteus/mirrors/boost-mingw-gas-cross-compile-2013-03-03.patch
|
||||||
|
patch -p0 < ../boost-mingw-gas-cross-compile-2013-03-03.patch
|
||||||
|
|
||||||
|
# Bug Workaround: boost-1.54.0 broke the ability to disable zlib
|
||||||
|
# https://svn.boost.org/trac/boost/ticket/9156
|
||||||
|
sed -i 's^\[ ac.check-library /zlib//zlib : <library>/zlib//zlib^^' libs/iostreams/build/Jamfile.v2
|
||||||
|
sed -i 's^<source>zlib.cpp <source>gzip.cpp \]^^' libs/iostreams/build/Jamfile.v2
|
||||||
|
|
||||||
|
# http://statmt.org/~s0565741/software/boost_1_52_0/libs/context/doc/html/context/requirements.html
|
||||||
|
# Note: Might need these options in the future for 64bit builds.
|
||||||
|
# "Please note that address-model=64 must be given to bjam command line on 64bit Windows for 64bit build; otherwise 32bit code will be generated."
|
||||||
|
# "For cross-compiling the lib you must specify certain additional properties at bjam command line: target-os, abi, binary-format, architecture and address-model."
|
||||||
|
./bjam toolset=gcc binary-format=pe target-os=windows threadapi=win32 threading=multi variant=release link=static --user-config=user-config.jam --without-mpi --without-python -sNO_BZIP2=1 -sNO_ZLIB=1 --layout=tagged --build-type=complete --prefix="$INSTALLPREFIX" $MAKEOPTS install
|
||||||
|
|
||||||
cd "$INSTALLPREFIX"
|
cd "$INSTALLPREFIX"
|
||||||
export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
|
export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
|
||||||
export FAKETIME=$REFERENCE_DATETIME
|
export FAKETIME=$REFERENCE_DATETIME
|
||||||
zip -r boost-win32-1.50.0-gitian-r5.zip *
|
zip -r boost-win32-1.54.0-gitian-r6.zip *
|
||||||
cp boost-win32-1.50.0-gitian-r5.zip $OUTDIR
|
cp boost-win32-1.54.0-gitian-r6.zip $OUTDIR
|
||||||
|
|
|
@ -23,7 +23,7 @@ remotes:
|
||||||
"dir": "bitcoin"
|
"dir": "bitcoin"
|
||||||
files:
|
files:
|
||||||
- "qt-win32-4.8.3-gitian-r4.zip"
|
- "qt-win32-4.8.3-gitian-r4.zip"
|
||||||
- "boost-win32-1.50.0-gitian-r5.zip"
|
- "boost-win32-1.54.0-gitian-r6.zip"
|
||||||
- "bitcoin-deps-win32-gitian-r8.zip"
|
- "bitcoin-deps-win32-gitian-r8.zip"
|
||||||
- "protobuf-win32-2.5.0-gitian-r3.zip"
|
- "protobuf-win32-2.5.0-gitian-r3.zip"
|
||||||
script: |
|
script: |
|
||||||
|
@ -34,7 +34,7 @@ script: |
|
||||||
mkdir -p $STAGING
|
mkdir -p $STAGING
|
||||||
cd $STAGING
|
cd $STAGING
|
||||||
unzip ../build/qt-win32-4.8.3-gitian-r4.zip
|
unzip ../build/qt-win32-4.8.3-gitian-r4.zip
|
||||||
unzip ../build/boost-win32-1.50.0-gitian-r5.zip
|
unzip ../build/boost-win32-1.54.0-gitian-r6.zip
|
||||||
unzip ../build/bitcoin-deps-win32-gitian-r8.zip
|
unzip ../build/bitcoin-deps-win32-gitian-r8.zip
|
||||||
unzip ../build/protobuf-win32-2.5.0-gitian-r3.zip
|
unzip ../build/protobuf-win32-2.5.0-gitian-r3.zip
|
||||||
cd $HOME/build/
|
cd $HOME/build/
|
||||||
|
|
|
@ -42,18 +42,20 @@ Release Process
|
||||||
wget 'http://zlib.net/zlib-1.2.6.tar.gz'
|
wget 'http://zlib.net/zlib-1.2.6.tar.gz'
|
||||||
wget 'ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.5.9.tar.gz'
|
wget 'ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.5.9.tar.gz'
|
||||||
wget 'http://fukuchi.org/works/qrencode/qrencode-3.2.0.tar.bz2'
|
wget 'http://fukuchi.org/works/qrencode/qrencode-3.2.0.tar.bz2'
|
||||||
wget 'http://downloads.sourceforge.net/project/boost/boost/1.50.0/boost_1_50_0.tar.bz2'
|
wget 'http://downloads.sourceforge.net/project/boost/boost/1.54.0/boost_1_54_0.tar.bz2'
|
||||||
|
wget 'https://svn.boost.org/trac/boost/raw-attachment/ticket/7262/boost-mingw.patch' -O \
|
||||||
|
boost-mingw-gas-cross-compile-2013-03-03.patch
|
||||||
wget 'http://releases.qt-project.org/qt4/source/qt-everywhere-opensource-src-4.8.3.tar.gz'
|
wget 'http://releases.qt-project.org/qt4/source/qt-everywhere-opensource-src-4.8.3.tar.gz'
|
||||||
wget 'http://protobuf.googlecode.com/files/protobuf-2.5.0.tar.bz2'
|
wget 'http://protobuf.googlecode.com/files/protobuf-2.5.0.tar.bz2'
|
||||||
cd ..
|
cd ..
|
||||||
./bin/gbuild ../bitcoin/contrib/gitian-descriptors/boost-win32.yml
|
./bin/gbuild ../bitcoin/contrib/gitian-descriptors/boost-win32.yml
|
||||||
mv build/out/boost-win32-1.50.0-gitian2.zip inputs/
|
mv build/out/boost-win32-*.zip inputs/
|
||||||
./bin/gbuild ../bitcoin/contrib/gitian-descriptors/qt-win32.yml
|
./bin/gbuild ../bitcoin/contrib/gitian-descriptors/qt-win32.yml
|
||||||
mv build/out/qt-win32-4.8.3-gitian-r2.zip inputs/
|
mv build/out/qt-win32-*.zip inputs/
|
||||||
./bin/gbuild ../bitcoin/contrib/gitian-descriptors/deps-win32.yml
|
./bin/gbuild ../bitcoin/contrib/gitian-descriptors/deps-win32.yml
|
||||||
mv build/out/bitcoin-deps-0.0.5.zip inputs/
|
mv build/out/bitcoin-deps-*.zip inputs/
|
||||||
./bin/gbuild ../bitcoin/contrib/gitian-descriptors/protobuf-win32.yml
|
./bin/gbuild ../bitcoin/contrib/gitian-descriptors/protobuf-win32.yml
|
||||||
mv build/out/protobuf-win32-2.5.0-gitian-r1.zip inputs/
|
mv build/out/protobuf-win32-*.zip inputs/
|
||||||
|
|
||||||
Build bitcoind and bitcoin-qt on Linux32, Linux64, and Win32:
|
Build bitcoind and bitcoin-qt on Linux32, Linux64, and Win32:
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue