| // | |
| // 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 [email protected] 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/supported-arch.txt", | |
| "include/lapi/syscalls/generate_syscalls.sh", | |
| "include/lapi/syscalls/*.in", | |
| ], | |
| cmd: "$(location include/lapi/syscalls/generate_syscalls.sh) $(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", | |
| // Upstream explicitly chooses this in its makefile. | |
| c_std: "gnu99", | |
| cflags: [ | |
| // Hacks for bionic compatibility | |
| "-DHAVE_STRUCT_FSXATTR", | |
| "-DHAVE_STRUCT_FILE_ATTR", | |
| "-DHAVE_STRUCT_PROCMAP_QUERY", | |
| "-DHAVE_STRUCT_TERMIO", | |
| // Explicitly added the following flags to Android.bp to skip LTP20260130's internal LAPI definitions. | |
| "-DHAVE_STRUCT_MNT_ID_REQ_MNT_NS_FD", | |
| "-DHAVE_STRUCT_UFFDIO_MOVE", | |
| "-DHAVE_STRUCT_UFFDIO_WRITEPROTECT", | |
| "-DHAVE_STRUCT_UFFDIO_POISON", | |
| "-DHAVE_STRUCT_LOGICAL_BLOCK_METADATA_CAP", | |
| "-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", | |
| // These warnings should be checked and fixed upstream | |
| "-Wno-absolute-value", | |
| "-Wno-uninitialized", | |
| "-Wno-user-defined-warnings", | |
| // Silence noisy warnings | |
| "-Wno-alloc-size", | |
| "-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", | |
| "libasyncio", | |
| ], | |
| // TODO: recover libaio when the external project created | |
| shared_libs: [ | |
| "libselinux", | |
| ], | |
| } | |
| cc_defaults { | |
| name: "ltp_test_defaults", | |
| defaults: ["ltp_defaults"], | |
| gtest: false, | |
| cflags: ["-Wno-gnu-variable-sized-type-not-at-end"], | |
| extra_include_dir_deps: [ | |
| "testcases/misc/math/float/main.c", | |
| "testcases/misc/math/float/thread_code.c", | |
| "testcases/realtime/func/pi-tests/test-skeleton.c", | |
| ], | |
| no_named_install_directory: true, | |
| relative_install_path: "vts_ltp_tests/testcases/bin", | |
| } |