1*5225e6b1SAndroid Build Coastguard Worker# Copyright (C) 2023 The Android Open Source Project 2*5225e6b1SAndroid Build Coastguard Worker# 3*5225e6b1SAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License"); 4*5225e6b1SAndroid Build Coastguard Worker# you may not use this file except in compliance with the License. 5*5225e6b1SAndroid Build Coastguard Worker# You may obtain a copy of the License at 6*5225e6b1SAndroid Build Coastguard Worker# 7*5225e6b1SAndroid Build Coastguard Worker# http://www.apache.org/licenses/LICENSE-2.0 8*5225e6b1SAndroid Build Coastguard Worker# 9*5225e6b1SAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software 10*5225e6b1SAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS, 11*5225e6b1SAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*5225e6b1SAndroid Build Coastguard Worker# See the License for the specific language governing permissions and 13*5225e6b1SAndroid Build Coastguard Worker# limitations under the License. 14*5225e6b1SAndroid Build Coastguard Worker 15*5225e6b1SAndroid Build Coastguard Workerpackage( 16*5225e6b1SAndroid Build Coastguard Worker default_visibility = ["//visibility:public"], 17*5225e6b1SAndroid Build Coastguard Worker) 18*5225e6b1SAndroid Build Coastguard Worker 19*5225e6b1SAndroid Build Coastguard Workercc_library( 20*5225e6b1SAndroid Build Coastguard Worker name = "relocation", 21*5225e6b1SAndroid Build Coastguard Worker srcs = ["relocation.cpp"], 22*5225e6b1SAndroid Build Coastguard Worker hdrs = ["public/elf/relocation.h"], 23*5225e6b1SAndroid Build Coastguard Worker copts = select({ 24*5225e6b1SAndroid Build Coastguard Worker "@gbl//toolchain:gbl_rust_elf_riscv64": [], 25*5225e6b1SAndroid Build Coastguard Worker # For the `elf_static_relocation_checker` host tool, enable 26*5225e6b1SAndroid Build Coastguard Worker # print and panics as exit(). 27*5225e6b1SAndroid Build Coastguard Worker "//conditions:default": ["-DHOST_TOOLING"], 28*5225e6b1SAndroid Build Coastguard Worker }), 29*5225e6b1SAndroid Build Coastguard Worker includes = ["public"], 30*5225e6b1SAndroid Build Coastguard Worker deps = ["@elfutils//:elf_type_header"], 31*5225e6b1SAndroid Build Coastguard Worker) 32*5225e6b1SAndroid Build Coastguard Worker 33*5225e6b1SAndroid Build Coastguard Workercc_test( 34*5225e6b1SAndroid Build Coastguard Worker name = "relocation_test", 35*5225e6b1SAndroid Build Coastguard Worker size = "small", 36*5225e6b1SAndroid Build Coastguard Worker srcs = ["relocation_test.cpp"], 37*5225e6b1SAndroid Build Coastguard Worker target_compatible_with = [ 38*5225e6b1SAndroid Build Coastguard Worker "@platforms//os:linux", 39*5225e6b1SAndroid Build Coastguard Worker ], 40*5225e6b1SAndroid Build Coastguard Worker deps = [ 41*5225e6b1SAndroid Build Coastguard Worker ":relocation", 42*5225e6b1SAndroid Build Coastguard Worker "@elfutils//:elf_type_header", 43*5225e6b1SAndroid Build Coastguard Worker "@googletest//:gtest_main", 44*5225e6b1SAndroid Build Coastguard Worker ], 45*5225e6b1SAndroid Build Coastguard Worker) 46*5225e6b1SAndroid Build Coastguard Worker 47*5225e6b1SAndroid Build Coastguard Workercc_binary( 48*5225e6b1SAndroid Build Coastguard Worker name = "elf_static_relocation_checker", 49*5225e6b1SAndroid Build Coastguard Worker srcs = ["elf_static_relocation_checker.cpp"], 50*5225e6b1SAndroid Build Coastguard Worker copts = [ 51*5225e6b1SAndroid Build Coastguard Worker "-std=c++17", 52*5225e6b1SAndroid Build Coastguard Worker "-Wall", 53*5225e6b1SAndroid Build Coastguard Worker "-Werror", 54*5225e6b1SAndroid Build Coastguard Worker ], 55*5225e6b1SAndroid Build Coastguard Worker deps = [ 56*5225e6b1SAndroid Build Coastguard Worker ":relocation", 57*5225e6b1SAndroid Build Coastguard Worker "@elfutils//:elf_type_header", 58*5225e6b1SAndroid Build Coastguard Worker ], 59*5225e6b1SAndroid Build Coastguard Worker) 60