diff options
author | Warren Togami <wtogami@gmail.com> | 2013-09-25 22:33:25 -1000 |
---|---|---|
committer | Warren Togami <wtogami@gmail.com> | 2013-09-26 04:10:17 -1000 |
commit | f2bc1d35d6900e044209e76533dc514d31f768fe (patch) | |
tree | c58942b08492d9beabbfbb8fc7e14433764b048a /contrib/gitian-descriptors/boost-win32.yml | |
parent | af6c2c71ed7282791f0f09fd9e5aadb948e5bbbf (diff) |
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.
Diffstat (limited to 'contrib/gitian-descriptors/boost-win32.yml')
-rw-r--r-- | contrib/gitian-descriptors/boost-win32.yml | 82 |
1 files changed, 33 insertions, 49 deletions
diff --git a/contrib/gitian-descriptors/boost-win32.yml b/contrib/gitian-descriptors/boost-win32.yml index 981c5055b0..b421cbe8c5 100644 --- a/contrib/gitian-descriptors/boost-win32.yml +++ b/contrib/gitian-descriptors/boost-win32.yml @@ -12,57 +12,19 @@ packages: reference_datetime: "2011-01-30 00:00:00" remotes: [] files: -- "boost_1_50_0.tar.bz2" +- "boost_1_54_0.tar.bz2" +- "boost-mingw-gas-cross-compile-2013-03-03.patch" script: | - # + # Defines INSTALLPREFIX="$OUTDIR/staging/boost" 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" - tar xjf boost_1_50_0.tar.bz2 - cd boost_1_50_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 - - + tar xjf boost_1_54_0.tar.bz2 + cd boost_1_54_0 GCCVERSION=$($HOST-g++ -E -dM $(mktemp --suffix=.h) | grep __VERSION__ | cut -d ' ' -f 3 | cut -d '"' -f 2) echo "using gcc : $GCCVERSION : $HOST-g++ : @@ -73,10 +35,32 @@ script: | ;" > user-config.jam ./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" export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1 export FAKETIME=$REFERENCE_DATETIME - zip -r boost-win32-1.50.0-gitian-r5.zip * - cp boost-win32-1.50.0-gitian-r5.zip $OUTDIR + zip -r boost-win32-1.54.0-gitian-r6.zip * + cp boost-win32-1.54.0-gitian-r6.zip $OUTDIR |