# Copyright 2017 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# The following dependencies diverge from those used in fuchsia for some reason.

# Updating to the fuchsia version causes the build failure: `undefined symbol: __sanitizer_cov_trace_pc_guard_init`
# TODO(b/278929805): Remove this exception once issues are resolved
@Subdir bin
gn/gn/${platform} git_revision:239533d2d91a04b3317ca9101cf7189f4e651e4d

# Godepfile is not present in the fuchsia prebuilts file
# TODO(b/278929805): Switch to go's builtin depfile generator
@Subdir golang/bin
fuchsia/tools/godepfile/${platform} git_revision:6922d7833617841e853a0be52a285f6cd07a0a10
