xref: /aosp_15_r20/external/elfutils/Android.bp (revision 7304104da70ce23c86437a01be71edd1a2d7f37e)
1*7304104dSAndroid Build Coastguard Worker// Copyright (C) 2013 The Android Open Source Project
2*7304104dSAndroid Build Coastguard Worker//
3*7304104dSAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*7304104dSAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*7304104dSAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*7304104dSAndroid Build Coastguard Worker//
7*7304104dSAndroid Build Coastguard Worker//      http://www.apache.org/licenses/LICENSE-2.0
8*7304104dSAndroid Build Coastguard Worker//
9*7304104dSAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*7304104dSAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*7304104dSAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*7304104dSAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*7304104dSAndroid Build Coastguard Worker// limitations under the License.
14*7304104dSAndroid Build Coastguard Worker
15*7304104dSAndroid Build Coastguard Worker// *** THIS PACKAGE HAS SPECIAL LICENSING CONDITIONS.  PLEASE
16*7304104dSAndroid Build Coastguard Worker//     CONSULT THE OWNERS AND [email protected] BEFORE
17*7304104dSAndroid Build Coastguard Worker//     DEPENDING ON IT IN YOUR PROJECT. ***
18*7304104dSAndroid Build Coastguard Workerpackage {
19*7304104dSAndroid Build Coastguard Worker    default_applicable_licenses: ["external_elfutils_license"],
20*7304104dSAndroid Build Coastguard Worker}
21*7304104dSAndroid Build Coastguard Worker
22*7304104dSAndroid Build Coastguard Worker// http://go/android-license-faq
23*7304104dSAndroid Build Coastguard Workerlicense {
24*7304104dSAndroid Build Coastguard Worker    name: "external_elfutils_license",
25*7304104dSAndroid Build Coastguard Worker    visibility: [":__subpackages__"],
26*7304104dSAndroid Build Coastguard Worker    license_kinds: [
27*7304104dSAndroid Build Coastguard Worker        "SPDX-license-identifier-Apache-2.0",
28*7304104dSAndroid Build Coastguard Worker        "SPDX-license-identifier-BSD",
29*7304104dSAndroid Build Coastguard Worker        "SPDX-license-identifier-GFDL", // by exception only
30*7304104dSAndroid Build Coastguard Worker        "SPDX-license-identifier-GPL-2.0-or-later",
31*7304104dSAndroid Build Coastguard Worker        "SPDX-license-identifier-GPL-3.0-or-later",
32*7304104dSAndroid Build Coastguard Worker        "SPDX-license-identifier-LGPL-3.0-or-later",
33*7304104dSAndroid Build Coastguard Worker    ],
34*7304104dSAndroid Build Coastguard Worker    license_text: [
35*7304104dSAndroid Build Coastguard Worker        "COPYING",
36*7304104dSAndroid Build Coastguard Worker        "COPYING-GPLV2",
37*7304104dSAndroid Build Coastguard Worker        "COPYING-LGPLV3",
38*7304104dSAndroid Build Coastguard Worker        "NOTICE",
39*7304104dSAndroid Build Coastguard Worker    ],
40*7304104dSAndroid Build Coastguard Worker}
41*7304104dSAndroid Build Coastguard Worker
42*7304104dSAndroid Build Coastguard Worker// Properties to apply to all static libraries that use elfutils.
43*7304104dSAndroid Build Coastguard Worker// Soong doesn't have propagation for static library dependencies,
44*7304104dSAndroid Build Coastguard Worker// and this have to be included explicitly by elfutils users.
45*7304104dSAndroid Build Coastguard Workercc_defaults {
46*7304104dSAndroid Build Coastguard Worker    name: "elfutils_transitive_defaults",
47*7304104dSAndroid Build Coastguard Worker    static_libs: [
48*7304104dSAndroid Build Coastguard Worker        "libz",
49*7304104dSAndroid Build Coastguard Worker        "libzstd",
50*7304104dSAndroid Build Coastguard Worker    ],
51*7304104dSAndroid Build Coastguard Worker}
52*7304104dSAndroid Build Coastguard Worker
53*7304104dSAndroid Build Coastguard Workercc_defaults {
54*7304104dSAndroid Build Coastguard Worker    name: "elfutils_defaults",
55*7304104dSAndroid Build Coastguard Worker    defaults: ["elfutils_transitive_defaults"],
56*7304104dSAndroid Build Coastguard Worker    cflags: [
57*7304104dSAndroid Build Coastguard Worker        "-DHAVE_CONFIG_H",
58*7304104dSAndroid Build Coastguard Worker        "-D_GNU_SOURCE",
59*7304104dSAndroid Build Coastguard Worker        // upper bound for the number of lines of the resulting mnemonic files
60*7304104dSAndroid Build Coastguard Worker        "-DNMNES=1000",
61*7304104dSAndroid Build Coastguard Worker        "-std=gnu99",
62*7304104dSAndroid Build Coastguard Worker        "-Werror",
63*7304104dSAndroid Build Coastguard Worker        // to suppress the "pointer of type ‘void *’ used in arithmetic" warning
64*7304104dSAndroid Build Coastguard Worker        "-Wno-pointer-arith",
65*7304104dSAndroid Build Coastguard Worker        "-Wno-typedef-redefinition",
66*7304104dSAndroid Build Coastguard Worker    ],
67*7304104dSAndroid Build Coastguard Worker    header_libs: [
68*7304104dSAndroid Build Coastguard Worker        "elfutils_headers",
69*7304104dSAndroid Build Coastguard Worker    ],
70*7304104dSAndroid Build Coastguard Worker    export_header_lib_headers: ["elfutils_headers"],
71*7304104dSAndroid Build Coastguard Worker
72*7304104dSAndroid Build Coastguard Worker    visibility: [
73*7304104dSAndroid Build Coastguard Worker        "//external/dwarves:__subpackages__",
74*7304104dSAndroid Build Coastguard Worker        "//external/elfutils:__subpackages__",
75*7304104dSAndroid Build Coastguard Worker        "//external/libabigail:__subpackages__",
76*7304104dSAndroid Build Coastguard Worker        "//external/libbpf:__subpackages__",
77*7304104dSAndroid Build Coastguard Worker        "//external/stg:__subpackages__",
78*7304104dSAndroid Build Coastguard Worker    ],
79*7304104dSAndroid Build Coastguard Worker}
80*7304104dSAndroid Build Coastguard Worker
81*7304104dSAndroid Build Coastguard Workercc_library {
82*7304104dSAndroid Build Coastguard Worker    name: "libelf",
83*7304104dSAndroid Build Coastguard Worker    host_supported: true,
84*7304104dSAndroid Build Coastguard Worker    native_bridge_supported: true,
85*7304104dSAndroid Build Coastguard Worker    vendor_available: true,
86*7304104dSAndroid Build Coastguard Worker    defaults: ["elfutils_defaults"],
87*7304104dSAndroid Build Coastguard Worker
88*7304104dSAndroid Build Coastguard Worker    srcs: ["libelf/*.c"],
89*7304104dSAndroid Build Coastguard Worker
90*7304104dSAndroid Build Coastguard Worker    export_include_dirs: ["libelf"],
91*7304104dSAndroid Build Coastguard Worker
92*7304104dSAndroid Build Coastguard Worker    target: {
93*7304104dSAndroid Build Coastguard Worker        darwin: {
94*7304104dSAndroid Build Coastguard Worker            enabled: false,
95*7304104dSAndroid Build Coastguard Worker        },
96*7304104dSAndroid Build Coastguard Worker        android: {
97*7304104dSAndroid Build Coastguard Worker            cflags: [
98*7304104dSAndroid Build Coastguard Worker                "-D_FILE_OFFSET_BITS=64",
99*7304104dSAndroid Build Coastguard Worker                "-include AndroidFixup.h",
100*7304104dSAndroid Build Coastguard Worker            ],
101*7304104dSAndroid Build Coastguard Worker            shared: {
102*7304104dSAndroid Build Coastguard Worker                enabled: false,
103*7304104dSAndroid Build Coastguard Worker            },
104*7304104dSAndroid Build Coastguard Worker        },
105*7304104dSAndroid Build Coastguard Worker        musl: {
106*7304104dSAndroid Build Coastguard Worker            cflags: [
107*7304104dSAndroid Build Coastguard Worker                "-include AndroidFixup.h",
108*7304104dSAndroid Build Coastguard Worker            ],
109*7304104dSAndroid Build Coastguard Worker        },
110*7304104dSAndroid Build Coastguard Worker    },
111*7304104dSAndroid Build Coastguard Worker
112*7304104dSAndroid Build Coastguard Worker    visibility: [
113*7304104dSAndroid Build Coastguard Worker        "//art:__subpackages__", // For use in tests only.
114*7304104dSAndroid Build Coastguard Worker        "//device/google/contexthub/util/nanoapp_postprocess",
115*7304104dSAndroid Build Coastguard Worker        "//external/bcc/libbpf-tools",
116*7304104dSAndroid Build Coastguard Worker        "//external/bpftool",
117*7304104dSAndroid Build Coastguard Worker        "//external/igt-gpu-tools",
118*7304104dSAndroid Build Coastguard Worker        "//external/mesa3d",
119*7304104dSAndroid Build Coastguard Worker    ],
120*7304104dSAndroid Build Coastguard Worker}
121*7304104dSAndroid Build Coastguard Worker
122*7304104dSAndroid Build Coastguard Workercc_library_headers {
123*7304104dSAndroid Build Coastguard Worker    name: "elfutils_headers",
124*7304104dSAndroid Build Coastguard Worker    host_supported: true,
125*7304104dSAndroid Build Coastguard Worker    native_bridge_supported: true,
126*7304104dSAndroid Build Coastguard Worker    vendor_available: true,
127*7304104dSAndroid Build Coastguard Worker    export_include_dirs: [
128*7304104dSAndroid Build Coastguard Worker        ".",
129*7304104dSAndroid Build Coastguard Worker        "include",
130*7304104dSAndroid Build Coastguard Worker        "lib",
131*7304104dSAndroid Build Coastguard Worker    ],
132*7304104dSAndroid Build Coastguard Worker    target: {
133*7304104dSAndroid Build Coastguard Worker        android: {
134*7304104dSAndroid Build Coastguard Worker            export_include_dirs: ["bionic-fixup"],
135*7304104dSAndroid Build Coastguard Worker        },
136*7304104dSAndroid Build Coastguard Worker        musl: {
137*7304104dSAndroid Build Coastguard Worker            export_include_dirs: ["bionic-fixup"],
138*7304104dSAndroid Build Coastguard Worker        },
139*7304104dSAndroid Build Coastguard Worker    },
140*7304104dSAndroid Build Coastguard Worker    visibility: [":__subpackages__"],
141*7304104dSAndroid Build Coastguard Worker}
142*7304104dSAndroid Build Coastguard Worker
143*7304104dSAndroid Build Coastguard Workercc_library {
144*7304104dSAndroid Build Coastguard Worker    name: "libdw",
145*7304104dSAndroid Build Coastguard Worker    host_supported: true,
146*7304104dSAndroid Build Coastguard Worker    device_supported: false,
147*7304104dSAndroid Build Coastguard Worker    defaults: ["elfutils_defaults"],
148*7304104dSAndroid Build Coastguard Worker    target: {
149*7304104dSAndroid Build Coastguard Worker        darwin: {
150*7304104dSAndroid Build Coastguard Worker            enabled: false,
151*7304104dSAndroid Build Coastguard Worker        },
152*7304104dSAndroid Build Coastguard Worker        musl: {
153*7304104dSAndroid Build Coastguard Worker            static_libs: [
154*7304104dSAndroid Build Coastguard Worker                "libfts",
155*7304104dSAndroid Build Coastguard Worker            ],
156*7304104dSAndroid Build Coastguard Worker        },
157*7304104dSAndroid Build Coastguard Worker    },
158*7304104dSAndroid Build Coastguard Worker    srcs: [
159*7304104dSAndroid Build Coastguard Worker        "backends/*.c",
160*7304104dSAndroid Build Coastguard Worker        "libcpu/*_disasm.c",
161*7304104dSAndroid Build Coastguard Worker        "libdw/*.c",
162*7304104dSAndroid Build Coastguard Worker        "libdwelf/*.c",
163*7304104dSAndroid Build Coastguard Worker        "libdwfl/*.c",
164*7304104dSAndroid Build Coastguard Worker        "libebl/*.c",
165*7304104dSAndroid Build Coastguard Worker    ],
166*7304104dSAndroid Build Coastguard Worker    generated_headers: [
167*7304104dSAndroid Build Coastguard Worker        "i386_dis",
168*7304104dSAndroid Build Coastguard Worker        "i386_mnemonics",
169*7304104dSAndroid Build Coastguard Worker        "x86_64_dis",
170*7304104dSAndroid Build Coastguard Worker        "x86_64_mnemonics",
171*7304104dSAndroid Build Coastguard Worker    ],
172*7304104dSAndroid Build Coastguard Worker    exclude_srcs: [
173*7304104dSAndroid Build Coastguard Worker        // Do not enabled compression support
174*7304104dSAndroid Build Coastguard Worker        "libdwfl/bzip2.c",
175*7304104dSAndroid Build Coastguard Worker        "libdwfl/lzma.c",
176*7304104dSAndroid Build Coastguard Worker        // These depend on argp which doesn't exist in musl
177*7304104dSAndroid Build Coastguard Worker        "libdwfl/argp-std.c",
178*7304104dSAndroid Build Coastguard Worker        // Those are common source files actually used as headers and not
179*7304104dSAndroid Build Coastguard Worker        // compiled standalone.
180*7304104dSAndroid Build Coastguard Worker        "backends/common-reloc.c",
181*7304104dSAndroid Build Coastguard Worker        "backends/linux-core-note.c",
182*7304104dSAndroid Build Coastguard Worker        "backends/x86_corenote.c",
183*7304104dSAndroid Build Coastguard Worker    ],
184*7304104dSAndroid Build Coastguard Worker    local_include_dirs: [
185*7304104dSAndroid Build Coastguard Worker        "libcpu",
186*7304104dSAndroid Build Coastguard Worker        "libasm",
187*7304104dSAndroid Build Coastguard Worker        "libdwelf",
188*7304104dSAndroid Build Coastguard Worker        "libdwfl",
189*7304104dSAndroid Build Coastguard Worker        "libebl",
190*7304104dSAndroid Build Coastguard Worker    ],
191*7304104dSAndroid Build Coastguard Worker    export_include_dirs: [
192*7304104dSAndroid Build Coastguard Worker        "libdw",
193*7304104dSAndroid Build Coastguard Worker    ],
194*7304104dSAndroid Build Coastguard Worker    static_libs: [
195*7304104dSAndroid Build Coastguard Worker        "libelf",
196*7304104dSAndroid Build Coastguard Worker    ],
197*7304104dSAndroid Build Coastguard Worker    whole_static_libs: [
198*7304104dSAndroid Build Coastguard Worker        "libeu",
199*7304104dSAndroid Build Coastguard Worker    ],
200*7304104dSAndroid Build Coastguard Worker    compile_multilib: "64",
201*7304104dSAndroid Build Coastguard Worker}
202