xref: /aosp_15_r20/bootable/libbootloader/gbl/libelf/BUILD (revision 5225e6b173e52d2efc6bcf950c27374fd72adabc)
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