You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
254 lines
7.0 KiB
254 lines
7.0 KiB
// Copyright (C) 2016 The Android Open Source Project
|
|
// All rights reserved.
|
|
//
|
|
// Redistribution and use in source and binary forms, with or without
|
|
// modification, are permitted provided that the following conditions
|
|
// are met:
|
|
// * Redistributions of source code must retain the above copyright
|
|
// notice, this list of conditions and the following disclaimer.
|
|
// * Redistributions in binary form must reproduce the above copyright
|
|
// notice, this list of conditions and the following disclaimer in
|
|
// the documentation and/or other materials provided with the
|
|
// distribution.
|
|
//
|
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
// COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
|
// OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
|
// AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
|
|
// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
// SUCH DAMAGE.
|
|
//
|
|
//
|
|
// Copyright (c) 2016 VIXL authors
|
|
// All rights reserved.
|
|
//
|
|
// Redistribution and use in source and binary forms, with or without
|
|
// modification, are permitted provided that the following conditions
|
|
// are met:
|
|
// 1. Redistributions of source code must retain the above copyright
|
|
// notice, this list of conditions and the following disclaimer.
|
|
// 2. Redistributions in binary form must reproduce the above copyright
|
|
// notice, this list of conditions and the following disclaimer in the
|
|
// documentation and/or other materials provided with the distribution.
|
|
// 3. The name of the company may not be used to endorse or promote
|
|
// products derived from this software without specific prior written
|
|
// permission.
|
|
//
|
|
// THIS SOFTWARE IS PROVIDED BY ARM LTD ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
|
// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
|
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
|
// IN NO EVENT SHALL ARM LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
|
|
// TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
|
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
package {
|
|
default_visibility: ["//visibility:private"],
|
|
default_applicable_licenses: ["external_vixl_license"],
|
|
}
|
|
|
|
// Added automatically by a large-scale-change
|
|
// See: http://go/android-license-faq
|
|
license {
|
|
name: "external_vixl_license",
|
|
visibility: [":__subpackages__"],
|
|
license_kinds: [
|
|
"SPDX-license-identifier-BSD",
|
|
],
|
|
license_text: [
|
|
"LICENCE",
|
|
],
|
|
}
|
|
|
|
cc_defaults {
|
|
name: "vixl-common",
|
|
host_supported: true,
|
|
clang_cflags: ["-Wimplicit-fallthrough"],
|
|
cflags: [
|
|
"-Wall",
|
|
"-Werror",
|
|
],
|
|
cppflags: [
|
|
"-DVIXL_GENERATE_SIMULATOR_INSTRUCTIONS_VALUE=0",
|
|
"-Wextra",
|
|
"-fdiagnostics-show-option",
|
|
"-Wredundant-decls",
|
|
"-Wunreachable-code",
|
|
"-pedantic",
|
|
|
|
// Explicitly enable the write-strings warning. VIXL uses
|
|
// const correctly when handling string constants.
|
|
"-Wwrite-strings",
|
|
|
|
// Explicitly disable 'missing-return' warnings because a lot of them are false positive.
|
|
// VIXL often creates stubs and compile-time configurations with things like
|
|
// VIXL_UNIMPLEMENTED(). Properly satisfying -Wmissing-noreturn requires that functions are
|
|
// annotated at their _declarations_, which means #ifdefs in header files.
|
|
// Conditional compilation in headers can result in incorrect behaviour when
|
|
// libvixl.so is built with different flags than the code using it. Disabling this
|
|
// warning allows VIXL to simplify the headers, and should make VIXL more robust.
|
|
"-Wno-missing-noreturn",
|
|
|
|
"-DVIXL_CODE_BUFFER_MALLOC",
|
|
],
|
|
native_coverage: false,
|
|
sanitize: {
|
|
recover: ["shift-exponent"],
|
|
},
|
|
}
|
|
|
|
art_cc_defaults {
|
|
name: "vixl-arm",
|
|
defaults: ["vixl-common"],
|
|
codegen: {
|
|
arm: {
|
|
srcs: ["src/aarch32/*.cc"],
|
|
cppflags: [
|
|
"-DVIXL_INCLUDE_TARGET_T32",
|
|
],
|
|
},
|
|
},
|
|
}
|
|
|
|
art_cc_defaults {
|
|
name: "vixl-arm64",
|
|
defaults: ["vixl-common"],
|
|
codegen: {
|
|
arm64: {
|
|
srcs: ["src/aarch64/*.cc"],
|
|
cppflags: [
|
|
"-DVIXL_INCLUDE_SIMULATOR_AARCH64",
|
|
"-DVIXL_INCLUDE_TARGET_A64",
|
|
],
|
|
},
|
|
},
|
|
}
|
|
|
|
cc_defaults {
|
|
name: "vixl-debug",
|
|
defaults: ["vixl-common"],
|
|
cppflags: [
|
|
"-DVIXL_DEBUG",
|
|
"-UNDEBUG",
|
|
|
|
"-O2",
|
|
"-ggdb3",
|
|
],
|
|
}
|
|
|
|
cc_defaults {
|
|
name: "vixl-release",
|
|
defaults: ["vixl-common"],
|
|
cppflags: [
|
|
"-O3",
|
|
],
|
|
}
|
|
|
|
libvixl_visibility = [
|
|
"//art:__subpackages__",
|
|
]
|
|
|
|
// Defaults for the libvixl[d] libraries
|
|
cc_defaults {
|
|
name: "libvixl-defaults",
|
|
srcs: ["src/*.cc"],
|
|
export_include_dirs: ["src"],
|
|
min_sdk_version: "S",
|
|
}
|
|
|
|
art_cc_library {
|
|
name: "libvixl",
|
|
visibility: libvixl_visibility,
|
|
defaults: [
|
|
"libvixl-defaults",
|
|
"vixl-release",
|
|
"vixl-arm",
|
|
"vixl-arm64",
|
|
"dex2oat-pgo-defaults",
|
|
],
|
|
|
|
target: {
|
|
android: {
|
|
lto: {
|
|
thin: true,
|
|
},
|
|
},
|
|
},
|
|
|
|
apex_available: [
|
|
"com.android.art",
|
|
"com.android.art.debug",
|
|
],
|
|
|
|
static: {
|
|
cflags: [
|
|
"-fvisibility=hidden",
|
|
],
|
|
},
|
|
shared: {
|
|
cflags: [
|
|
"-fvisibility=protected",
|
|
],
|
|
},
|
|
}
|
|
|
|
art_cc_library {
|
|
name: "libvixld",
|
|
visibility: libvixl_visibility,
|
|
defaults: [
|
|
"libvixl-defaults",
|
|
"vixl-debug",
|
|
"vixl-arm",
|
|
"vixl-arm64",
|
|
],
|
|
|
|
apex_available: [
|
|
"com.android.art",
|
|
"com.android.art.debug",
|
|
],
|
|
}
|
|
|
|
//######## VIXL HOST TESTS #########
|
|
//
|
|
// We only support 64bit host builds for now.
|
|
// To run all the tests: vixl-test-runner --run_all
|
|
//
|
|
cc_test_host {
|
|
name: "vixl-test-runner",
|
|
gtest: false,
|
|
defaults: [
|
|
"vixl-debug",
|
|
"vixl-arm",
|
|
"vixl-arm64",
|
|
],
|
|
local_include_dirs: [
|
|
"test",
|
|
],
|
|
srcs: [
|
|
"test/*.cc",
|
|
"test/aarch32/*.cc",
|
|
"test/aarch64/*.cc",
|
|
],
|
|
static_libs: [
|
|
"libvixld",
|
|
],
|
|
data: [
|
|
"test/test-trace-reference/*",
|
|
],
|
|
enabled: false,
|
|
target: {
|
|
linux_glibc_x86_64: {
|
|
enabled: true,
|
|
},
|
|
},
|
|
}
|