1*40dae23fSAndroid Build Coastguard Worker// 2*40dae23fSAndroid Build Coastguard Worker// Copyright (C) 2019 The Android Open Source Project 3*40dae23fSAndroid Build Coastguard Worker// 4*40dae23fSAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License"); 5*40dae23fSAndroid Build Coastguard Worker// you may not use this file except in compliance with the License. 6*40dae23fSAndroid Build Coastguard Worker// You may obtain a copy of the License at 7*40dae23fSAndroid Build Coastguard Worker// 8*40dae23fSAndroid Build Coastguard Worker// http://www.apache.org/licenses/LICENSE-2.0 9*40dae23fSAndroid Build Coastguard Worker// 10*40dae23fSAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software 11*40dae23fSAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS, 12*40dae23fSAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*40dae23fSAndroid Build Coastguard Worker// See the License for the specific language governing permissions and 14*40dae23fSAndroid Build Coastguard Worker// limitations under the License. 15*40dae23fSAndroid Build Coastguard Worker// 16*40dae23fSAndroid Build Coastguard Worker 17*40dae23fSAndroid Build Coastguard Worker// libartpalette-system is the implementation of the platform 18*40dae23fSAndroid Build Coastguard Worker// abstraction layer for ART. It is intended to be dynamically loaded by 19*40dae23fSAndroid Build Coastguard Worker// ART which now ships as an APEX and not part of the system. 20*40dae23fSAndroid Build Coastguard Workerpackage { 21*40dae23fSAndroid Build Coastguard Worker default_applicable_licenses: ["Android-Apache-2.0"], 22*40dae23fSAndroid Build Coastguard Worker} 23*40dae23fSAndroid Build Coastguard Worker 24*40dae23fSAndroid Build Coastguard Workercc_library { 25*40dae23fSAndroid Build Coastguard Worker name: "libartpalette-system", 26*40dae23fSAndroid Build Coastguard Worker cpp_std: "experimental", 27*40dae23fSAndroid Build Coastguard Worker compile_multilib: "both", 28*40dae23fSAndroid Build Coastguard Worker header_libs: [ 29*40dae23fSAndroid Build Coastguard Worker "libartpalette-headers", 30*40dae23fSAndroid Build Coastguard Worker "jni_headers", 31*40dae23fSAndroid Build Coastguard Worker ], 32*40dae23fSAndroid Build Coastguard Worker host_supported: true, 33*40dae23fSAndroid Build Coastguard Worker target: { 34*40dae23fSAndroid Build Coastguard Worker android: { 35*40dae23fSAndroid Build Coastguard Worker srcs: [ 36*40dae23fSAndroid Build Coastguard Worker "palette_android.cc", 37*40dae23fSAndroid Build Coastguard Worker "palette_android_partner.cc", 38*40dae23fSAndroid Build Coastguard Worker ], 39*40dae23fSAndroid Build Coastguard Worker header_libs: ["libbase_headers"], 40*40dae23fSAndroid Build Coastguard Worker shared_libs: [ 41*40dae23fSAndroid Build Coastguard Worker "libbase", 42*40dae23fSAndroid Build Coastguard Worker "libcutils", 43*40dae23fSAndroid Build Coastguard Worker "libdebugstore_cxx", 44*40dae23fSAndroid Build Coastguard Worker "liblog", 45*40dae23fSAndroid Build Coastguard Worker "libprocessgroup", 46*40dae23fSAndroid Build Coastguard Worker "libtombstoned_client", 47*40dae23fSAndroid Build Coastguard Worker "libselinux", 48*40dae23fSAndroid Build Coastguard Worker ], 49*40dae23fSAndroid Build Coastguard Worker }, 50*40dae23fSAndroid Build Coastguard Worker host: { 51*40dae23fSAndroid Build Coastguard Worker header_libs: ["libbase_headers"], 52*40dae23fSAndroid Build Coastguard Worker srcs: ["palette_fake.cc"], 53*40dae23fSAndroid Build Coastguard Worker shared_libs: ["libbase"], 54*40dae23fSAndroid Build Coastguard Worker }, 55*40dae23fSAndroid Build Coastguard Worker darwin: { 56*40dae23fSAndroid Build Coastguard Worker enabled: false, 57*40dae23fSAndroid Build Coastguard Worker }, 58*40dae23fSAndroid Build Coastguard Worker windows: { 59*40dae23fSAndroid Build Coastguard Worker enabled: false, 60*40dae23fSAndroid Build Coastguard Worker }, 61*40dae23fSAndroid Build Coastguard Worker }, 62*40dae23fSAndroid Build Coastguard Worker static: { 63*40dae23fSAndroid Build Coastguard Worker enabled: false, 64*40dae23fSAndroid Build Coastguard Worker }, 65*40dae23fSAndroid Build Coastguard Worker version_script: "libartpalette.map.txt", 66*40dae23fSAndroid Build Coastguard Worker stubs: { 67*40dae23fSAndroid Build Coastguard Worker versions: [ 68*40dae23fSAndroid Build Coastguard Worker "1", 69*40dae23fSAndroid Build Coastguard Worker "2", 70*40dae23fSAndroid Build Coastguard Worker "3", 71*40dae23fSAndroid Build Coastguard Worker "4", 72*40dae23fSAndroid Build Coastguard Worker ], 73*40dae23fSAndroid Build Coastguard Worker symbol_file: "libartpalette.map.txt", 74*40dae23fSAndroid Build Coastguard Worker }, 75*40dae23fSAndroid Build Coastguard Worker visibility: [ 76*40dae23fSAndroid Build Coastguard Worker // Limit visibility to ART. Many functions wrap native libraries without 77*40dae23fSAndroid Build Coastguard Worker // stable APIs, and if those change drastically it may become hard to 78*40dae23fSAndroid Build Coastguard Worker // keep the wrappers functional. Hence, while they can never be removed 79*40dae23fSAndroid Build Coastguard Worker // completely, we can always update the ART module to use other APIs and 80*40dae23fSAndroid Build Coastguard Worker // then turn them into stubs that only return PALETTE_STATUS_NOT_SUPPORTED. 81*40dae23fSAndroid Build Coastguard Worker // That makes this library unsuitable for other modules. 82*40dae23fSAndroid Build Coastguard Worker "//art:__subpackages__", 83*40dae23fSAndroid Build Coastguard Worker "//libcore:__subpackages__", 84*40dae23fSAndroid Build Coastguard Worker "//libnativehelper:__subpackages__", 85*40dae23fSAndroid Build Coastguard Worker 86*40dae23fSAndroid Build Coastguard Worker // Exception: composd calls PaletteCreateOdrefreshStagingDirectory, but 87*40dae23fSAndroid Build Coastguard Worker // that function doesn't depend on any unstable internal APIs (only libc 88*40dae23fSAndroid Build Coastguard Worker // and libselinux). 89*40dae23fSAndroid Build Coastguard Worker "//packages/modules/Virtualization/android/composd/native", 90*40dae23fSAndroid Build Coastguard Worker 91*40dae23fSAndroid Build Coastguard Worker // Microdroid needs this library to be able to run odrefresh and dex2oat 92*40dae23fSAndroid Build Coastguard Worker // in the pVM, but it doesn't make any calls to it itself. 93*40dae23fSAndroid Build Coastguard Worker "//packages/modules/Virtualization/microdroid", 94*40dae23fSAndroid Build Coastguard Worker "//visibility:any_system_partition", 95*40dae23fSAndroid Build Coastguard Worker ], 96*40dae23fSAndroid Build Coastguard Worker} 97*40dae23fSAndroid Build Coastguard Worker 98*40dae23fSAndroid Build Coastguard Worker// Definition of the extended SDK offered by the platform for mainline modules. 99*40dae23fSAndroid Build Coastguard Worker// TODO: this is in the palette directory as it's only being used by ART. 100*40dae23fSAndroid Build Coastguard Worker// It used to be in prebuilts/sdk/mainline, but this doesn't work for ART 101*40dae23fSAndroid Build Coastguard Worker// unbundled which also includes the prebuilts/sdk git repository. We need to find 102*40dae23fSAndroid Build Coastguard Worker// a better location for this SDK, see b/162706448. 103*40dae23fSAndroid Build Coastguard Workersdk { 104*40dae23fSAndroid Build Coastguard Worker name: "platform-mainline-sdk", 105*40dae23fSAndroid Build Coastguard Worker host_supported: true, 106*40dae23fSAndroid Build Coastguard Worker native_shared_libs: [ 107*40dae23fSAndroid Build Coastguard Worker "libartpalette-system", 108*40dae23fSAndroid Build Coastguard Worker ], 109*40dae23fSAndroid Build Coastguard Worker native_static_libs: [ 110*40dae23fSAndroid Build Coastguard Worker "libcap", 111*40dae23fSAndroid Build Coastguard Worker ], 112*40dae23fSAndroid Build Coastguard Worker target: { 113*40dae23fSAndroid Build Coastguard Worker darwin: { 114*40dae23fSAndroid Build Coastguard Worker enabled: false, 115*40dae23fSAndroid Build Coastguard Worker }, 116*40dae23fSAndroid Build Coastguard Worker android: { 117*40dae23fSAndroid Build Coastguard Worker native_shared_libs: [ 118*40dae23fSAndroid Build Coastguard Worker "libbinder_ndk", 119*40dae23fSAndroid Build Coastguard Worker "liblog", 120*40dae23fSAndroid Build Coastguard Worker ], 121*40dae23fSAndroid Build Coastguard Worker }, 122*40dae23fSAndroid Build Coastguard Worker not_windows: { 123*40dae23fSAndroid Build Coastguard Worker native_libs: [ 124*40dae23fSAndroid Build Coastguard Worker "liblog", 125*40dae23fSAndroid Build Coastguard Worker ], 126*40dae23fSAndroid Build Coastguard Worker }, 127*40dae23fSAndroid Build Coastguard Worker }, 128*40dae23fSAndroid Build Coastguard Worker} 129*40dae23fSAndroid Build Coastguard Worker 130*40dae23fSAndroid Build Coastguard Workermodule_exports { 131*40dae23fSAndroid Build Coastguard Worker name: "platform-mainline-test-exports", 132*40dae23fSAndroid Build Coastguard Worker host_supported: false, 133*40dae23fSAndroid Build Coastguard Worker native_shared_libs: [ 134*40dae23fSAndroid Build Coastguard Worker // Required by the implementation of libartpalette-system, 135*40dae23fSAndroid Build Coastguard Worker // which ART uses in replacement of stubs in its testing environment. 136*40dae23fSAndroid Build Coastguard Worker "libtombstoned_client", 137*40dae23fSAndroid Build Coastguard Worker ], 138*40dae23fSAndroid Build Coastguard Worker} 139