1// Copyright (C) 2023 The Android Open Source Project 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14// 15 16package { 17 default_applicable_licenses: ["Android-Apache-2.0"], 18} 19 20cc_library_headers { 21 name: "libberberis_guest_loader_headers", 22 defaults: ["berberis_defaults"], 23 host_supported: true, 24 export_include_dirs: ["include"], 25 header_libs: [ 26 "libberberis_guest_state_headers", 27 "libberberis_tinyloader_headers", 28 ], 29 export_header_lib_headers: [ 30 "libberberis_guest_state_headers", 31 "libberberis_tinyloader_headers", 32 ], 33} 34 35// Local headers for compiling guest_loader modules only. 36// Don't depend on these headers in other modules. 37cc_library_headers { 38 name: "_libberberis_guest_loader_private_headers", 39 defaults: ["berberis_defaults"], 40 host_supported: true, 41 export_include_dirs: ["."], 42 header_libs: ["libberberis_guest_loader_headers"], 43} 44 45// filegroups ensure valid file paths for modules depending on 46// libberberis_guest_loader_defaults. 47filegroup { 48 name: "_libberberis_guest_loader_srcs", 49 srcs: [ 50 "app_process.cc", 51 "guest_loader.cc", 52 "linker_callbacks.cc", 53 "linker_debug.cc", 54 ], 55} 56 57filegroup { 58 name: "_libberberis_guest_loader_tests_srcs", 59 srcs: ["guest_loader_test.cc"], 60} 61 62cc_defaults { 63 name: "libberberis_guest_loader_defaults", 64 host_supported: true, 65 srcs: [":_libberberis_guest_loader_srcs"], 66 header_libs: [ 67 "_libberberis_guest_loader_private_headers", 68 "//frameworks/libs/native_bridge_support:native_bridge_guest_linker_headers", 69 "libberberis_base_headers", 70 "libberberis_guest_abi_headers", 71 "libberberis_guest_loader_headers", 72 "libberberis_guest_os_primitives_headers", 73 "libberberis_guest_state_headers", 74 "libberberis_instrument_headers", 75 "libberberis_kernel_api_headers", 76 "libberberis_proxy_loader_headers", 77 "libberberis_runtime_primitives_headers", 78 "libberberis_tinyloader_headers", 79 ], 80 export_header_lib_headers: ["libberberis_guest_loader_headers"], 81 include_dirs: [ 82 "bionic/libc", // private/CFIShadow.h 83 ], 84} 85 86cc_library_static { 87 name: "libberberis_guest_loader_riscv64", 88 defaults: [ 89 "berberis_defaults_64", 90 "libberberis_guest_loader_defaults", 91 ], 92 srcs: [ 93 "riscv64/guest_loader_arch.cc", 94 "riscv64/linker_callbacks_arch.cc", 95 ], 96 header_libs: [ 97 "libberberis_guest_abi_riscv64_headers", 98 ], 99} 100 101cc_defaults { 102 name: "libberberis_guest_loader_tests_defaults", 103 host_supported: false, 104 header_libs: [ 105 "libberberis_runtime_headers", 106 ], 107 srcs: [":_libberberis_guest_loader_tests_srcs"], 108 static_libs: [ 109 "libbase", 110 ], 111 shared_libs: [ 112 "liblog", 113 ], 114 115} 116 117cc_test { 118 name: "berberis_guest_loader_riscv64_tests", 119 defaults: [ 120 "berberis_defaults_64", 121 "libberberis_guest_loader_tests_defaults", 122 ], 123 static_libs: [ 124 "libberberis_guest_loader_riscv64", 125 "libberberis_runtime_riscv64_to_x86_64", 126 ], 127 shared_libs: [ 128 "libberberis_riscv64", 129 ], 130} 131