commit 34626bda99acdcc94d45e7095313d6d3882cdd32 Author: Nicolas Vigier boklm@torproject.org Date: Fri Aug 30 18:45:23 2019 +0200
Bug 30384: Use 64bit containers to build 32bit Windows Tor Browser --- projects/cbindgen/build | 9 ++------- projects/debootstrap-image/config | 7 ------- projects/firefox/build | 5 +---- projects/firefox/config | 6 +++++- projects/firefox/mozconfig-windows-i686 | 3 --- projects/gcc/build | 1 - projects/gcc/config | 1 - projects/go/build | 1 - projects/go/config | 1 - projects/mingw-w64-clang/build | 4 +--- projects/mingw-w64/config | 1 - projects/rust/build | 3 +-- projects/rust/config | 5 +---- projects/webrtc/build | 1 - rbm.conf | 14 ++------------ 15 files changed, 13 insertions(+), 49 deletions(-)
diff --git a/projects/cbindgen/build b/projects/cbindgen/build index 402a216..429f567 100644 --- a/projects/cbindgen/build +++ b/projects/cbindgen/build @@ -22,13 +22,8 @@ replace-with = "vendored-sources" directory = "/var/tmp/build/cbindgen/vendor" EOF
-[% IF ! c("var/windows-i686") -%] - target=x86_64 -[% ELSE -%] - target=i686 -[% END -%] -cargo build --release --frozen --target $target-unknown-linux-gnu -mv target/$target-unknown-linux-gnu/release/cbindgen $distdir/[% project %] +cargo build --release --frozen --target x86_64-unknown-linux-gnu +mv target/x86_64-unknown-linux-gnu/release/cbindgen $distdir/[% project %]
cd $distdir [% c('tar', { diff --git a/projects/debootstrap-image/config b/projects/debootstrap-image/config index cad9c77..a50cbf1 100644 --- a/projects/debootstrap-image/config +++ b/projects/debootstrap-image/config @@ -65,13 +65,6 @@ targets: suite: stretch arch: amd64
- stretch-i386: - var: - minimal_apt_version: 1.4.9 - container: - suite: stretch - arch: i386 - input_files: - URL: 'http://cdimage.ubuntu.com/ubuntu-base/releases/%5B% c("var/ubuntu_version") %]/release/ubuntu-base-[% c("var/ubuntu_version") %]-base-amd64.tar.gz' filename: 'container-image_ubuntu-base-[% c("var/ubuntu_version") %]-base-amd64.tar.gz' diff --git a/projects/firefox/build b/projects/firefox/build index 1450576..87f8532 100644 --- a/projects/firefox/build +++ b/projects/firefox/build @@ -1,5 +1,4 @@ #!/bin/bash -[% c("var/setarch") -%] [% c("var/set_default_env") -%] [% pc(c('var/compiler'), 'var/setup', { compiler_tarfile => c('input_files_by_name/' _ c('var/compiler')) }) %] distdir=/var/tmp/dist/[% project %] @@ -11,9 +10,7 @@ mkdir -p [% dest_dir _ '/' _ c('filename') %] tar -C /var/tmp/dist -xf [% c('input_files_by_name/fxc2') %] export PATH="/var/tmp/dist/fxc2/bin:$PATH" # fxc2 requires Wine. - [% IF c("var/windows-x86_64") %] - export WINEARCH=win64 - [% END %] + export WINEARCH=[% IF c("var/windows-x86_64") %]win64[% ELSE %]win32[% END %] export HOME=/var/tmp/home mkdir -p $HOME WINEROOT=$HOME/.wine/drive_c diff --git a/projects/firefox/config b/projects/firefox/config index b13635c..334a1a8 100644 --- a/projects/firefox/config +++ b/projects/firefox/config @@ -111,11 +111,15 @@ targets: arch_deps: - wine pre_pkginst: | + [% IF c("var/windows-i686") -%] + # We need this to install wine32 + dpkg --add-architecture i386 + [% END -%] echo 'deb http://ftp.debian.org/debian stretch-backports main' >> /etc/apt/sources.list post_pkginst: | # We need to have at least 3.0.3 which Mozilla is using in the # mingw-w64/clang build process - apt-get -y -t stretch-backports install wine + apt-get -y -t stretch-backports install wine[% IF c("var/windows-i686") %]32[% END %] compiler: mingw-w64-clang
windows-i686: diff --git a/projects/firefox/mozconfig-windows-i686 b/projects/firefox/mozconfig-windows-i686 index 5538bc1..eaa704f 100644 --- a/projects/firefox/mozconfig-windows-i686 +++ b/projects/firefox/mozconfig-windows-i686 @@ -24,9 +24,6 @@ export MOZILLA_OFFICIAL=1 mk_add_options BUILD_OFFICIAL=1
ac_add_options --disable-debug -# Until we build on a 64bit host we need to hack around linker errors due to -# memory constraints -ac_add_options --disable-debug-symbols ac_add_options --enable-optimize ac_add_options --enable-strip ac_add_options --enable-official-branding diff --git a/projects/gcc/build b/projects/gcc/build index 1d055b4..bd7e837 100644 --- a/projects/gcc/build +++ b/projects/gcc/build @@ -1,6 +1,5 @@ #!/bin/sh [% c("var/set_default_env") -%] -[% c("var/setarch") -%] [% IF c("var/linux") -%] # Config options for hardening-wrapper export DEB_BUILD_HARDENING=1 diff --git a/projects/gcc/config b/projects/gcc/config index 9fef3c4..d776a2c 100644 --- a/projects/gcc/config +++ b/projects/gcc/config @@ -8,7 +8,6 @@ var: - build-essential - libmpc-dev setup: | - [% c("var/setarch") -%] mkdir -p /var/tmp/dist tar -C /var/tmp/dist -xf $rootdir/[% c("compiler_tarfile") %] export PATH="/var/tmp/dist/gcc/bin:$PATH" diff --git a/projects/go/build b/projects/go/build index b9057a5..4945c88 100644 --- a/projects/go/build +++ b/projects/go/build @@ -1,6 +1,5 @@ #!/bin/bash [% c("var/set_default_env") -%] -[% c("var/setarch") -%] distdir=/var/tmp/dist/[% project %] mkdir -p /var/tmp/dist
diff --git a/projects/go/config b/projects/go/config index fd96bb6..ffe07ea 100644 --- a/projects/go/config +++ b/projects/go/config @@ -8,7 +8,6 @@ var: use_container: 1
setup: | - [% c("var/setarch") -%] mkdir -p /var/tmp/dist tar -C /var/tmp/dist -xf $rootdir/[% c("go_tarfile") %] export GOOS=[% c("var/GOOS") %] diff --git a/projects/mingw-w64-clang/build b/projects/mingw-w64-clang/build index 820346d..b63a87f 100644 --- a/projects/mingw-w64-clang/build +++ b/projects/mingw-w64-clang/build @@ -24,9 +24,7 @@ tar -xf $rootdir/[% c('input_files_by_name/llvm-mingw') %] # Adding the wrappers and symlinks we need cd $distdir/bin exception_flags="" -target="" [% IF c("var/windows-i686") %] - target="--target=i686-linux-gnu" exception_flags="-fsjlj-exceptions" [% END -%] compiler_flags="--sysroot $DIR/../[% c("arch") %]-w64-mingw32 -rtlib=compiler-rt -stdlib=libc++ -fuse-ld=lld $exception_flags -fuse-cxa-atexit -Qunused-arguments" @@ -49,7 +47,7 @@ ln -s llvm-nm [% c("arch") %]-w64-mingw32-nm ln -s llvm-strip [% c("arch") %]-w64-mingw32-strip ln -s llvm-readobj [% c("arch") %]-w64-mingw32-readobj ln -s llvm-objcopy [% c("arch") %]-w64-mingw32-objcopy -./clang $builddir/llvm-mingw/wrappers/windres-wrapper.c $target -O2 -Wl,-s -o [% c("arch") %]-w64-mingw32-windres +./clang $builddir/llvm-mingw/wrappers/windres-wrapper.c -O2 -Wl,-s -o [% c("arch") %]-w64-mingw32-windres
# Building mingw-w64 export PATH="$distdir/bin:/var/tmp/dist/cmake/bin:$PATH" diff --git a/projects/mingw-w64/config b/projects/mingw-w64/config index 3bb1dda..658c83d 100644 --- a/projects/mingw-w64/config +++ b/projects/mingw-w64/config @@ -12,7 +12,6 @@ var: - build-essential - libmpc-dev setup: | - [% c("var/setarch") -%] mkdir -p /var/tmp/dist tar -C /var/tmp/dist -xf $rootdir/[% c("compiler_tarfile") %] export PATH="/var/tmp/dist/mingw-w64/bin:$PATH" diff --git a/projects/rust/build b/projects/rust/build index ce039ea..9a6b54a 100644 --- a/projects/rust/build +++ b/projects/rust/build @@ -1,12 +1,11 @@ #!/bin/bash -[% c('var/setarch') %] [% c("var/set_default_env") -%] distdir=/var/tmp/dist/[% project %] mkdir -p $distdir tar -C /var/tmp/dist -xf [% c('input_files_by_name/cmake') %] export PATH="/var/tmp/dist/cmake/bin:$PATH" tar -C /var/tmp/dist -xf [% c('input_files_by_name/prev_rust') %] -cd /var/tmp/dist/rust-[% c('var/prev_version') %]-[% c('var/rust_arch') %]-unknown-linux-gnu +cd /var/tmp/dist/rust-[% c('var/prev_version') %]-x86_64-unknown-linux-gnu ./install.sh --prefix=$distdir-rust-old export PATH="$distdir-rust-old/bin:$PATH"
diff --git a/projects/rust/config b/projects/rust/config index 106c709..dbde815 100644 --- a/projects/rust/config +++ b/projects/rust/config @@ -4,14 +4,12 @@ version: 1.34.2
var: prev_version: 1.33.0 - rust_arch: '[% c("arch") %]' container: use_container: 1
targets: android: var: - rust_arch: x86_64 arch_deps: - libssl-dev - pkg-config @@ -30,7 +28,6 @@ targets:
linux: var: - rust_arch: x86_64 deps: - libc6-dev-i386 - lib32stdc++6 @@ -98,7 +95,7 @@ input_files: sig_ext: asc file_gpg_id: 1 gpg_keyring: rust.gpg - - URL: 'https://static.rust-lang.org/dist/rust-%5B% c("var/prev_version") %]-[% c("var/rust_arch") %]-unknown-linux-gnu.tar.xz' + - URL: 'https://static.rust-lang.org/dist/rust-%5B% c("var/prev_version") %]-x86_64-unknown-linux-gnu.tar.xz' name: prev_rust sig_ext: asc file_gpg_id: 1 diff --git a/projects/webrtc/build b/projects/webrtc/build index 77d4026..2ede64b 100644 --- a/projects/webrtc/build +++ b/projects/webrtc/build @@ -1,7 +1,6 @@ #!/bin/bash set -e [% c("var/set_default_env") -%] -[% c("var/setarch") -%] distdir=/var/tmp/dist/[% project %] [% pc(c('var/compiler'), 'var/setup', { compiler_tarfile => c('input_files_by_name/' _ c('var/compiler')) }) %]
diff --git a/rbm.conf b/rbm.conf index 967eb08..581bd0e 100644 --- a/rbm.conf +++ b/rbm.conf @@ -280,9 +280,6 @@ targets: var: windows-x86_64: 1 osname: windows-x86_64 - container: - arch: amd64 - faketime_path: /usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1 # HEASLR is 64 bit only (see bug 12968) flag_HEASLR: '-Wl,--high-entropy-va' windows-i686: @@ -290,25 +287,18 @@ targets: var: windows-i686: 1 osname: windows-i686 - container: - arch: i386 - faketime_path: /usr/lib/i386-linux-gnu/faketime/libfaketime.so.1 - setarch: | - if test -z "$RBM_SETARCH" - then - export RBM_SETARCH=1 - exec setarch i686 ./build - fi windows: var: windows: 1 container: suite: stretch + arch: amd64 configure_opt: '--host=[% c("arch") %]-w64-mingw32 CFLAGS="[% c("var/CFLAGS") %]" LDFLAGS="[% c("var/LDFLAGS") %]"' CFLAGS: '-fstack-protector-strong -fno-strict-overflow -Wno-missing-field-initializers -Wformat -Wformat-security [% c("var/flag_mwindows") %]' LDFLAGS: '-Wl,--dynamicbase -Wl,--nxcompat -Wl,--enable-reloc-section -Wl,--no-insert-timestamp -lssp -L$gcclibs [% c("var/flag_HEASLR") %] [% c("var/flag_mwindows") %]' flag_mwindows: '-mwindows' compiler: mingw-w64 + faketime_path: /usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1 deps: - build-essential - python