Use Fuchsia's Clang toolchain on macOS This eliminates another dependency on the host. Change-Id: I550fe2d0b80dd7b094264d3259c9cb7f4da66d1a Reviewed-on: https://gn-review.googlesource.com/c/3140 Commit-Queue: Petr Hosek <phosek@google.com> Reviewed-by: Scott Graham <scottmg@chromium.org>
diff --git a/infra/recipes/gn.expected/ci_mac.json b/infra/recipes/gn.expected/ci_mac.json index 1b0fa4e..01c5006 100644 --- a/infra/recipes/gn.expected/ci_mac.json +++ b/infra/recipes/gn.expected/ci_mac.json
@@ -50,7 +50,7 @@ "-root", "[START_DIR]/cipd", "-ensure-file", - "infra/ninja/${platform} version:1.8.2", + "infra/ninja/${platform} version:1.8.2\nfuchsia/clang/${platform} goma", "-json-output", "/path/to/tmp/json" ], @@ -61,6 +61,10 @@ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@", "@@@STEP_LOG_LINE@json.output@ \"\": [@@@", "@@@STEP_LOG_LINE@json.output@ {@@@", + "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-goma------------\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"package\": \"fuchsia/clang/${platform}\"@@@", + "@@@STEP_LOG_LINE@json.output@ }, @@@", + "@@@STEP_LOG_LINE@json.output@ {@@@", "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-version:1.8.2---\", @@@", "@@@STEP_LOG_LINE@json.output@ \"package\": \"infra/ninja/${platform}\"@@@", "@@@STEP_LOG_LINE@json.output@ }@@@", @@ -93,6 +97,12 @@ "/path/to/tmp/json" ], "cwd": "[START_DIR]/gn", + "env": { + "AR": "[START_DIR]/cipd/bin/llvm-ar", + "CC": "[START_DIR]/cipd/bin/clang", + "CXX": "[START_DIR]/cipd/bin/clang++", + "LDFLAGS": "-nostdlib++ [START_DIR]/cipd/lib/libc++.a [START_DIR]/cipd/lib/libc++abi.a [START_DIR]/cipd/lib/libunwind.a" + }, "infra_step": true, "name": "debug.build.ensure_installed", "~followup_annotations": [ @@ -122,6 +132,12 @@ "[CACHE]/macos_sdk/XCode.app" ], "cwd": "[START_DIR]/gn", + "env": { + "AR": "[START_DIR]/cipd/bin/llvm-ar", + "CC": "[START_DIR]/cipd/bin/clang", + "CXX": "[START_DIR]/cipd/bin/clang++", + "LDFLAGS": "-nostdlib++ [START_DIR]/cipd/lib/libc++.a [START_DIR]/cipd/lib/libc++abi.a [START_DIR]/cipd/lib/libunwind.a" + }, "infra_step": true, "name": "debug.build.install xcode", "~followup_annotations": [ @@ -136,6 +152,12 @@ "[CACHE]/macos_sdk/XCode.app" ], "cwd": "[START_DIR]/gn", + "env": { + "AR": "[START_DIR]/cipd/bin/llvm-ar", + "CC": "[START_DIR]/cipd/bin/clang", + "CXX": "[START_DIR]/cipd/bin/clang++", + "LDFLAGS": "-nostdlib++ [START_DIR]/cipd/lib/libc++.a [START_DIR]/cipd/lib/libc++abi.a [START_DIR]/cipd/lib/libunwind.a" + }, "infra_step": true, "name": "debug.build.select XCode", "~followup_annotations": [ @@ -150,6 +172,12 @@ "-d" ], "cwd": "[START_DIR]/gn", + "env": { + "AR": "[START_DIR]/cipd/bin/llvm-ar", + "CC": "[START_DIR]/cipd/bin/clang", + "CXX": "[START_DIR]/cipd/bin/clang++", + "LDFLAGS": "-nostdlib++ [START_DIR]/cipd/lib/libc++.a [START_DIR]/cipd/lib/libc++abi.a [START_DIR]/cipd/lib/libunwind.a" + }, "name": "debug.build.generate", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@2@@@" @@ -162,6 +190,12 @@ "[START_DIR]/gn/out" ], "cwd": "[START_DIR]/gn", + "env": { + "AR": "[START_DIR]/cipd/bin/llvm-ar", + "CC": "[START_DIR]/cipd/bin/clang", + "CXX": "[START_DIR]/cipd/bin/clang++", + "LDFLAGS": "-nostdlib++ [START_DIR]/cipd/lib/libc++.a [START_DIR]/cipd/lib/libc++abi.a [START_DIR]/cipd/lib/libunwind.a" + }, "name": "debug.build.ninja", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@2@@@" @@ -174,6 +208,12 @@ "--reset" ], "cwd": "[START_DIR]/gn", + "env": { + "AR": "[START_DIR]/cipd/bin/llvm-ar", + "CC": "[START_DIR]/cipd/bin/clang", + "CXX": "[START_DIR]/cipd/bin/clang++", + "LDFLAGS": "-nostdlib++ [START_DIR]/cipd/lib/libc++.a [START_DIR]/cipd/lib/libc++abi.a [START_DIR]/cipd/lib/libunwind.a" + }, "infra_step": true, "name": "debug.build.reset XCode", "~followup_annotations": [ @@ -212,6 +252,12 @@ "/path/to/tmp/json" ], "cwd": "[START_DIR]/gn", + "env": { + "AR": "[START_DIR]/cipd/bin/llvm-ar", + "CC": "[START_DIR]/cipd/bin/clang", + "CXX": "[START_DIR]/cipd/bin/clang++", + "LDFLAGS": "-nostdlib++ [START_DIR]/cipd/lib/libc++.a [START_DIR]/cipd/lib/libc++abi.a [START_DIR]/cipd/lib/libunwind.a" + }, "infra_step": true, "name": "release.build.ensure_installed", "~followup_annotations": [ @@ -241,6 +287,12 @@ "[CACHE]/macos_sdk/XCode.app" ], "cwd": "[START_DIR]/gn", + "env": { + "AR": "[START_DIR]/cipd/bin/llvm-ar", + "CC": "[START_DIR]/cipd/bin/clang", + "CXX": "[START_DIR]/cipd/bin/clang++", + "LDFLAGS": "-nostdlib++ [START_DIR]/cipd/lib/libc++.a [START_DIR]/cipd/lib/libc++abi.a [START_DIR]/cipd/lib/libunwind.a" + }, "infra_step": true, "name": "release.build.install xcode", "~followup_annotations": [ @@ -255,6 +307,12 @@ "[CACHE]/macos_sdk/XCode.app" ], "cwd": "[START_DIR]/gn", + "env": { + "AR": "[START_DIR]/cipd/bin/llvm-ar", + "CC": "[START_DIR]/cipd/bin/clang", + "CXX": "[START_DIR]/cipd/bin/clang++", + "LDFLAGS": "-nostdlib++ [START_DIR]/cipd/lib/libc++.a [START_DIR]/cipd/lib/libc++abi.a [START_DIR]/cipd/lib/libunwind.a" + }, "infra_step": true, "name": "release.build.select XCode", "~followup_annotations": [ @@ -268,6 +326,12 @@ "[START_DIR]/gn/build/gen.py" ], "cwd": "[START_DIR]/gn", + "env": { + "AR": "[START_DIR]/cipd/bin/llvm-ar", + "CC": "[START_DIR]/cipd/bin/clang", + "CXX": "[START_DIR]/cipd/bin/clang++", + "LDFLAGS": "-nostdlib++ [START_DIR]/cipd/lib/libc++.a [START_DIR]/cipd/lib/libc++abi.a [START_DIR]/cipd/lib/libunwind.a" + }, "name": "release.build.generate", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@2@@@" @@ -280,6 +344,12 @@ "[START_DIR]/gn/out" ], "cwd": "[START_DIR]/gn", + "env": { + "AR": "[START_DIR]/cipd/bin/llvm-ar", + "CC": "[START_DIR]/cipd/bin/clang", + "CXX": "[START_DIR]/cipd/bin/clang++", + "LDFLAGS": "-nostdlib++ [START_DIR]/cipd/lib/libc++.a [START_DIR]/cipd/lib/libc++abi.a [START_DIR]/cipd/lib/libunwind.a" + }, "name": "release.build.ninja", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@2@@@" @@ -292,6 +362,12 @@ "--reset" ], "cwd": "[START_DIR]/gn", + "env": { + "AR": "[START_DIR]/cipd/bin/llvm-ar", + "CC": "[START_DIR]/cipd/bin/clang", + "CXX": "[START_DIR]/cipd/bin/clang++", + "LDFLAGS": "-nostdlib++ [START_DIR]/cipd/lib/libc++.a [START_DIR]/cipd/lib/libc++abi.a [START_DIR]/cipd/lib/libunwind.a" + }, "infra_step": true, "name": "release.build.reset XCode", "~followup_annotations": [
diff --git a/infra/recipes/gn.expected/cq_mac.json b/infra/recipes/gn.expected/cq_mac.json index 1b0e09c..9eccbfe 100644 --- a/infra/recipes/gn.expected/cq_mac.json +++ b/infra/recipes/gn.expected/cq_mac.json
@@ -77,7 +77,7 @@ "-root", "[START_DIR]/cipd", "-ensure-file", - "infra/ninja/${platform} version:1.8.2", + "infra/ninja/${platform} version:1.8.2\nfuchsia/clang/${platform} goma", "-json-output", "/path/to/tmp/json" ], @@ -88,6 +88,10 @@ "@@@STEP_LOG_LINE@json.output@ \"result\": {@@@", "@@@STEP_LOG_LINE@json.output@ \"\": [@@@", "@@@STEP_LOG_LINE@json.output@ {@@@", + "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-goma------------\", @@@", + "@@@STEP_LOG_LINE@json.output@ \"package\": \"fuchsia/clang/${platform}\"@@@", + "@@@STEP_LOG_LINE@json.output@ }, @@@", + "@@@STEP_LOG_LINE@json.output@ {@@@", "@@@STEP_LOG_LINE@json.output@ \"instance_id\": \"resolved-instance_id-of-version:1.8.2---\", @@@", "@@@STEP_LOG_LINE@json.output@ \"package\": \"infra/ninja/${platform}\"@@@", "@@@STEP_LOG_LINE@json.output@ }@@@", @@ -120,6 +124,12 @@ "/path/to/tmp/json" ], "cwd": "[START_DIR]/gn", + "env": { + "AR": "[START_DIR]/cipd/bin/llvm-ar", + "CC": "[START_DIR]/cipd/bin/clang", + "CXX": "[START_DIR]/cipd/bin/clang++", + "LDFLAGS": "-nostdlib++ [START_DIR]/cipd/lib/libc++.a [START_DIR]/cipd/lib/libc++abi.a [START_DIR]/cipd/lib/libunwind.a" + }, "infra_step": true, "name": "debug.build.ensure_installed", "~followup_annotations": [ @@ -149,6 +159,12 @@ "[CACHE]/macos_sdk/XCode.app" ], "cwd": "[START_DIR]/gn", + "env": { + "AR": "[START_DIR]/cipd/bin/llvm-ar", + "CC": "[START_DIR]/cipd/bin/clang", + "CXX": "[START_DIR]/cipd/bin/clang++", + "LDFLAGS": "-nostdlib++ [START_DIR]/cipd/lib/libc++.a [START_DIR]/cipd/lib/libc++abi.a [START_DIR]/cipd/lib/libunwind.a" + }, "infra_step": true, "name": "debug.build.install xcode", "~followup_annotations": [ @@ -163,6 +179,12 @@ "[CACHE]/macos_sdk/XCode.app" ], "cwd": "[START_DIR]/gn", + "env": { + "AR": "[START_DIR]/cipd/bin/llvm-ar", + "CC": "[START_DIR]/cipd/bin/clang", + "CXX": "[START_DIR]/cipd/bin/clang++", + "LDFLAGS": "-nostdlib++ [START_DIR]/cipd/lib/libc++.a [START_DIR]/cipd/lib/libc++abi.a [START_DIR]/cipd/lib/libunwind.a" + }, "infra_step": true, "name": "debug.build.select XCode", "~followup_annotations": [ @@ -177,6 +199,12 @@ "-d" ], "cwd": "[START_DIR]/gn", + "env": { + "AR": "[START_DIR]/cipd/bin/llvm-ar", + "CC": "[START_DIR]/cipd/bin/clang", + "CXX": "[START_DIR]/cipd/bin/clang++", + "LDFLAGS": "-nostdlib++ [START_DIR]/cipd/lib/libc++.a [START_DIR]/cipd/lib/libc++abi.a [START_DIR]/cipd/lib/libunwind.a" + }, "name": "debug.build.generate", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@2@@@" @@ -189,6 +217,12 @@ "[START_DIR]/gn/out" ], "cwd": "[START_DIR]/gn", + "env": { + "AR": "[START_DIR]/cipd/bin/llvm-ar", + "CC": "[START_DIR]/cipd/bin/clang", + "CXX": "[START_DIR]/cipd/bin/clang++", + "LDFLAGS": "-nostdlib++ [START_DIR]/cipd/lib/libc++.a [START_DIR]/cipd/lib/libc++abi.a [START_DIR]/cipd/lib/libunwind.a" + }, "name": "debug.build.ninja", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@2@@@" @@ -201,6 +235,12 @@ "--reset" ], "cwd": "[START_DIR]/gn", + "env": { + "AR": "[START_DIR]/cipd/bin/llvm-ar", + "CC": "[START_DIR]/cipd/bin/clang", + "CXX": "[START_DIR]/cipd/bin/clang++", + "LDFLAGS": "-nostdlib++ [START_DIR]/cipd/lib/libc++.a [START_DIR]/cipd/lib/libc++abi.a [START_DIR]/cipd/lib/libunwind.a" + }, "infra_step": true, "name": "debug.build.reset XCode", "~followup_annotations": [ @@ -239,6 +279,12 @@ "/path/to/tmp/json" ], "cwd": "[START_DIR]/gn", + "env": { + "AR": "[START_DIR]/cipd/bin/llvm-ar", + "CC": "[START_DIR]/cipd/bin/clang", + "CXX": "[START_DIR]/cipd/bin/clang++", + "LDFLAGS": "-nostdlib++ [START_DIR]/cipd/lib/libc++.a [START_DIR]/cipd/lib/libc++abi.a [START_DIR]/cipd/lib/libunwind.a" + }, "infra_step": true, "name": "release.build.ensure_installed", "~followup_annotations": [ @@ -268,6 +314,12 @@ "[CACHE]/macos_sdk/XCode.app" ], "cwd": "[START_DIR]/gn", + "env": { + "AR": "[START_DIR]/cipd/bin/llvm-ar", + "CC": "[START_DIR]/cipd/bin/clang", + "CXX": "[START_DIR]/cipd/bin/clang++", + "LDFLAGS": "-nostdlib++ [START_DIR]/cipd/lib/libc++.a [START_DIR]/cipd/lib/libc++abi.a [START_DIR]/cipd/lib/libunwind.a" + }, "infra_step": true, "name": "release.build.install xcode", "~followup_annotations": [ @@ -282,6 +334,12 @@ "[CACHE]/macos_sdk/XCode.app" ], "cwd": "[START_DIR]/gn", + "env": { + "AR": "[START_DIR]/cipd/bin/llvm-ar", + "CC": "[START_DIR]/cipd/bin/clang", + "CXX": "[START_DIR]/cipd/bin/clang++", + "LDFLAGS": "-nostdlib++ [START_DIR]/cipd/lib/libc++.a [START_DIR]/cipd/lib/libc++abi.a [START_DIR]/cipd/lib/libunwind.a" + }, "infra_step": true, "name": "release.build.select XCode", "~followup_annotations": [ @@ -295,6 +353,12 @@ "[START_DIR]/gn/build/gen.py" ], "cwd": "[START_DIR]/gn", + "env": { + "AR": "[START_DIR]/cipd/bin/llvm-ar", + "CC": "[START_DIR]/cipd/bin/clang", + "CXX": "[START_DIR]/cipd/bin/clang++", + "LDFLAGS": "-nostdlib++ [START_DIR]/cipd/lib/libc++.a [START_DIR]/cipd/lib/libc++abi.a [START_DIR]/cipd/lib/libunwind.a" + }, "name": "release.build.generate", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@2@@@" @@ -307,6 +371,12 @@ "[START_DIR]/gn/out" ], "cwd": "[START_DIR]/gn", + "env": { + "AR": "[START_DIR]/cipd/bin/llvm-ar", + "CC": "[START_DIR]/cipd/bin/clang", + "CXX": "[START_DIR]/cipd/bin/clang++", + "LDFLAGS": "-nostdlib++ [START_DIR]/cipd/lib/libc++.a [START_DIR]/cipd/lib/libc++abi.a [START_DIR]/cipd/lib/libunwind.a" + }, "name": "release.build.ninja", "~followup_annotations": [ "@@@STEP_NEST_LEVEL@2@@@" @@ -319,6 +389,12 @@ "--reset" ], "cwd": "[START_DIR]/gn", + "env": { + "AR": "[START_DIR]/cipd/bin/llvm-ar", + "CC": "[START_DIR]/cipd/bin/clang", + "CXX": "[START_DIR]/cipd/bin/clang++", + "LDFLAGS": "-nostdlib++ [START_DIR]/cipd/lib/libc++.a [START_DIR]/cipd/lib/libc++abi.a [START_DIR]/cipd/lib/libunwind.a" + }, "infra_step": true, "name": "release.build.reset XCode", "~followup_annotations": [
diff --git a/infra/recipes/gn.py b/infra/recipes/gn.py index 229408d..208e795 100644 --- a/infra/recipes/gn.py +++ b/infra/recipes/gn.py
@@ -53,10 +53,13 @@ cipd_dir = api.path['start_dir'].join('cipd') pkgs = api.cipd.EnsureFile() pkgs.add_package('infra/ninja/${platform}', 'version:1.8.2') - if api.platform.is_linux: + if api.platform.is_linux or api.platform.is_mac: pkgs.add_package('fuchsia/clang/${platform}', 'goma') api.cipd.ensure(cipd_dir, pkgs) + stdlib = '%s %s %s' % (cipd_dir.join('lib', 'libc++.a'), + cipd_dir.join('lib', 'libc++abi.a'), + cipd_dir.join('lib', 'libunwind.a')) env = { 'linux': { 'CC': cipd_dir.join('bin', 'clang'), @@ -64,7 +67,12 @@ 'AR': cipd_dir.join('bin', 'llvm-ar'), 'LDFLAGS': '-static-libstdc++ -ldl -lpthread', }, - 'mac': {}, + 'mac': { + 'CC': cipd_dir.join('bin', 'clang'), + 'CXX': cipd_dir.join('bin', 'clang++'), + 'AR': cipd_dir.join('bin', 'llvm-ar'), + 'LDFLAGS': '-nostdlib++ ' + stdlib, + }, 'win': {}, }[api.platform.name]