diff --git a/browser/app/no-pie/moz.build b/browser/app/no-pie/moz.build index 8ee1e24fad15..4c9c884327c3 100644 --- a/browser/app/no-pie/moz.build +++ b/browser/app/no-pie/moz.build @@ -17,6 +17,12 @@ CFLAGS += [ # Use OS_LIBS instead of LDFLAGS to "force" the flag to come after -pie # from MOZ_PROGRAM_LDFLAGS. -OS_LIBS += [ - '-no-pie' -] +if CONFIG['CC_TYPE'] == 'clang': + # clang < 5.0 doesn't support -no-pie. + OS_LIBS += [ + '-nopie' + ] +else: + OS_LIBS += [ + '-no-pie' + ] diff --git a/build/unix/mozconfig.unix b/build/unix/mozconfig.unix index 614628ec4830..362e62b49bc4 100644 --- a/build/unix/mozconfig.unix +++ b/build/unix/mozconfig.unix @@ -13,8 +13,15 @@ else CC="$TOOLTOOL_DIR/clang/bin/clang" CXX="$TOOLTOOL_DIR/clang/bin/clang++" export ENABLE_CLANG_PLUGIN=1 - export CFLAGS="$CFLAGS -fcrash-diagnostics-dir=${UPLOAD_PATH}" - export CXXFLAGS="$CXXFLAGS -fcrash-diagnostics-dir=${UPLOAD_PATH}" + case "$PERFHERDER_EXTRA_OPTIONS" in + base-toolchains*) + # Clang versions < 7.0 don't support the -fcrash-diagnostics-dir flag. + ;; + *) + export CFLAGS="$CFLAGS -fcrash-diagnostics-dir=${UPLOAD_PATH}" + export CXXFLAGS="$CXXFLAGS -fcrash-diagnostics-dir=${UPLOAD_PATH}" + ;; + esac if [ -n "$MOZ_PGO" ]; then if [ -z "$USE_ARTIFACT" ]; then diff --git a/taskcluster/ci/build/linux.yml b/taskcluster/ci/build/linux.yml index ef2e5c6f9d4c..5a8b0da64bf1 100644 --- a/taskcluster/ci/build/linux.yml +++ b/taskcluster/ci/build/linux.yml @@ -313,6 +313,70 @@ linux64-base-toolchains/debug: - linux64-sccache - linux64-node +linux64-base-toolchains-clang/opt: + description: "Linux64 base toolchains clang Opt" + index: + product: firefox + job-name: linux64-base-toolchains-clang-opt + treeherder: + platform: linux64/opt + symbol: Bbc + worker-type: aws-provisioner-v1/gecko-{level}-b-linux + worker: + docker-image: {in-tree: debian7-amd64-build-base} + max-run-time: 7200 + env: + PERFHERDER_EXTRA_OPTIONS: base-toolchains-clang + run: + using: mozharness + actions: [get-secrets, build, check-test] + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + tooltool-downloads: public + need-xvfb: true + toolchains: + - linux64-clang-3.9 + - linux64-rust-1.31 + - linux64-cbindgen + - linux64-sccache + - linux64-node + +linux64-base-toolchains-clang/debug: + description: "Linux64 base toolchains clang Debug" + index: + product: firefox + job-name: linux64-base-toolchains-clang-debug + treeherder: + platform: linux64/debug + symbol: Bbc + worker-type: aws-provisioner-v1/gecko-{level}-b-linux + worker: + docker-image: {in-tree: debian7-amd64-build-base} + max-run-time: 3600 + env: + PERFHERDER_EXTRA_OPTIONS: base-toolchains-clang + run: + using: mozharness + actions: [get-secrets, build, check-test] + config: + - builds/releng_base_firefox.py + - builds/releng_base_linux_64_builds.py + script: "mozharness/scripts/fx_desktop_build.py" + secrets: true + custom-build-variant-cfg: debug + mozconfig-variant: debug + tooltool-downloads: public + need-xvfb: true + toolchains: + - linux64-clang-3.9 + - linux64-rust-1.31 + - linux64-cbindgen + - linux64-sccache + - linux64-node + linux/opt: description: "Linux32 Opt" index: