[tbb-commits] [tor-browser-bundle/master] Bug 12391: Get mingw-w64 compiled reliably.

gk at torproject.org gk at torproject.org
Wed Jul 16 17:30:55 UTC 2014


commit 5b71d6072028e0d582ad7405597fd615586a0734
Author: Georg Koppen <gk at torproject.org>
Date:   Wed Jul 16 19:24:48 2014 +0000

    Bug 12391: Get mingw-w64 compiled reliably.
    
    It seems libfaketime is the culprit for the intermittent build failures
    (which might be nothing else than an instance of bug 11459). The
    workaround is to omit the compiler (and linker) from this restriction
    and to cross the fingers that the libgcc* etc. we ship, too, are still
    getting built deterministically. So far this seems to work out...
---
 gitian/descriptors/windows/gitian-utils.yml |   13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/gitian/descriptors/windows/gitian-utils.yml b/gitian/descriptors/windows/gitian-utils.yml
index d9bf928..87a0bce 100644
--- a/gitian/descriptors/windows/gitian-utils.yml
+++ b/gitian/descriptors/windows/gitian-utils.yml
@@ -36,8 +36,6 @@ files:
 script: |
   INSTDIR="$HOME/install"
   source versions
-  export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
-  export FAKETIME=$REFERENCE_DATETIME
   export TZ=UTC
   export LC_ALL=C
   umask 0022
@@ -79,9 +77,7 @@ script: |
   # CFLAGS_FOR_TARGET.
   export CFLAGS_FOR_TARGET="-specs=/home/ubuntu/build/msvcr100.spec"
   gcc-*/configure --prefix=$INSTDIR/mingw-w64 --target=i686-w64-mingw32 --disable-multilib --enable-languages=c,c++
-  # XXX: Using $MAKEOPTS (tested with -j4) breaks the build which does not
-  # happen in a non-gitian environment. This is probably related to bug 11459.
-  make all-gcc
+  make $MAKEOPTS all-gcc
   make install-gcc
   cd ..
   #
@@ -104,6 +100,13 @@ script: |
   make install
   cd ..
 
+  # XXX: Build the libraries we include into the bundles deterministically. As
+  # libfaketime breaks the mingw-w64 build (probably due to bug 11459) we omit
+  # the compiler and linker from it. It seems we get away with this strategy
+  # and the libgcc* and libss* which we ship, too, are still built in a
+  # reproducible fashion.
+  export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
+  export FAKETIME=$REFERENCE_DATETIME
   # Building zlib
   export CFLAGS="-mwindows"
   export LDFLAGS="-mwindows"



More information about the tbb-commits mailing list