blob: aa0e9ff434ab164de0c9757059467f0facd24831 [file] [log] [blame]
# Copyright 2025 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.
_linux_toolchain = "//build/toolchain:linux_${current_cpu}"
# Creates a Linux "init" program, intending as the first userspace program
# launched (A.K.A, PID 1), leveraged as a dependency of a
# linux_test_initramfs() target
#
# See executable() for parameters.
template("linux_test_init") {
if (toolchain_variant.base == _linux_toolchain) {
executable(target_name) {
testonly = true
forward_variables_from(invoker, "*", [ "testonly" ])
if (!defined(output_name)) {
output_name = target_name
}
output_path = "$root_out_dir/$output_name"
if (defined(output_extension)) {
output_path += ".${output_extension}"
}
# There isn't too much value derived from instrumenting the init program:
# pragmatically, we suppress the variants that don't 'just work'.
exclude_toolchain_tags = [ "asan" ]
metadata = {
distribution_entries_barrier = []
distribution_entries = [
{
source = rebase_path(output_path, root_build_dir)
destination = "init" # Destination of /init means auto-executed
label = get_label_info(":$target_name", "label_with_toolchain")
},
]
}
}
} else {
group(target_name) {
testonly = true
forward_variables_from(invoker, [ "visibility" ])
deps = [ ":$target_name($_linux_toolchain)" ]
}
not_needed(invoker, "*", [ "visibility" ])
}
}