1*795d594fSAndroid Build Coastguard Worker// 2*795d594fSAndroid Build Coastguard Worker// Copyright (C) 2014 The Android Open Source Project 3*795d594fSAndroid Build Coastguard Worker// 4*795d594fSAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License"); 5*795d594fSAndroid Build Coastguard Worker// you may not use this file except in compliance with the License. 6*795d594fSAndroid Build Coastguard Worker// You may obtain a copy of the License at 7*795d594fSAndroid Build Coastguard Worker// 8*795d594fSAndroid Build Coastguard Worker// http://www.apache.org/licenses/LICENSE-2.0 9*795d594fSAndroid Build Coastguard Worker// 10*795d594fSAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software 11*795d594fSAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS, 12*795d594fSAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*795d594fSAndroid Build Coastguard Worker// See the License for the specific language governing permissions and 14*795d594fSAndroid Build Coastguard Worker// limitations under the License. 15*795d594fSAndroid Build Coastguard Worker// 16*795d594fSAndroid Build Coastguard Worker 17*795d594fSAndroid Build Coastguard Workerpackage { 18*795d594fSAndroid Build Coastguard Worker // See: http://go/android-license-faq 19*795d594fSAndroid Build Coastguard Worker // A large-scale-change added 'default_applicable_licenses' to import 20*795d594fSAndroid Build Coastguard Worker // all of the 'license_kinds' from "art_license" 21*795d594fSAndroid Build Coastguard Worker // to get the below license kinds: 22*795d594fSAndroid Build Coastguard Worker // SPDX-license-identifier-Apache-2.0 23*795d594fSAndroid Build Coastguard Worker // SPDX-license-identifier-BSD 24*795d594fSAndroid Build Coastguard Worker default_applicable_licenses: ["art_license"], 25*795d594fSAndroid Build Coastguard Worker default_team: "trendy_team_art_performance", 26*795d594fSAndroid Build Coastguard Worker} 27*795d594fSAndroid Build Coastguard Worker 28*795d594fSAndroid Build Coastguard Workercc_library { 29*795d594fSAndroid Build Coastguard Worker name: "libsigchain", 30*795d594fSAndroid Build Coastguard Worker defaults: ["art_defaults"], 31*795d594fSAndroid Build Coastguard Worker visibility: [ 32*795d594fSAndroid Build Coastguard Worker "//frameworks/base/cmds/app_process", 33*795d594fSAndroid Build Coastguard Worker ], 34*795d594fSAndroid Build Coastguard Worker // Make libsigchain symbols global, so that an app library which 35*795d594fSAndroid Build Coastguard Worker // is loaded in a classloader linker namespace looks for 36*795d594fSAndroid Build Coastguard Worker // libsigchain symbols before libc. 37*795d594fSAndroid Build Coastguard Worker // -z,global marks the binary with the DF_1_GLOBAL flag which puts the symbols 38*795d594fSAndroid Build Coastguard Worker // in the global group. It does not affect their visibilities like the version 39*795d594fSAndroid Build Coastguard Worker // script does. 40*795d594fSAndroid Build Coastguard Worker ldflags: ["-Wl,-z,global"], 41*795d594fSAndroid Build Coastguard Worker 42*795d594fSAndroid Build Coastguard Worker host_supported: true, 43*795d594fSAndroid Build Coastguard Worker target: { 44*795d594fSAndroid Build Coastguard Worker linux: { 45*795d594fSAndroid Build Coastguard Worker srcs: ["sigchain.cc"], 46*795d594fSAndroid Build Coastguard Worker }, 47*795d594fSAndroid Build Coastguard Worker 48*795d594fSAndroid Build Coastguard Worker darwin: { 49*795d594fSAndroid Build Coastguard Worker srcs: ["sigchain_fake.cc"], 50*795d594fSAndroid Build Coastguard Worker }, 51*795d594fSAndroid Build Coastguard Worker 52*795d594fSAndroid Build Coastguard Worker android: { 53*795d594fSAndroid Build Coastguard Worker header_libs: ["bionic_libc_platform_headers"], 54*795d594fSAndroid Build Coastguard Worker static_libs: ["libasync_safe"], 55*795d594fSAndroid Build Coastguard Worker shared_libs: ["libunwindstack"], 56*795d594fSAndroid Build Coastguard Worker }, 57*795d594fSAndroid Build Coastguard Worker 58*795d594fSAndroid Build Coastguard Worker linux_bionic: { 59*795d594fSAndroid Build Coastguard Worker header_libs: ["bionic_libc_platform_headers"], 60*795d594fSAndroid Build Coastguard Worker }, 61*795d594fSAndroid Build Coastguard Worker }, 62*795d594fSAndroid Build Coastguard Worker 63*795d594fSAndroid Build Coastguard Worker export_include_dirs: ["."], 64*795d594fSAndroid Build Coastguard Worker apex_available: [ 65*795d594fSAndroid Build Coastguard Worker "com.android.art", 66*795d594fSAndroid Build Coastguard Worker "com.android.art.debug", 67*795d594fSAndroid Build Coastguard Worker "test_broken_com.android.art", 68*795d594fSAndroid Build Coastguard Worker ], 69*795d594fSAndroid Build Coastguard Worker stubs: { 70*795d594fSAndroid Build Coastguard Worker symbol_file: "libsigchain.map.txt", 71*795d594fSAndroid Build Coastguard Worker versions: ["1"], 72*795d594fSAndroid Build Coastguard Worker }, 73*795d594fSAndroid Build Coastguard Worker} 74*795d594fSAndroid Build Coastguard Worker 75*795d594fSAndroid Build Coastguard Worker// Create a fake version of libsigchain which expose the necessary symbols 76*795d594fSAndroid Build Coastguard Worker// but throws when called. This can be used to get static binaries which don't 77*795d594fSAndroid Build Coastguard Worker// need the real functionality of the sig chain but need to please the linker. 78*795d594fSAndroid Build Coastguard Workercc_library_static { 79*795d594fSAndroid Build Coastguard Worker name: "libsigchain_fake", 80*795d594fSAndroid Build Coastguard Worker host_supported: true, 81*795d594fSAndroid Build Coastguard Worker defaults: ["art_defaults"], 82*795d594fSAndroid Build Coastguard Worker srcs: ["sigchain_fake.cc"], 83*795d594fSAndroid Build Coastguard Worker target: { 84*795d594fSAndroid Build Coastguard Worker android: { 85*795d594fSAndroid Build Coastguard Worker static_libs: ["libasync_safe"], 86*795d594fSAndroid Build Coastguard Worker }, 87*795d594fSAndroid Build Coastguard Worker }, 88*795d594fSAndroid Build Coastguard Worker 89*795d594fSAndroid Build Coastguard Worker export_include_dirs: ["."], 90*795d594fSAndroid Build Coastguard Worker} 91*795d594fSAndroid Build Coastguard Worker 92*795d594fSAndroid Build Coastguard Workerart_cc_defaults { 93*795d594fSAndroid Build Coastguard Worker name: "art_sigchain_tests_defaults", 94*795d594fSAndroid Build Coastguard Worker srcs: ["sigchain_test.cc"], 95*795d594fSAndroid Build Coastguard Worker} 96*795d594fSAndroid Build Coastguard Worker 97*795d594fSAndroid Build Coastguard Worker// Version of ART gtest `art_sigchain_tests` bundled with the ART APEX on target. 98*795d594fSAndroid Build Coastguard Worker// TODO(b/192274705): Remove this module when the migration to standalone ART gtests is complete. 99*795d594fSAndroid Build Coastguard Workerart_cc_test { 100*795d594fSAndroid Build Coastguard Worker name: "art_sigchain_tests", 101*795d594fSAndroid Build Coastguard Worker defaults: [ 102*795d594fSAndroid Build Coastguard Worker "art_gtest_defaults", 103*795d594fSAndroid Build Coastguard Worker "art_sigchain_tests_defaults", 104*795d594fSAndroid Build Coastguard Worker ], 105*795d594fSAndroid Build Coastguard Worker} 106*795d594fSAndroid Build Coastguard Worker 107*795d594fSAndroid Build Coastguard Worker// Standalone version of ART gtest `art_sigchain_tests`, not bundled with the ART APEX on target. 108*795d594fSAndroid Build Coastguard Workerart_cc_test { 109*795d594fSAndroid Build Coastguard Worker name: "art_standalone_sigchain_tests", 110*795d594fSAndroid Build Coastguard Worker defaults: [ 111*795d594fSAndroid Build Coastguard Worker "art_standalone_gtest_defaults", 112*795d594fSAndroid Build Coastguard Worker "art_sigchain_tests_defaults", 113*795d594fSAndroid Build Coastguard Worker ], 114*795d594fSAndroid Build Coastguard Worker} 115