Bug 1520163 - Add linux64-nasm toolchain. r=glandium
authorThomas Daede <tdaede@mozilla.com>
Mon, 25 Feb 2019 21:10:41 +0000
changeset 461023 fae88bb4c6da6cb2c555b8271de4860b13e4378f
parent 461022 c3c0216fbb616790d3e2d4141f829765dd160aa0
child 461024 a460a4d0a66cd3cbd1d3e6c92e6c6ac5c831e205
push id112146
push usernerli@mozilla.com
push dateTue, 26 Feb 2019 04:26:08 +0000
treeherdermozilla-inbound@c4ce50209f19 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersglandium
bugs1520163
milestone67.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1520163 - Add linux64-nasm toolchain. r=glandium Differential Revision: https://phabricator.services.mozilla.com/D20037
build/mozconfig.nasm
taskcluster/ci/build/android.yml
taskcluster/ci/build/linux.yml
taskcluster/ci/build/macosx.yml
taskcluster/ci/build/windows.yml
taskcluster/ci/fetch/toolchains.yml
taskcluster/ci/instrumented-build/kind.yml
taskcluster/ci/searchfox/kind.yml
taskcluster/ci/static-analysis-autotest/kind.yml
taskcluster/ci/toolchain/nasm.yml
taskcluster/ci/valgrind/kind.yml
taskcluster/scripts/misc/build-nasm.sh
--- a/build/mozconfig.nasm
+++ b/build/mozconfig.nasm
@@ -2,10 +2,11 @@
 # 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
     ;;
 *)
+    export NASM=$topsrcdir/nasm/nasm
     ;;
 esac
--- a/taskcluster/ci/build/android.yml
+++ b/taskcluster/ci/build/android.yml
@@ -49,16 +49,17 @@ android-api-16/debug:
         - android-gradle-dependencies
         - android-ndk-linux
         - android-sdk-linux
         - linux64-clang
         - linux64-rust-android
         - linux64-rust-size
         - linux64-cbindgen
         - linux64-sccache
+        - linux64-nasm
         - linux64-node
 
 android-api-16-ccov/debug:
     description: "Android 4.0 api-16+ Debug Coverage"
     index:
         product: mobile
         job-name: android-api-16-ccov-debug
     treeherder:
@@ -107,16 +108,17 @@ android-api-16-ccov/debug:
         - android-gradle-dependencies
         - android-ndk-linux
         - android-sdk-linux
         - linux64-clang
         - linux64-rust-android
         - linux64-rust-size
         - linux64-cbindgen
         - linux64-sccache
+        - linux64-nasm
         - linux64-node
 
 android-x86/opt:
     description: "Android 4.2 x86 Opt"
     index:
         product: mobile
         job-name: android-x86-opt
     attributes:
@@ -161,16 +163,17 @@ android-x86/opt:
         - android-gradle-dependencies
         - android-ndk-linux
         - android-sdk-linux
         - linux64-clang
         - linux64-rust-android
         - linux64-rust-size
         - linux64-cbindgen
         - linux64-sccache
+        - linux64-nasm
         - linux64-node
 
 android-x86-fuzzing/debug:
     description: "Android x86 Fuzzing Debug"
     index:
         product: mobile
         job-name: android-x86-fuzzing-debug
     treeherder:
@@ -209,16 +212,17 @@ android-x86-fuzzing/debug:
         - android-gradle-dependencies
         - android-ndk-linux
         - android-sdk-linux
         - linux64-clang
         - linux64-rust-android
         - linux64-rust-size
         - linux64-cbindgen
         - linux64-sccache
+        - linux64-nasm
         - linux64-node
 
 android-x86-nightly/opt:
     description: "Android 4.2 x86 Nightly"
     attributes:
         nightly: true
         enable-full-crashsymbols: true
     shipping-phase: build
@@ -267,16 +271,17 @@ android-x86-nightly/opt:
     toolchains:
         - android-gradle-dependencies
         - android-ndk-linux
         - android-sdk-linux
         - linux64-clang
         - linux64-rust-android
         - linux64-rust-size
         - linux64-cbindgen
+        - linux64-nasm
         - linux64-node
 
 android-api-16/opt:
     description: "Android 4.0 api-16+ Opt"
     index:
         product: mobile
         job-name: android-api-16-opt
     attributes:
@@ -321,16 +326,17 @@ android-api-16/opt:
         - android-gradle-dependencies
         - android-ndk-linux
         - android-sdk-linux
         - linux64-clang
         - linux64-rust-android
         - linux64-rust-size
         - linux64-cbindgen
         - linux64-sccache
+        - linux64-nasm
         - linux64-node
 
 android-api-16-without-google-play-services/opt:
     description: "Android 4.0 api-16+ (without Google Play Services) Opt"
     index:
         product: mobile
         job-name: android-api-16-without-google-play-services-opt
     treeherder:
@@ -372,16 +378,17 @@ android-api-16-without-google-play-servi
         - android-gradle-dependencies
         - android-ndk-linux
         - android-sdk-linux
         - linux64-clang
         - linux64-rust-android
         - linux64-rust-size
         - linux64-cbindgen
         - linux64-sccache
+        - linux64-nasm
         - linux64-node
 
 android-api-16-nightly/opt:
     description: "Android 4.0 api-16+ Nightly"
     attributes:
         nightly: true
         enable-full-crashsymbols: true
     shipping-phase: build
@@ -430,16 +437,17 @@ android-api-16-nightly/opt:
     toolchains:
         - android-gradle-dependencies
         - android-ndk-linux
         - android-sdk-linux
         - linux64-clang
         - linux64-rust-android
         - linux64-rust-size
         - linux64-cbindgen
+        - linux64-nasm
         - linux64-node
 
 android-aarch64/opt:
     description: "Android 5.0 AArch64 Opt"
     index:
         product: mobile
         job-name: android-aarch64-opt
     attributes:
@@ -484,16 +492,17 @@ android-aarch64/opt:
         - android-gradle-dependencies
         - android-ndk-linux
         - android-sdk-linux
         - linux64-clang
         - linux64-rust-android
         - linux64-rust-size
         - linux64-cbindgen
         - linux64-sccache
+        - linux64-nasm
         - linux64-node
 
 android-aarch64/debug:
     description: "Android 5.0 AArch64 Debug"
     index:
         product: mobile
         job-name: android-aarch64-debug
     attributes:
@@ -538,16 +547,17 @@ android-aarch64/debug:
         - android-gradle-dependencies
         - android-ndk-linux
         - android-sdk-linux
         - linux64-clang
         - linux64-rust-android
         - linux64-rust-size
         - linux64-cbindgen
         - linux64-sccache
+        - linux64-nasm
         - linux64-node
 
 android-aarch64-nightly/opt:
     description: "Android 5.0 AArch64 Nightly"
     attributes:
         nightly: true
         enable-full-crashsymbols: true
     shipping-phase: build
@@ -596,16 +606,17 @@ android-aarch64-nightly/opt:
     toolchains:
         - android-gradle-dependencies
         - android-ndk-linux
         - android-sdk-linux
         - linux64-clang
         - linux64-rust-android
         - linux64-rust-size
         - linux64-cbindgen
+        - linux64-nasm
         - linux64-node
 
 android-x86_64/opt:
     description: "Android 5.0 x86-64 Opt"
     index:
         product: mobile
         job-name: android-x86_64-opt
     attributes:
@@ -650,16 +661,17 @@ android-x86_64/opt:
         - android-gradle-dependencies
         - android-ndk-linux
         - android-sdk-linux
         - linux64-clang
         - linux64-rust-android
         - linux64-rust-size
         - linux64-cbindgen
         - linux64-sccache
+        - linux64-nasm
         - linux64-node
 
 android-x86_64-nightly/opt:
     description: "Android 5.0 x86-64 Nightly"
     attributes:
         nightly: true
         enable-full-crashsymbols: true
     shipping-phase: build
@@ -708,16 +720,17 @@ android-x86_64-nightly/opt:
     toolchains:
         - android-gradle-dependencies
         - android-ndk-linux
         - android-sdk-linux
         - linux64-clang
         - linux64-rust-android
         - linux64-rust-size
         - linux64-cbindgen
+        - linux64-nasm
         - linux64-node
 
 android-x86_64/debug:
     description: "Android 5.0 x86-64 Debug"
     index:
         product: mobile
         job-name: android-x86_64-debug
     attributes:
@@ -762,9 +775,10 @@ android-x86_64/debug:
         - android-gradle-dependencies
         - android-ndk-linux
         - android-sdk-linux
         - linux64-clang
         - linux64-rust-android
         - linux64-rust-size
         - linux64-cbindgen
         - linux64-sccache
+        - linux64-nasm
         - linux64-node
--- a/taskcluster/ci/build/linux.yml
+++ b/taskcluster/ci/build/linux.yml
@@ -24,16 +24,17 @@ linux64/opt:
     run-on-projects: ['mozilla-central', 'try']
     toolchains:
         - linux64-binutils
         - linux64-clang
         - linux64-rust
         - linux64-rust-size
         - linux64-cbindgen
         - linux64-sccache
+        - linux64-nasm
         - linux64-node
 
 linux64-plain/opt:
     description: "Linux64 Opt Plain"
     index:
         product: firefox
         job-name: linux64-plain-opt
     treeherder:
@@ -56,16 +57,17 @@ linux64-plain/opt:
         extra-config:
             disable_package_metrics: true
         mozconfig-variant: plain-opt
     run-on-projects: ['mozilla-central', 'try']
     toolchains:
         - linux64-binutils
         - linux64-clang
         - linux64-rust
+        - linux64-nasm
         - linux64-node
         - linux64-cbindgen
 
 linux64/pgo:
     description: "Linux64 PGO"
     # Disabled because bug 1516114 shows up much more often
     # use-pgo: true
     index:
@@ -96,16 +98,17 @@ linux64/pgo:
         # mozconfig-variant: profile-use
     toolchains:
         - linux64-binutils
         - linux64-clang
         - linux64-rust
         - linux64-rust-size
         - linux64-cbindgen
         - linux64-sccache
+        - linux64-nasm
         - linux64-node
 
 linux64-fuzzing/debug:
     description: "Linux64 Fuzzing Debug"
     index:
         product: firefox
         job-name: linux64-fuzzing-debug
     treeherder:
@@ -131,16 +134,17 @@ linux64-fuzzing/debug:
         need-xvfb: true
     toolchains:
         - linux64-clang
         - linux64-gcc
         - linux64-cbindgen
         - linux64-sccache
         - linux64-rust
         - linux64-rust-size
+        - linux64-nasm
         - linux64-node
 
 linux64/debug:
     description: "Linux64 Debug"
     index:
         product: firefox
         job-name: linux64-debug
     attributes:
@@ -165,16 +169,17 @@ linux64/debug:
         need-xvfb: true
     toolchains:
         - linux64-binutils
         - linux64-clang
         - linux64-cbindgen
         - linux64-sccache
         - linux64-rust
         - linux64-rust-size
+        - linux64-nasm
         - linux64-node
 
 linux64-plain/debug:
     description: "Linux64 Debug Plain"
     index:
         product: firefox
         job-name: linux64-plain-debug
     treeherder:
@@ -197,16 +202,17 @@ linux64-plain/debug:
         mozconfig-variant: plain-debug
         script: mozharness/scripts/fx_desktop_build.py
         tooltool-downloads: public
     run-on-projects: [trunk]
     toolchains:
         - linux64-binutils
         - linux64-clang
         - linux64-rust
+        - linux64-nasm
         - linux64-node
         - linux64-cbindgen
 
 linux64-devedition-nightly/opt:
     description: "Linux64 devedition Nightly"
     attributes:
         nightly: true
         enable-full-crashsymbols: true
@@ -238,16 +244,17 @@ linux64-devedition-nightly/opt:
         mozconfig-variant: devedition
     run-on-projects: ['mozilla-beta']
     toolchains:
         - linux64-binutils
         - linux64-clang
         - linux64-rust
         - linux64-rust-size
         - linux64-cbindgen
+        - linux64-nasm
         - linux64-node
 
 linux64-base-toolchains/opt:
     description: "Linux64 base toolchains Opt"
     index:
         product: firefox
         job-name: linux64-base-toolchains-opt
     treeherder:
@@ -271,16 +278,17 @@ linux64-base-toolchains/opt:
         tooltool-downloads: public
         need-xvfb: true
     toolchains:
         - linux64-clang-4.0
         - linux64-gcc-6
         - linux64-rust-1.32
         - linux64-cbindgen
         - linux64-sccache
+        - linux64-nasm-2.13.02
         - linux64-node
 
 linux64-base-toolchains/debug:
     description: "Linux64 base toolchains Debug"
     index:
         product: firefox
         job-name: linux64-base-toolchains-debug
     treeherder:
@@ -306,16 +314,17 @@ linux64-base-toolchains/debug:
         tooltool-downloads: public
         need-xvfb: true
     toolchains:
         - linux64-clang-4.0
         - linux64-gcc-6
         - linux64-rust-1.32
         - linux64-cbindgen
         - linux64-sccache
+        - linux64-nasm-2.13.02
         - linux64-node
 
 linux64-base-toolchains-clang/opt:
     description: "Linux64 base toolchains clang Opt"
     index:
         product: firefox
         job-name: linux64-base-toolchains-clang-opt
     treeherder:
@@ -336,16 +345,17 @@ linux64-base-toolchains-clang/opt:
         script: "mozharness/scripts/fx_desktop_build.py"
         secrets: true
         tooltool-downloads: public
         need-xvfb: true
     toolchains:
         - linux64-clang-4.0
         - linux64-rust-1.32
         - linux64-cbindgen
+        - linux64-nasm-2.13.02
         - linux64-node
 
 linux64-base-toolchains-clang/debug:
     description: "Linux64 base toolchains clang Debug"
     index:
         product: firefox
         job-name: linux64-base-toolchains-clang-debug
     treeherder:
@@ -368,16 +378,17 @@ linux64-base-toolchains-clang/debug:
         custom-build-variant-cfg: debug
         mozconfig-variant: debug
         tooltool-downloads: public
         need-xvfb: true
     toolchains:
         - linux64-clang-4.0
         - linux64-rust-1.32
         - linux64-cbindgen
+        - linux64-nasm-2.13.02
         - linux64-node
 
 linux/opt:
     description: "Linux32 Opt"
     index:
         product: firefox
         job-name: linux-opt
     attributes:
@@ -401,16 +412,17 @@ linux/opt:
         need-xvfb: true
     toolchains:
         - linux64-binutils
         - linux64-clang
         - linux64-rust
         - linux64-rust-size
         - linux64-cbindgen
         - linux64-sccache
+        - linux64-nasm
         - linux64-node
 
 linux/debug:
     description: "Linux32 Debug"
     index:
         product: firefox
         job-name: linux-debug
     attributes:
@@ -436,16 +448,17 @@ linux/debug:
         need-xvfb: true
     toolchains:
         - linux64-binutils
         - linux64-clang
         - linux64-rust
         - linux64-rust-size
         - linux64-cbindgen
         - linux64-sccache
+        - linux64-nasm
         - linux64-node
 
 linux/pgo:
     description: "Linux32 PGO"
     index:
         product: firefox
         job-name: linux-pgo
     attributes:
@@ -470,16 +483,17 @@ linux/pgo:
         need-xvfb: true
     toolchains:
         - linux64-binutils
         - linux64-clang
         - linux64-rust
         - linux64-rust-size
         - linux64-cbindgen
         - linux64-sccache
+        - linux64-nasm
         - linux64-node
 
 linux-rusttests/opt:
     description: "Linux32 Rust Tests Opt"
     index:
         product: firefox
         job-name: linux-rusttests-opt
     treeherder:
@@ -507,16 +521,17 @@ linux-rusttests/opt:
         need-xvfb: true
     run-on-projects: ['trunk', 'try']
     toolchains:
         - linux64-binutils
         - linux64-clang
         - linux64-rust
         - linux64-cbindgen
         - linux64-sccache
+        - linux64-nasm
         - linux64-node
 
 linux-rusttests/debug:
     description: "Linux32 Rust Tests Debug"
     index:
         product: firefox
         job-name: linux-rusttests-debug
     treeherder:
@@ -544,16 +559,17 @@ linux-rusttests/debug:
         need-xvfb: true
     run-on-projects: ['trunk', 'try']
     toolchains:
         - linux64-binutils
         - linux64-clang
         - linux64-rust
         - linux64-cbindgen
         - linux64-sccache
+        - linux64-nasm
         - linux64-node
 
 linux-devedition-nightly/opt:
     description: "Linux32 devedition Nightly"
     attributes:
         nightly: true
         enable-full-crashsymbols: true
     shipping-phase: build
@@ -585,16 +601,17 @@ linux-devedition-nightly/opt:
         mozconfig-variant: devedition
     run-on-projects: ['mozilla-beta']
     toolchains:
         - linux64-binutils
         - linux64-clang
         - linux64-rust
         - linux64-rust-size
         - linux64-cbindgen
+        - linux64-nasm
         - linux64-node
 
 linux-nightly/opt:
     description: "Linux32 Nightly"
     attributes:
         nightly: true
         enable-full-crashsymbols: true
     shipping-phase: build
@@ -622,16 +639,17 @@ linux-nightly/opt:
         tooltool-downloads: public
         need-xvfb: true
     toolchains:
         - linux64-binutils
         - linux64-clang
         - linux64-rust
         - linux64-rust-size
         - linux64-cbindgen
+        - linux64-nasm
         - linux64-node
 
 linux64-asan/opt:
     description: "Linux64 Opt ASAN"
     index:
         product: firefox
         job-name: linux64-asan-opt
     treeherder:
@@ -656,16 +674,17 @@ linux64-asan/opt:
         need-xvfb: true
     toolchains:
         - linux64-binutils
         - linux64-clang
         - linux64-rust
         - linux64-rust-size
         - linux64-cbindgen
         - linux64-sccache
+        - linux64-nasm
         - linux64-node
 
 linux64-asan-fuzzing/opt:
     description: "Linux64 Fuzzing Opt ASAN"
     index:
         product: firefox
         job-name: linux64-fuzzing-asan-opt
     treeherder:
@@ -690,16 +709,17 @@ linux64-asan-fuzzing/opt:
         need-xvfb: true
     toolchains:
         - linux64-binutils
         - linux64-clang
         - linux64-rust
         - linux64-rust-size
         - linux64-cbindgen
         - linux64-sccache
+        - linux64-nasm
         - linux64-node
 
 linux64-asan-fuzzing-ccov/opt:
     description: "Linux64 Fuzzing Opt ASAN w/ Coverage"
     index:
         product: firefox
         job-name: linux64-ccov-fuzzing-asan-opt
     treeherder:
@@ -724,16 +744,17 @@ linux64-asan-fuzzing-ccov/opt:
         need-xvfb: true
     toolchains:
         - linux64-binutils
         - linux64-clang
         - linux64-rust
         - linux64-rust-size
         - linux64-cbindgen
         - linux64-sccache
+        - linux64-nasm
         - linux64-node
 
 linux64-fuzzing-ccov/opt:
     description: "Linux64 Fuzzing Opt w/ Coverage"
     index:
         product: firefox
         job-name: linux64-ccov-fuzzing-opt
     treeherder:
@@ -759,16 +780,17 @@ linux64-fuzzing-ccov/opt:
         need-xvfb: true
     toolchains:
         - linux64-clang
         - linux64-gcc
         - linux64-cbindgen
         - linux64-rust-nightly
         - linux64-rust-size
         - linux64-sccache
+        - linux64-nasm
         - linux64-node
 
 linux64-asan-reporter-nightly/opt:
     description: "Linux64 Opt ASAN Reporter Nightly"
     attributes:
         nightly: true
     shipping-product:
         by-release-type:
@@ -801,16 +823,17 @@ linux64-asan-reporter-nightly/opt:
         tooltool-downloads: public
         need-xvfb: true
     toolchains:
         - linux64-binutils
         - linux64-clang
         - linux64-rust
         - linux64-rust-size
         - linux64-cbindgen
+        - linux64-nasm
         - linux64-node
 
 linux64-asan/debug:
     description: "Linux64 Debug ASAN"
     index:
         product: firefox
         job-name: linux64-asan-debug
     treeherder:
@@ -835,16 +858,17 @@ linux64-asan/debug:
         need-xvfb: true
     toolchains:
         - linux64-binutils
         - linux64-clang
         - linux64-rust
         - linux64-rust-size
         - linux64-cbindgen
         - linux64-sccache
+        - linux64-nasm
         - linux64-node
 
 linux64-nightly/opt:
     description: "Linux64 Nightly"
     attributes:
         nightly: true
         enable-full-crashsymbols: true
     shipping-phase: build
@@ -871,16 +895,17 @@ linux64-nightly/opt:
         tooltool-downloads: public
         need-xvfb: true
     toolchains:
         - linux64-binutils
         - linux64-clang
         - linux64-rust
         - linux64-rust-size
         - linux64-cbindgen
+        - linux64-nasm
         - linux64-node
 
 linux64-noopt/debug:
     description: "Linux64 No-optimize Debug"
     index:
         product: firefox
         job-name: linux64-noopt-debug
     treeherder:
@@ -906,16 +931,17 @@ linux64-noopt/debug:
     run-on-projects: ['trunk', 'try']
     toolchains:
         - linux64-binutils
         - linux64-clang
         - linux64-rust
         - linux64-rust-size
         - linux64-cbindgen
         - linux64-sccache
+        - linux64-nasm
         - linux64-node
 
 linux64-rusttests/opt:
     description: "Linux64 Rust Tests Opt"
     index:
         product: firefox
         job-name: linux64-rusttests-opt
     treeherder:
@@ -942,16 +968,17 @@ linux64-rusttests/opt:
         need-xvfb: true
     run-on-projects: ['trunk', 'try']
     toolchains:
         - linux64-binutils
         - linux64-clang
         - linux64-rust
         - linux64-cbindgen
         - linux64-sccache
+        - linux64-nasm
         - linux64-node
 
 linux64-rusttests/debug:
     description: "Linux64 Rust Tests Debug"
     index:
         product: firefox
         job-name: linux64-rusttests-debug
     treeherder:
@@ -978,16 +1005,17 @@ linux64-rusttests/debug:
         need-xvfb: true
     run-on-projects: ['trunk', 'try']
     toolchains:
         - linux64-binutils
         - linux64-clang
         - linux64-rust
         - linux64-cbindgen
         - linux64-sccache
+        - linux64-nasm
         - linux64-node
 
 linux64-tup/opt:
     description: "Linux64 Tup"
     index:
         product: firefox
         job-name: linux64-tup-opt
     treeherder:
@@ -1014,16 +1042,17 @@ linux64-tup/opt:
     run-on-projects: []
     toolchains:
         - linux64-binutils
         - linux64-clang
         - linux64-rust-nightly
         - linux64-cbindgen
         - linux64-sccache
         - linux64-tup
+        - linux64-nasm
         - linux64-node
 
 linux64-ccov/debug:
     description: "Linux64-CCov Debug"
     index:
         product: firefox
         job-name: linux64-ccov-debug
     treeherder:
@@ -1053,16 +1082,17 @@ linux64-ccov/debug:
         tooltool-downloads: public
         need-xvfb: true
     toolchains:
         - linux64-clang-7
         - linux64-rust-nightly
         - linux64-gcc
         - linux64-cbindgen
         - linux64-sccache
+        - linux64-nasm
         - linux64-node
     fetches:
         toolchain:
             - linux64-grcov
 
 linux64-ccov/opt:
     description: "Linux64-CCov Opt"
     index:
@@ -1091,16 +1121,17 @@ linux64-ccov/opt:
         tooltool-downloads: public
         need-xvfb: true
     toolchains:
         - linux64-clang-7
         - linux64-rust-nightly
         - linux64-gcc
         - linux64-cbindgen
         - linux64-sccache
+        - linux64-nasm
         - linux64-node
 
 linux64-add-on-devel/opt:
     description: "Linux64 add-on-devel"
     index:
         product: firefox
         job-name: linux64-add-on-devel
     treeherder:
@@ -1125,9 +1156,10 @@ linux64-add-on-devel/opt:
     run-on-projects: ['mozilla-beta', 'mozilla-release', 'mozilla-esr45']
     toolchains:
         - linux64-binutils
         - linux64-clang
         - linux64-rust
         - linux64-rust-size
         - linux64-cbindgen
         - linux64-sccache
+        - linux64-nasm
         - linux64-node
--- a/taskcluster/ci/build/macosx.yml
+++ b/taskcluster/ci/build/macosx.yml
@@ -30,16 +30,17 @@ macosx64/debug:
         - linux64-clang
         - linux64-hfsplus
         - linux64-libdmg
         - linux64-llvm-dsymutil
         - linux64-rust-macos
         - linux64-rust-size
         - linux64-cbindgen
         - linux64-sccache
+        - linux64-nasm
         - linux64-node
 
 macosx64/opt:
     description: "MacOS X x64 Cross-compile"
     index:
         product: firefox
         job-name: macosx64-opt
     attributes:
@@ -67,16 +68,17 @@ macosx64/opt:
         - linux64-clang
         - linux64-hfsplus
         - linux64-libdmg
         - linux64-llvm-dsymutil
         - linux64-rust-macos
         - linux64-rust-size
         - linux64-cbindgen
         - linux64-sccache
+        - linux64-nasm
         - linux64-node
 
 macosx64-asan-fuzzing/opt:
     description: "MacOS X x64 Cross-compile Fuzzing ASAN"
     index:
         product: firefox
         job-name: macosx64-fuzzing-asan-opt
     treeherder:
@@ -104,16 +106,17 @@ macosx64-asan-fuzzing/opt:
         - linux64-clang-macosx-cross
         - linux64-hfsplus
         - linux64-libdmg
         - linux64-llvm-dsymutil
         - linux64-rust-macos
         - linux64-rust-size
         - linux64-cbindgen
         - linux64-sccache
+        - linux64-nasm
         - linux64-node
 
 macosx64-devedition-nightly/opt:
     description: "MacOS X Dev Edition x64 Nightly"
     attributes:
         nightly: true
         enable-full-crashsymbols: true
     shipping-phase: build
@@ -149,16 +152,17 @@ macosx64-devedition-nightly/opt:
         - linux64-cctools-port
         - linux64-clang
         - linux64-hfsplus
         - linux64-libdmg
         - linux64-llvm-dsymutil
         - linux64-rust-macos
         - linux64-rust-size
         - linux64-cbindgen
+        - linux64-nasm
         - linux64-node
 
 macosx64-noopt/debug:
     description: "MacOS X x64 No-optimize Debug"
     index:
         product: firefox
         job-name: macosx64-noopt-debug
     treeherder:
@@ -188,16 +192,17 @@ macosx64-noopt/debug:
         - linux64-clang
         - linux64-hfsplus
         - linux64-libdmg
         - linux64-llvm-dsymutil
         - linux64-rust-macos
         - linux64-rust-size
         - linux64-cbindgen
         - linux64-sccache
+        - linux64-nasm
         - linux64-node
 
 macosx64-add-on-devel/opt:
     description: "MacOS X x64 add-on-devel"
     index:
         product: firefox
         job-name: macosx64-add-on-devel
     treeherder:
@@ -226,16 +231,17 @@ macosx64-add-on-devel/opt:
         - linux64-clang
         - linux64-hfsplus
         - linux64-libdmg
         - linux64-llvm-dsymutil
         - linux64-rust-macos
         - linux64-rust-size
         - linux64-cbindgen
         - linux64-sccache
+        - linux64-nasm
         - linux64-node
 
 macosx64-nightly/opt:
     description: "MacOS X x64 Cross-compile Nightly"
     attributes:
         nightly: true
         enable-full-crashsymbols: true
     shipping-phase: build
@@ -267,16 +273,17 @@ macosx64-nightly/opt:
         - linux64-cctools-port
         - linux64-clang
         - linux64-hfsplus
         - linux64-libdmg
         - linux64-llvm-dsymutil
         - linux64-rust-macos
         - linux64-rust-size
         - linux64-cbindgen
+        - linux64-nasm
         - linux64-node
 
 macosx64-ccov/debug:
     description: "MacOS X x64 Cross-compile Code Coverage"
     index:
         product: firefox
         job-name: macosx64-ccov-debug
     treeherder:
@@ -305,9 +312,10 @@ macosx64-ccov/debug:
         - linux64-clang-macosx-cross
         - linux64-hfsplus
         - linux64-libdmg
         - linux64-llvm-dsymutil
         - linux64-rust-nightly-macos
         - linux64-rust-size
         - linux64-cbindgen
         - linux64-sccache
+        - linux64-nasm
         - linux64-node
--- a/taskcluster/ci/build/windows.yml
+++ b/taskcluster/ci/build/windows.yml
@@ -1111,16 +1111,17 @@ win32-mingwclang/opt:
         mozconfig-variant: mingwclang
         need-xvfb: false
     toolchains:
         - mingw32-rust
         - linux64-upx
         - linux64-wine
         - linux64-sccache
         - linux64-cbindgen
+        - linux64-nasm
         - linux64-node
         - linux64-clang-trunk-mingw-x86
         - linux64-mingw32-nsis
         - linux64-mingw-fxc2-x86
 
 win32-mingwclang/debug:
     description: "Win32 MinGW-Clang Debug"
     index:
@@ -1146,16 +1147,17 @@ win32-mingwclang/debug:
         mozconfig-variant: mingwclang-debug
         need-xvfb: false
     toolchains:
         - mingw32-rust
         - linux64-upx
         - linux64-wine
         - linux64-sccache
         - linux64-cbindgen
+        - linux64-nasm
         - linux64-node
         - linux64-clang-trunk-mingw-x86
         - linux64-mingw32-nsis
         - linux64-mingw-fxc2-x86
 
 win64-mingwclang/opt:
     description: "Win64 MinGW-Clang Opt"
     index:
@@ -1181,16 +1183,17 @@ win64-mingwclang/opt:
         mozconfig-variant: mingwclang
         need-xvfb: false
     toolchains:
         - mingw32-rust
         - linux64-upx
         - linux64-wine
         - linux64-sccache
         - linux64-cbindgen
+        - linux64-nasm
         - linux64-node
         - linux64-clang-trunk-mingw-x64
         - linux64-mingw32-nsis
         - linux64-mingw-fxc2-x86
 
 win64-mingwclang/debug:
     description: "Win64 MinGW-Clang Debug"
     index:
@@ -1216,12 +1219,13 @@ win64-mingwclang/debug:
         mozconfig-variant: mingwclang-debug
         need-xvfb: false
     toolchains:
         - mingw32-rust
         - linux64-upx
         - linux64-wine
         - linux64-sccache
         - linux64-cbindgen
+        - linux64-nasm
         - linux64-node
         - linux64-clang-trunk-mingw-x64
         - linux64-mingw32-nsis
         - linux64-mingw-fxc2-x86
--- a/taskcluster/ci/fetch/toolchains.yml
+++ b/taskcluster/ci/fetch/toolchains.yml
@@ -172,20 +172,28 @@ mpfr-3.1.5:
     gpg-signature:
       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
+    url: https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/nasm-2.14.02.tar.xz
     sha256: e24ade3e928f7253aa8c14aa44726d1edf3f98643f87c9d72ec1df44b26be8f5
     size: 827620
 
+nasm-2.13.02:
+  description: nasm 2.13.02 source code
+  fetch:
+    type: static-url
+    url: https://www.nasm.us/pub/nasm/releasebuilds/2.13.02/nasm-2.13.02.tar.xz
+    sha256: 8ac3235f49a6838ff7a8d7ef7c19a4430d0deecc0c2d3e3e237b5e9f53291757
+    size: 805744
+
 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
   # Bug 1479533 and related code is ready.
   fetch:
     type: static-url
     url: https://github.com/wixtoolset/wix3/releases/download/wix3111rtm/wix311-binaries.zip
     sha256: 37f0a533b0978a454efb5dc3bd3598becf9660aaf4287e55bf68ca6b527d051d
--- a/taskcluster/ci/instrumented-build/kind.yml
+++ b/taskcluster/ci/instrumented-build/kind.yml
@@ -46,9 +46,10 @@ jobs:
             need-xvfb: true
         toolchains:
             - linux64-binutils
             - linux64-clang
             - linux64-rust
             - linux64-rust-size
             - linux64-cbindgen
             - linux64-sccache
+            - linux64-nasm
             - linux64-node
--- a/taskcluster/ci/searchfox/kind.yml
+++ b/taskcluster/ci/searchfox/kind.yml
@@ -43,16 +43,17 @@ jobs:
             config:
                 - builds/releng_base_firefox.py
                 - builds/releng_sub_linux_configs/64_searchfox_and_debug.py
             script: "mozharness/scripts/fx_desktop_build.py"
             tooltool-downloads: public
             keep-artifacts: false
         toolchains:
             - linux64-clang
+            - linux64-nasm
             - linux64-node
             - linux64-rust
             - linux64-cbindgen
 
     macosx64-searchfox/debug:
         description: "MacOS X x64 Debug Cross-compile Searchfox"
         index:
             job-name: macosx64-searchfox-debug
@@ -78,16 +79,17 @@ jobs:
             tooltool-downloads: internal
             keep-artifacts: false
         toolchains:
             - linux64-cctools-port
             - linux64-clang
             - linux64-hfsplus
             - linux64-libdmg
             - linux64-llvm-dsymutil
+            - linux64-nasm
             - linux64-node
             - linux64-rust-macos
             - linux64-cbindgen
 
     win64-searchfox/debug:
         description: "Win64 Searchfox Debug (clang-cl)"
         index:
             product: firefox
--- a/taskcluster/ci/static-analysis-autotest/kind.yml
+++ b/taskcluster/ci/static-analysis-autotest/kind.yml
@@ -54,16 +54,17 @@ jobs:
             keep-artifacts: false
         toolchains:
             - linux64-clang
             - linux64-clang-tidy
             - linux64-infer
             - linux64-rust
             - linux64-sccache
             - linux64-cbindgen
+            - linux64-nasm
             - linux64-node
 
     win64-st-autotest/debug:
         description: "Win64 Debug Static Analysis Autotest"
         index:
             job-name: win64-st-autotest-debug
         treeherder:
             platform: windows2012-64/debug
--- a/taskcluster/ci/toolchain/nasm.yml
+++ b/taskcluster/ci/toolchain/nasm.yml
@@ -1,18 +1,49 @@
+# 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/.
+
+job-defaults:
+    worker-type: aws-provisioner-v1/gecko-{level}-b-linux
+    worker:
+        max-run-time: 1800
+    run:
+        resources:
+            - 'taskcluster/scripts/misc/tooltool-download.sh'
+        toolchain-artifact: public/build/nasm.tar.bz2
+
 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
+        arguments: ['win64']
     toolchains:
         - linux64-clang-trunk-mingw-x64
     fetches:
         fetch:
             - nasm-2.14.02
+
+linux64-nasm:
+    description: "nasm linux64 build"
+    treeherder:
+        symbol: TL(nasm)
+    run:
+        script: build-nasm.sh
+        arguments: ['linux64']
+    fetches:
+        fetch:
+            - nasm-2.14.02
+
+linux64-nasm-2.13.02:
+    description: "nasm linux64 minimum supported version build"
+    treeherder:
+        symbol: TL(nasm-2.13.02)
+    run:
+        script: build-nasm.sh
+        arguments: ['linux64']
+    fetches:
+        fetch:
+            - nasm-2.13.02
--- a/taskcluster/ci/valgrind/kind.yml
+++ b/taskcluster/ci/valgrind/kind.yml
@@ -43,9 +43,10 @@ jobs:
             tooltool-downloads: public
             need-xvfb: true
         toolchains:
             - linux64-binutils
             - linux64-clang
             - linux64-rust
             - linux64-cbindgen
             - linux64-sccache
+            - linux64-nasm
             - linux64-node
--- a/taskcluster/scripts/misc/build-nasm.sh
+++ b/taskcluster/scripts/misc/build-nasm.sh
@@ -1,25 +1,32 @@
+
 #!/bin/bash
 set -x -e -v
 
-case "$(uname -s)" in
-    Linux)
-        WORKSPACE=$HOME/workspace
-        UPLOAD_DIR=$HOME/artifacts
-        COMPRESS_EXT=bz2
-        ;;
-esac
+WORKSPACE=$HOME/workspace
+UPLOAD_DIR=$HOME/artifacts
+COMPRESS_EXT=bz2
 
 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
+cd $WORKSPACE/build/nasm-*
+case "$1" in
+    win64)
+        export PATH="$WORKSPACE/build/src/clang/bin:$PATH"
+        ./configure CC=x86_64-w64-mingw32-clang AR=llvm-ar RANLIB=llvm-ranlib --host=x86_64-w64-mingw32
+        EXE=.exe
+        ;;
+    *)
+        ./configure
+        EXE=
+        ;;
+esac
 make -j$(nproc)
 
+mv nasm$EXE nasm-tmp
 mkdir nasm
-mv nasm.exe nasm/
+mv nasm-tmp nasm/nasm$EXE
 tar -acf nasm.tar.$COMPRESS_EXT nasm
 mkdir -p "$UPLOAD_DIR"
 cp nasm.tar.$COMPRESS_EXT "$UPLOAD_DIR"