diff --git a/appveyor.yml b/appveyor.yml index 641b861165a..dee402b8c46 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -32,6 +32,8 @@ environment: C:\\Program Files\\AppVeyor\\BuildAgent;" CC: "clang-cl.exe" CXX: "clang-cl.exe" + LINKER: "lld-link.exe" + PYTHON3: "C:\\Python37-x64\\python.exe" matrix: - TARGET: nightly-x86_64-pc-windows-msvc diff --git a/etc/ci/buildbot_steps.yml b/etc/ci/buildbot_steps.yml index 5cbeac6cc0f..eb7593d44fa 100644 --- a/etc/ci/buildbot_steps.yml +++ b/etc/ci/buildbot_steps.yml @@ -6,6 +6,10 @@ env: GST_DEBUG: '3' mac-rel-wpt2: + env: + CC: /usr/local/opt/llvm/bin/clang + CXX: /usr/local/opt/llvm/bin/clang++ + commands: - ./mach clean-nightlies --keep 3 --force - ./mach clean-cargo-cache --keep 3 --force - env PKG_CONFIG_PATH=/usr/local/opt/zlib/lib/pkgconfig ./mach build --release @@ -13,6 +17,10 @@ mac-rel-wpt2: - ./mach filter-intermittents wpt-errorsummary.log --log-intermittents intermittents.log --log-filteredsummary filtered-wpt-errorsummary.log --tracker-api default --reporter-api default mac-rel-wpt3: + env: + CC: /usr/local/opt/llvm/bin/clang + CXX: /usr/local/opt/llvm/bin/clang++ + commands: - ./mach clean-nightlies --keep 3 --force - ./mach clean-cargo-cache --keep 3 --force - env PKG_CONFIG_PATH=/usr/local/opt/zlib/lib/pkgconfig ./mach build --release @@ -20,6 +28,10 @@ mac-rel-wpt3: - ./mach filter-intermittents wpt-errorsummary.log --log-intermittents intermittents.log --log-filteredsummary filtered-wpt-errorsummary.log --tracker-api default --reporter-api default mac-rel-wpt4: + env: + CC: /usr/local/opt/llvm/bin/clang + CXX: /usr/local/opt/llvm/bin/clang++ + commands: - ./mach clean-nightlies --keep 3 --force - ./mach clean-cargo-cache --keep 3 --force - env PKG_CONFIG_PATH=/usr/local/opt/zlib/lib/pkgconfig ./mach build --release @@ -29,6 +41,10 @@ mac-rel-wpt4: - ./mach filter-intermittents async-parsing-errorsummary.log --log-intermittents async-parsing-intermittents.log --log-filteredsummary filtered-async-parsing-errorsummary.log --tracker-api default --reporter-api default mac-rel-css1: + env: + CC: /usr/local/opt/llvm/bin/clang + CXX: /usr/local/opt/llvm/bin/clang++ + commands: - ./mach clean-nightlies --keep 3 --force - ./mach clean-cargo-cache --keep 3 --force - env PKG_CONFIG_PATH=/usr/local/opt/zlib/lib/pkgconfig ./mach build --release @@ -37,6 +53,10 @@ mac-rel-css1: - bash ./etc/ci/lockfile_changed.sh mac-rel-css2: + env: + CC: /usr/local/opt/llvm/bin/clang + CXX: /usr/local/opt/llvm/bin/clang++ + commands: - ./mach clean-nightlies --keep 3 --force - ./mach clean-cargo-cache --keep 3 --force - env PKG_CONFIG_PATH=/usr/local/opt/zlib/lib/pkgconfig ./mach build --release @@ -45,8 +65,8 @@ mac-rel-css2: linux-rel-intermittent: env: - CC: gcc-5 - CXX: g++-5 + CC: clang-4.0 + CXX: clang++-4.0 commands: - ./mach clean-nightlies --keep 3 --force - ./mach clean-cargo-cache --keep 3 --force @@ -57,8 +77,8 @@ linux-rel-intermittent: linux-rel-nogate: env: - CC: gcc-5 - CXX: g++-5 + CC: clang-4.0 + CXX: clang++-4.0 commands: - ./mach clean-nightlies --keep 3 --force - ./mach clean-cargo-cache --keep 3 --force @@ -69,6 +89,10 @@ linux-rel-nogate: - ./etc/ci/clean_build_artifacts.sh mac-rel-intermittent: + env: + CC: /usr/local/opt/llvm/bin/clang + CXX: /usr/local/opt/llvm/bin/clang++ + commands: - ./mach clean-nightlies --keep 3 --force - ./mach clean-cargo-cache --keep 3 --force - env PKG_CONFIG_PATH=/usr/local/opt/zlib/lib/pkgconfig ./mach build --release @@ -78,8 +102,8 @@ linux-rel-wpt: env: CCACHE: sccache RUSTC_WRAPPER: sccache - CC: gcc-5 - CXX: g++-5 + CC: clang-4.0 + CXX: clang++-4.0 commands: - ./mach clean-nightlies --keep 3 --force - ./mach clean-cargo-cache --keep 3 --force @@ -97,8 +121,8 @@ linux-rel-css: env: CCACHE: sccache RUSTC_WRAPPER: sccache - CC: gcc-5 - CXX: g++-5 + CC: clang-4.0 + CXX: clang++-4.0 commands: - ./mach clean-nightlies --keep 3 --force - ./mach clean-cargo-cache --keep 3 --force @@ -111,8 +135,8 @@ linux-rel-css: linux-nightly: env: - CC: gcc-5 - CXX: g++-5 + CC: clang-4.0 + CXX: clang++-4.0 commands: - ./mach clean-nightlies --keep 3 --force - ./mach clean-cargo-cache --keep 3 --force @@ -154,7 +178,7 @@ magicleap-nightly: arm64: env: AR: /usr/bin/aarch64-linux-gnu-ar - AS: /usr/bin/aarch64-linux-gnu-as + AS: /usr/bin/aarch64-linux-gnu-gcc CC: /usr/bin/clang-4.0 CFLAGS: --target=aarch64-unknown-linux-gnu -I/usr/aarch64-linux-gnu/include/ -fuse-ld=/home/servo/buildbot/slave/arm64/build/support/arm64/fake-ld.sh -Wno-error=unused-command-line-argument CPP: /usr/bin/clang-4.0 -E @@ -162,10 +186,10 @@ arm64: CXX: /usr/bin/clang++-4.0 CXXFLAGS: --target=aarch64-unknown-linux-gnu -I/usr/aarch64-linux-gnu/include/ -I/usr/aarch64-linux-gnu/include/c++/4.8.4/aarch64-linux-gnu -fuse-ld=/home/servo/buildbot/slave/arm64/build/support/arm64/fake-ld.sh -Wno-error=unused-command-line-argument EXPAT_LIB_DIR: /usr/lib/aarch64-linux-gnu - HOST_CC: gcc-5 + HOST_CC: clang-4.0 # test-tidy doesn't like empty strings HOST_CFLAGS: --target=x86_64-unknown-linux-gnu - HOST_CXX: g++-5 + HOST_CXX: clang++-4.0 # test-tidy doesn't like empty strings HOST_CXXFLAGS: --target=x86_64-unknown-linux-gnu LD: /usr/bin/aarch64-linux-gnu-ld diff --git a/etc/taskcluster/decision_task.py b/etc/taskcluster/decision_task.py index 73899105eca..fe5931ff07d 100644 --- a/etc/taskcluster/decision_task.py +++ b/etc/taskcluster/decision_task.py @@ -133,6 +133,10 @@ windows_build_env = { "LIB": "%HOMEDRIVE%%HOMEPATH%\\gst\\gstreamer\\1.0\\x86_64\\lib;%LIB%", "GSTREAMER_1_0_ROOT_X86_64": "%HOMEDRIVE%%HOMEPATH%\\gst\\gstreamer\\1.0\\x86_64\\", }, + "all": { + "PYTHON3": "%HOMEDRIVE%%HOMEPATH%\\python3\\python.exe", + "LINKER": "lld-link.exe", + }, } windows_sparse_checkout = [ @@ -256,6 +260,8 @@ def android_arm32_dev_from_macos(): macos_build_task("Dev build (macOS)") .with_treeherder("Android ARMv7") .with_script(""" + export HOST_CC="$(brew --prefix llvm)/bin/clang" + export HOST_CXX="$(brew --prefix llvm)/bin/clang++" ./mach bootstrap-android --accept-all-licences --build ./mach build --android --dev """) @@ -685,9 +691,18 @@ def windows_build_task(name, package=True, arch="x86_64"): task = ( windows_task(name) .with_max_run_time_minutes(60) - .with_env(**build_env, **windows_build_env[arch]) + .with_env( + **build_env, + **windows_build_env[arch], + **windows_build_env["all"] + ) .with_repo(sparse_checkout=windows_sparse_checkout) .with_python2() + .with_directory_mount( + "https://www.python.org/ftp/python/3.7.3/python-3.7.3-embed-amd64.zip", + sha256="6de14c9223226cf0cd8c965ecb08c51d62c770171a256991b4fddc25188cfa8e", + path="python3", + ) .with_rustup() .with_repacked_msi( url=("https://gstreamer.freedesktop.org/data/pkg/windows/" + diff --git a/python/servo/build_commands.py b/python/servo/build_commands.py index abe4e1003f9..cc8eb40c48a 100644 --- a/python/servo/build_commands.py +++ b/python/servo/build_commands.py @@ -309,6 +309,12 @@ class MachCommands(CommandBase): env["CC"] = "clang-cl.exe" env["CXX"] = "clang-cl.exe" + host = host_triple() + if 'apple-darwin' in host and (not target or target == host): + if 'CXXFLAGS' not in env: + env['CXXFLAGS'] = '' + env["CXXFLAGS"] += "-mmacosx-version-min=10.10" + if android: if "ANDROID_NDK" not in env: print("Please set the ANDROID_NDK environment variable.") @@ -550,7 +556,7 @@ class MachCommands(CommandBase): # The toolchain commands env.setdefault("AR", path.join(env["ANDROID_TOOLCHAIN_DIR"], "bin", "aarch64-linux-android-ar")) - env.setdefault("AS", path.join(env["ANDROID_TOOLCHAIN_DIR"], "bin", "aarch64-linux-android-as")) + env.setdefault("AS", path.join(env["ANDROID_TOOLCHAIN_DIR"], "bin", "aarch64-linux-android-gcc")) env.setdefault("CC", path.join(env["ANDROID_TOOLCHAIN_DIR"], "bin", "aarch64-linux-android-clang")) env.setdefault("CPP", path.join(env["ANDROID_TOOLCHAIN_DIR"], "bin", "aarch64-linux-android-clang -E")) env.setdefault("CXX", path.join(env["ANDROID_TOOLCHAIN_DIR"], "bin", "aarch64-linux-android-clang++")) @@ -563,8 +569,8 @@ class MachCommands(CommandBase): # Undo all of that when compiling build tools for the host env.setdefault("HOST_CFLAGS", "") env.setdefault("HOST_CXXFLAGS", "") - env.setdefault("HOST_CC", "gcc") - env.setdefault("HOST_CXX", "g++") + env.setdefault("HOST_CC", "/usr/local/opt/llvm/bin/clang") + env.setdefault("HOST_CXX", "/usr/local/opt/llvm/bin/clang++") env.setdefault("HOST_LD", "ld") # Some random build configurations