From 3fcd2d85d2149f5ff191f6c1b885cab3677ec644 Mon Sep 17 00:00:00 2001 From: Thomas Daede Date: Thu, 14 Feb 2019 21:30:22 +0000 Subject: [PATCH] Bug 1511224 - Add win64-nasm toolchain. r=ted,jya,glandium Differential Revision: https://phabricator.services.mozilla.com/D13875 --HG-- extra : moz-landing-system : lando --- build/mozconfig.common | 1 + build/mozconfig.nasm | 11 +++++++++ media/ffvpx/config_win64.asm | 2 +- taskcluster/ci/build/windows.yml | 33 ++++++++++++++++++++++++++ taskcluster/ci/fetch/toolchains.yml | 8 +++++++ taskcluster/ci/toolchain/clang.yml | 2 +- taskcluster/ci/toolchain/kind.yml | 1 + taskcluster/ci/toolchain/nasm.yml | 18 ++++++++++++++ taskcluster/scripts/misc/build-nasm.sh | 25 +++++++++++++++++++ 9 files changed, 99 insertions(+), 2 deletions(-) create mode 100644 build/mozconfig.nasm create mode 100644 taskcluster/ci/toolchain/nasm.yml create mode 100755 taskcluster/scripts/misc/build-nasm.sh diff --git a/build/mozconfig.common b/build/mozconfig.common index 308795ff549c..2951948a18dd 100644 --- a/build/mozconfig.common +++ b/build/mozconfig.common @@ -19,6 +19,7 @@ MOZ_REQUIRE_SIGNING=${MOZ_REQUIRE_SIGNING-0} ac_add_options --enable-js-shell +. "$topsrcdir/build/mozconfig.nasm" . "$topsrcdir/build/mozconfig.node" . "$topsrcdir/build/mozconfig.automation" . "$topsrcdir/build/mozconfig.rust" diff --git a/build/mozconfig.nasm b/build/mozconfig.nasm new file mode 100644 index 000000000000..9db9ba2b0303 --- /dev/null +++ b/build/mozconfig.nasm @@ -0,0 +1,11 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +case "$(uname -s)" in +MINGW*) + export NASM=$topsrcdir/nasm/nasm.exe + ;; +*) + ;; +esac diff --git a/media/ffvpx/config_win64.asm b/media/ffvpx/config_win64.asm index fecfee4988a5..64e1c6dfb62d 100644 --- a/media/ffvpx/config_win64.asm +++ b/media/ffvpx/config_win64.asm @@ -54,7 +54,7 @@ %define HAVE_SSE42 1 %define HAVE_SSSE3 1 %define HAVE_XOP 1 -%define HAVE_CPUNOP 1 +%define HAVE_CPUNOP 0 %define HAVE_I686 1 %define HAVE_MIPSFPU 0 %define HAVE_MIPS32R2 0 diff --git a/taskcluster/ci/build/windows.yml b/taskcluster/ci/build/windows.yml index 89aba43c7cd6..9063ccd89bfb 100755 --- a/taskcluster/ci/build/windows.yml +++ b/taskcluster/ci/build/windows.yml @@ -34,6 +34,7 @@ win32/debug: - win64-rust-size - win64-cbindgen - win64-sccache + - win64-nasm - win64-node win32/opt: @@ -67,6 +68,7 @@ win32/opt: - win64-rust-size - win64-cbindgen - win64-sccache + - win64-nasm - win64-node win32/pgo: @@ -100,6 +102,7 @@ win32/pgo: - win64-rust-size - win64-cbindgen - win64-sccache + - win64-nasm - win64-node win64/debug: @@ -133,6 +136,7 @@ win64/debug: - win64-rust-size - win64-cbindgen - win64-sccache + - win64-nasm - win64-node win64-fuzzing/debug: @@ -168,6 +172,7 @@ win64-fuzzing/debug: - win64-rust-size - win64-cbindgen - win64-sccache + - win64-nasm - win64-node win64-plain/debug: @@ -201,6 +206,7 @@ win64-plain/debug: - win64-clang-cl - win64-rust - win64-node + - win64-nasm - win64-cbindgen win64/opt: @@ -234,6 +240,7 @@ win64/opt: - win64-rust-size - win64-cbindgen - win64-sccache + - win64-nasm - win64-node win64-plain/opt: @@ -267,6 +274,7 @@ win64-plain/opt: toolchains: - win64-clang-cl - win64-rust + - win64-nasm - win64-node - win64-cbindgen @@ -314,6 +322,7 @@ win32-nightly/opt: - win64-rust-size - win64-cbindgen - win64-sccache + - win64-nasm - win64-node win64-nightly/opt: @@ -353,6 +362,7 @@ win64-nightly/opt: - win64-rust-size - win64-cbindgen - win64-sccache + - win64-nasm - win64-node win64/pgo: @@ -386,6 +396,7 @@ win64/pgo: - win64-rust-size - win64-cbindgen - win64-sccache + - win64-nasm - win64-node win32-add-on-devel/opt: @@ -419,6 +430,7 @@ win32-add-on-devel/opt: - win64-rust-size - win64-cbindgen - win64-sccache + - win64-nasm - win64-node win64-add-on-devel/opt: @@ -452,6 +464,7 @@ win64-add-on-devel/opt: - win64-rust-size - win64-cbindgen - win64-sccache + - win64-nasm - win64-node win64-noopt/debug: @@ -484,6 +497,7 @@ win64-noopt/debug: - win64-rust-size - win64-cbindgen - win64-sccache + - win64-nasm - win64-node win32-noopt/debug: @@ -516,6 +530,7 @@ win32-noopt/debug: - win64-rust-size - win64-cbindgen - win64-sccache + - win64-nasm - win64-node win32-rusttests/opt: @@ -553,6 +568,7 @@ win32-rusttests/opt: - win64-rust - win64-cbindgen - win64-sccache + - win64-nasm - win64-node win32-rusttests/debug: @@ -590,6 +606,7 @@ win32-rusttests/debug: - win64-rust - win64-cbindgen - win64-sccache + - win64-nasm - win64-node win64-rusttests/opt: @@ -622,6 +639,7 @@ win64-rusttests/opt: - win64-rust - win64-cbindgen - win64-sccache + - win64-nasm - win64-node win64-rusttests/debug: @@ -654,6 +672,7 @@ win64-rusttests/debug: - win64-rust - win64-cbindgen - win64-sccache + - win64-nasm - win64-node win64-ccov/debug: @@ -690,6 +709,7 @@ win64-ccov/debug: - win64-rust-size - win64-cbindgen - win64-sccache + - win64-nasm - win64-node fetches: toolchain: @@ -726,6 +746,7 @@ win64-asan/debug: - win64-rust-size - win64-cbindgen - win64-sccache + - win64-nasm - win64-node win64-asan/opt: @@ -760,6 +781,7 @@ win64-asan/opt: - win64-rust-size - win64-cbindgen - win64-sccache + - win64-nasm - win64-node win64-asan-reporter-nightly/opt: @@ -802,6 +824,7 @@ win64-asan-reporter-nightly/opt: - win64-rust-size - win64-cbindgen - win64-sccache + - win64-nasm - win64-node win64-asan-fuzzing/opt: @@ -835,6 +858,7 @@ win64-asan-fuzzing/opt: - win64-rust-size - win64-cbindgen - win64-sccache + - win64-nasm - win64-node win32-devedition-nightly/opt: @@ -882,6 +906,7 @@ win32-devedition-nightly/opt: - win64-rust-size - win64-cbindgen - win64-sccache + - win64-nasm - win64-node win64-devedition-nightly/opt: @@ -922,6 +947,7 @@ win64-devedition-nightly/opt: - win64-rust-size - win64-cbindgen - win64-sccache + - win64-nasm - win64-node win32-msvc/debug: @@ -953,6 +979,7 @@ win32-msvc/debug: - win64-rust - win64-cbindgen - win64-sccache + - win64-nasm - win64-node win32-msvc/opt: @@ -985,6 +1012,7 @@ win32-msvc/opt: - win64-rust - win64-cbindgen - win64-sccache + - win64-nasm - win64-node win64-msvc/debug: @@ -1016,6 +1044,7 @@ win64-msvc/debug: - win64-rust - win64-cbindgen - win64-sccache + - win64-nasm - win64-node win64-msvc/opt: @@ -1048,6 +1077,7 @@ win64-msvc/opt: - win64-rust - win64-cbindgen - win64-sccache + - win64-nasm - win64-node win64-aarch64/debug: @@ -1083,6 +1113,7 @@ win64-aarch64/debug: - win64-aarch64-rust - win64-cbindgen - win64-sccache + - win64-nasm - win64-node win64-aarch64/opt: @@ -1118,6 +1149,7 @@ win64-aarch64/opt: - win64-aarch64-rust - win64-cbindgen - win64-sccache + - win64-nasm - win64-node win64-aarch64-nightly/opt: @@ -1157,6 +1189,7 @@ win64-aarch64-nightly/opt: - win64-aarch64-rust - win64-cbindgen - win64-sccache + - win64-nasm - win64-node win32-mingwclang/opt: diff --git a/taskcluster/ci/fetch/toolchains.yml b/taskcluster/ci/fetch/toolchains.yml index c67fa0de1c63..c484dc7cc993 100644 --- a/taskcluster/ci/fetch/toolchains.yml +++ b/taskcluster/ci/fetch/toolchains.yml @@ -173,6 +173,14 @@ mpfr-3.1.5: sig-url: "{url}.asc" key-path: build/unix/build-gcc/07F3DBBECC1A39605078094D980C197698C3739D.key +nasm-2.14.02: + description: nasm 2.14.02 source code + fetch: + type: static-url + url: https://ftp.halifax.rwth-aachen.de/gentoo/distfiles/nasm-2.14.02.tar.xz + sha256: e24ade3e928f7253aa8c14aa44726d1edf3f98643f87c9d72ec1df44b26be8f5 + size: 827620 + wix-3.1.1: description: wix 3.1.1 binary release # WIX doesn't use a wrapping toplevel DIR, so we should really repackage it when diff --git a/taskcluster/ci/toolchain/clang.yml b/taskcluster/ci/toolchain/clang.yml index af6ef32554a8..a68385e362de 100644 --- a/taskcluster/ci/toolchain/clang.yml +++ b/taskcluster/ci/toolchain/clang.yml @@ -60,7 +60,7 @@ linux64-clang-trunk-mingw-x64: description: "MinGW-Clang Trunk x64 toolchain build" treeherder: symbol: TMW(clang-x64) - tier: 2 + tier: 1 run: script: build-clang-trunk-mingw.sh arguments: [ diff --git a/taskcluster/ci/toolchain/kind.yml b/taskcluster/ci/toolchain/kind.yml index 2e7ce5b92da5..57af10e234c1 100644 --- a/taskcluster/ci/toolchain/kind.yml +++ b/taskcluster/ci/toolchain/kind.yml @@ -35,6 +35,7 @@ jobs-from: - mingw.yml - minidump_stackwalk.yml - misc.yml + - nasm.yml - node.yml - rust.yml - rust-size.yml diff --git a/taskcluster/ci/toolchain/nasm.yml b/taskcluster/ci/toolchain/nasm.yml new file mode 100644 index 000000000000..5313ac6a5196 --- /dev/null +++ b/taskcluster/ci/toolchain/nasm.yml @@ -0,0 +1,18 @@ +win64-nasm: + description: "nasm win64 build" + treeherder: + symbol: TW64(nasm) + worker-type: aws-provisioner-v1/gecko-{level}-b-linux + worker: + docker-image: {in-tree: mingw32-build} + max-run-time: 1800 + run: + script: build-nasm.sh + resources: + - 'taskcluster/scripts/misc/tooltool-download.sh' + toolchain-artifact: public/build/nasm.tar.bz2 + toolchains: + - linux64-clang-trunk-mingw-x64 + fetches: + fetch: + - nasm-2.14.02 diff --git a/taskcluster/scripts/misc/build-nasm.sh b/taskcluster/scripts/misc/build-nasm.sh new file mode 100755 index 000000000000..c7673ea20cbb --- /dev/null +++ b/taskcluster/scripts/misc/build-nasm.sh @@ -0,0 +1,25 @@ +#!/bin/bash +set -x -e -v + +case "$(uname -s)" in + Linux) + WORKSPACE=$HOME/workspace + UPLOAD_DIR=$HOME/artifacts + COMPRESS_EXT=bz2 + ;; +esac + +cd $WORKSPACE/build/src + +. taskcluster/scripts/misc/tooltool-download.sh +export PATH="$WORKSPACE/build/src/clang/bin:$PATH" + +cd $WORKSPACE/build/nasm-2.14.02 +./configure CC=x86_64-w64-mingw32-clang AR=llvm-ar RANLIB=llvm-ranlib --host=x86_64-w64-mingw32 +make -j$(nproc) + +mkdir nasm +mv nasm.exe nasm/ +tar -acf nasm.tar.$COMPRESS_EXT nasm +mkdir -p "$UPLOAD_DIR" +cp nasm.tar.$COMPRESS_EXT "$UPLOAD_DIR"