blob: 3bf4cb70e098260f5119ea65442c7fa9089c86d2 [file] [log] [blame]
# Copyright 2022 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# Install seccomp policy files by `install_config` and have a static check in
# the compile stage.
# Args:
# sources: A list of files to be installed and checked.
# install_path: An install destination path.
template("install_seccomp_policy") {
_check_seccomp_target = "_${target_name}-check_seccomp"
install_config(target_name) {
forward_variables_from(invoker,
[
"install_path",
"sources",
])
deps = [ ":${_check_seccomp_target}" ]
}
action_foreach(_check_seccomp_target) {
forward_variables_from(invoker, [ "sources" ])
script = "/usr/bin/compile_seccomp_policy"
# Since data is required under `/build/${BOARD}`, this compiler will be
# invoked in the compile stage instead of the pre-submit stage.
inputs = [ getenv("SYSROOT") + "/build/share/constants.json" ]
# We need the architecture-specific `constants.json` file that contains the
# mapping of syscall names to numbers.
# Ref: https://github.com/google/minijail/blob/HEAD/tools/README.md#compile_seccomp_policypy
outputs = [ "${target_gen_dir}/seccomp/{{source_name_part}}.bpf" ]
args = [
"--arch-json",
inputs[0],
"{{source}}",
outputs[0],
]
}
}