blob: ba64bb70b7f125dd4bd11357b44ebc4241f986cc [file] [log] [blame]
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
/*
*
* (C) COPYRIGHT 2016-2022 ARM Limited. All rights reserved.
*
* This program is free software and is provided to you under the terms of the
* GNU General Public License version 2 as published by the Free Software
* Foundation, and any use by you of this program is subject to the terms
* of such GNU license.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, you can access it online at
* http://www.gnu.org/licenses/gpl-2.0.html.
*
*/
bob_install_group {
name: "IG_kernel_modules",
android: {
install_path: "{{.module_path}}",
},
linux: {
install_path: "{{.install_dir}}/{{.module_path}}",
},
}
bob_defaults {
name: "kernel_defaults",
build_by_default: false,
enabled: false,
exclude_srcs: [
"**/*.mod.c",
],
local_include_dirs: [
"include",
],
build_kernel_modules: {
build_by_default: true,
enabled: true,
kernel_dir: "{{.kernel_dir}}",
kernel_cross_compile: "{{.kernel_compiler}}",
kernel_cc: "{{.kernel_cc}}",
kernel_hostcc: "{{.kernel_hostcc}}",
kernel_clang_triple: "{{.kernel_clang_triple}}",
kernel_ld: "{{.kernel_ld}}",
},
install_group: "IG_kernel_modules",
add_to_alias: ["kernel"],
owner: "{{.android_module_owner}}",
// These flags should be synchronised with that defined in
// kernel/drivers/base/arm/Makefile and
// kernel/drivers/gpu/arm/midgard/Makefile
cflags: [
"-Wall",
"-Werror",
"-Wextra -Wunused -Wno-unused-parameter",
"-Wmissing-declarations",
"-Wmissing-format-attribute",
"-Wmissing-prototypes",
"-Wold-style-definition",
// The -Wmissing-include-dirs cannot be enabled as the path to some of the
// included directories change depending on whether it is an in-tree or
// out-of-tree build.
"-Wno-sign-compare",
"-Wno-shift-negative-value",
"-DKBUILD_EXTRA_WARN1",
"-Wdisabled-optimization",
// The -Wshadow flag cannot be enabled unless upstream kernels are
// patched to fix redefinitions of certain built-in functions and
// global variables.
"-Wmissing-field-initializers",
// -Wtype-limits must be disabled due to build failures on kernel 5.x
"-Wno-type-limits",
"-DKBUILD_EXTRA_WARN2",
// This warning is disabled to avoid build failures in some kernel versions
"-Wno-ignored-qualifiers",
],
target_toolchain_gnu: {
cflags: [
"-Wunused-but-set-variable",
"-Wunused-const-variable",
"-Wpacked-not-aligned",
"-Wstringop-truncation",
"-Wlogical-op",
"-Wmaybe-uninitialized",
"-Wunused-macros",
// This flag is needed to avoid build errors on older kernels
"-Wno-cast-function-type",
],
},
workaround_no_missing_attributes: {
cflags: [
"-Wno-missing-attributes",
],
},
mali_gcov_kernel: {
cflags: [
"-fprofile-arcs",
"-ftest-coverage",
"-DGCOV_PROFILE=1",
],
},
mali_kcov: {
cflags: [
"-fsanitize-coverage=trace-cmp",
"-DCONFIG_KCOV=1",
"-DCONFIG_KCOV_ENABLE_COMPARISONS=1",
],
},
allow_android_tags: {
tags: [
"eng",
"optional",
],
},
}
// Alias for all kernel modules. `kernel_defaults` uses `add_to_alias` to
// ensure any modules using that are included in this alias; any
// bob_kernel_modules not using those defaults must explicitly use
// `add_to_alias` or be listed here.
bob_alias {
name: "kernel",
}