blob: 0552e230f5a618fea2e6dfb4a3cd78994db46d06 [file] [log] [blame]
//
// Copyright (C) 2016 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// Include the generated rules
// *** THIS PACKAGE HAS SPECIAL LICENSING CONDITIONS. PLEASE
// CONSULT THE OWNERS AND opensource-licensing@google.com BEFORE
// DEPENDING ON IT IN YOUR PROJECT. ***
package {
default_applicable_licenses: ["external_ltp_license"],
default_team: "trendy_team_android_kernel",
}
// Added automatically by a large-scale-change that took the approach of
// 'apply every license found to every target'. While this makes sure we respect
// every license restriction, it may not be entirely correct.
//
// e.g. GPL in an MIT project might only apply to the contrib/ directory.
//
// Please consider splitting the single license below into multiple licenses,
// taking care not to lose any license_kind information, and overriding the
// default license using the 'licenses: [...]' property on targets as needed.
//
// For unused files, consider creating a 'fileGroup' with "//visibility:private"
// to attach the license to, and including a comment whether the files may be
// used in the current project.
//
// large-scale-change included anything that looked like it might be a license
// text as a license_text. e.g. LICENSE, NOTICE, COPYING etc.
//
// Please consider removing redundant or irrelevant files from 'license_text:'.
// See: http://go/android-license-faq
license {
name: "external_ltp_license",
visibility: [":__subpackages__"],
license_kinds: [
"SPDX-license-identifier-APSL-1.1",
"SPDX-license-identifier-Apache-2.0",
"SPDX-license-identifier-BSD",
"SPDX-license-identifier-BSD-2-Clause",
"SPDX-license-identifier-BSD-3-Clause",
"SPDX-license-identifier-GFDL", // by exception only
"SPDX-license-identifier-GPL",
"SPDX-license-identifier-GPL-2.0",
"SPDX-license-identifier-GPL-3.0",
"SPDX-license-identifier-ISC",
"SPDX-license-identifier-LGPL",
],
license_text: [
"COPYING",
"NOTICE",
],
}
build = ["gen.bp"]
// The gen.bp file will be embedded in the gen_ltp_config tool,
// which reads its data using pkgutil.get_data(). As far as I can
// tell, there's no way to read a file in the root of the python
// zip, so we have to use a genrule here to move gen.bp to an
// arbitrary subfolder first.
genrule {
name: "ltp_gen_bp_file",
srcs: ["gen.bp"],
out: ["android/tools/gen.bp"],
cmd: "cp $(in) $(out)",
}
filegroup {
name: "ltp_runtests",
srcs: ["runtest/*"],
}
filegroup {
name: "ltp_disabled_tests",
srcs: ["android/tools/disabled_tests.txt"],
}
genrule {
name: "ltp_syscalls_h",
tool_files: [
"include/lapi/syscalls/regen.sh",
"include/lapi/syscalls/*.in",
],
cmd: "$(location) $(genDir)/lapi/syscalls.h",
out: ["lapi/syscalls.h"],
}
genrule {
name: "ltp_version_h",
srcs: [
"VERSION",
],
cmd: "echo \"#define LTP_VERSION \\\"$$(cat $(in))\\\"\" > $(out)",
out: ["ltp-version.h"],
}
cc_defaults {
name: "ltp_defaults",
cflags: [
// Hacks for bionic compatibility
"-include bionic-compat.h",
"-fcommon", //ld.lld: error: duplicate symbol use_the_ltp_clone_functions__do_not_use_clone
// Too many files import sched.h so we enable -fcommon locally
// ltp may get away with this with glibc because of the __USE_GNU guard in glibc's <sched.h>
"-Wall",
"-Werror",
// These warnings should be checked and fixed upstream
"-Wno-absolute-value",
"-Wno-uninitialized",
"-Wno-user-defined-warnings",
// Silence noisy warnings
"-Wno-constant-conversion",
"-Wno-deprecated",
"-Wno-duplicate-decl-specifier",
"-Wno-empty-body",
"-Wno-format",
"-Wno-gnu-designator",
"-Wno-implicit-function-declaration",
"-Wno-incompatible-pointer-types-discards-qualifiers",
"-Wno-knr-promoted-parameter",
"-Wno-macro-redefined",
"-Wno-missing-braces",
"-Wno-missing-field-initializers",
"-Wno-parentheses-equality",
"-Wno-pointer-arith",
"-Wno-pointer-sign",
"-Wno-sign-compare",
"-Wno-tautological-compare",
"-Wno-unneeded-internal-declaration",
"-Wno-unreachable-code-loop-increment",
"-Wno-unused-function",
"-Wno-unused-parameter",
"-Wno-unused-variable",
],
local_include_dirs: [
"android/include",
"include",
],
target: {
// bionic has broken signal handling for signum > 32 on 32-bit ARM and x86
// (for ABI reasons this can't be fixed)
android_arm: {
cflags: ["-DNUMSIGS=32"],
},
android_x86: {
cflags: ["-DNUMSIGS=32"],
},
},
generated_headers: [
"ltp_syscalls_h",
"ltp_version_h",
],
static_libs: ["libcap"],
// TODO: recover libaio when the external project created
shared_libs: [
"libselinux",
"libasyncio",
],
}
cc_defaults {
name: "ltp_test_defaults",
defaults: ["ltp_defaults"],
gtest: false,
cflags: ["-Wno-gnu-variable-sized-type-not-at-end"],
no_named_install_directory: true,
relative_install_path: "ltp/testcases/bin",
}