Bug 1520163 - Add linux64-nasm toolchain. r=glandium
authorThomas Daede <tdaede@mozilla.com>
Fri, 22 Feb 2019 21:52:41 +0000
changeset 460683 e9e880f7aee43ed8ebdcae192c28482235d2a8d6
parent 460682 3f221b9ba73f9955f1171571eb800a6b86ad48a1
child 460684 9ec1ba39a978422f223fd7dd1723274b150de182
push id112104
push userrmaries@mozilla.com
push dateSat, 23 Feb 2019 04:28:17 +0000
treeherdermozilla-inbound@6924dd16f7b1 [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/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
@@ -484,16 +491,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 +546,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 +605,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 +660,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 +719,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 +774,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
@@ -1083,16 +1083,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:
@@ -1118,16 +1119,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:
@@ -1153,16 +1155,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:
@@ -1188,12 +1191,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/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"