f5968d82f5
Bazel doesn't like it when modules produce files with the same name as the module itself, and gives warnings. Rename either the module or file in this case so that the file has an extension and the module doesn't. Bug: 198619163 Test: m nothing Change-Id: Ic4592b06f575496ffd54ac75cb4d682118b29d93
283 lines
7 KiB
Text
283 lines
7 KiB
Text
//
|
|
// libdl
|
|
//
|
|
package {
|
|
default_applicable_licenses: ["bionic_libdl_license"],
|
|
}
|
|
|
|
license {
|
|
name: "bionic_libdl_license",
|
|
visibility: [":__subpackages__"],
|
|
license_kinds: [
|
|
"SPDX-license-identifier-Apache-2.0",
|
|
],
|
|
license_text: [
|
|
"NOTICE",
|
|
],
|
|
}
|
|
|
|
cc_library_static {
|
|
name: "libdl_static",
|
|
defaults: ["linux_bionic_supported"],
|
|
ramdisk_available: true,
|
|
vendor_ramdisk_available: true,
|
|
recovery_available: true,
|
|
native_bridge_supported: true,
|
|
|
|
srcs: [
|
|
"libdl.cpp",
|
|
"libdl_cfi.cpp",
|
|
],
|
|
|
|
cflags: [
|
|
"-Wall",
|
|
"-Wextra",
|
|
"-Wunused",
|
|
"-Werror",
|
|
],
|
|
|
|
// For private/CFIShadow.h.
|
|
include_dirs: ["bionic/libc"],
|
|
|
|
stl: "none",
|
|
system_shared_libs: [],
|
|
header_libs: ["libc_headers"],
|
|
export_header_lib_headers: ["libc_headers"],
|
|
|
|
sanitize: {
|
|
never: true,
|
|
},
|
|
}
|
|
|
|
cc_library {
|
|
name: "libdl",
|
|
ramdisk_available: true,
|
|
vendor_ramdisk_available: true,
|
|
recovery_available: true,
|
|
native_bridge_supported: true,
|
|
static_ndk_lib: true,
|
|
|
|
defaults: ["linux_bionic_supported"],
|
|
|
|
// NOTE: --exclude-libs=libgcc.a makes sure that any symbols libdl.so pulls from
|
|
// libgcc.a are made static to libdl.so. This in turn ensures that libraries that
|
|
// a) pull symbols from libgcc.a and b) depend on libdl.so will not rely on libdl.so
|
|
// to provide those symbols, but will instead pull them from libgcc.a. Specifically,
|
|
// we use this property to make sure libc.so has its own copy of the code from
|
|
// libgcc.a it uses.
|
|
//
|
|
// DO NOT REMOVE --exclude-libs!
|
|
|
|
ldflags: [
|
|
"-Wl,--exclude-libs=libgcc.a",
|
|
"-Wl,--exclude-libs=libgcc_stripped.a",
|
|
"-Wl,--exclude-libs=libclang_rt.builtins-arm-android.a",
|
|
"-Wl,--exclude-libs=libclang_rt.builtins-aarch64-android.a",
|
|
"-Wl,--exclude-libs=libclang_rt.builtins-i686-android.a",
|
|
"-Wl,--exclude-libs=libclang_rt.builtins-riscv64-android.a",
|
|
"-Wl,--exclude-libs=libclang_rt.builtins-x86_64-android.a",
|
|
],
|
|
|
|
// for x86, exclude libgcc_eh.a for the same reasons as above
|
|
arch: {
|
|
arm: {
|
|
version_script: ":libdl.arm.map",
|
|
pack_relocations: false,
|
|
ldflags: ["-Wl,--hash-style=both"],
|
|
},
|
|
arm64: {
|
|
version_script: ":libdl.arm64.map",
|
|
},
|
|
riscv64: {
|
|
version_script: ":libdl.riscv64.map",
|
|
},
|
|
x86: {
|
|
pack_relocations: false,
|
|
ldflags: [
|
|
"-Wl,--exclude-libs=libgcc_eh.a",
|
|
"-Wl,--hash-style=both",
|
|
],
|
|
version_script: ":libdl.x86.map",
|
|
},
|
|
x86_64: {
|
|
ldflags: ["-Wl,--exclude-libs=libgcc_eh.a"],
|
|
version_script: ":libdl.x86_64.map",
|
|
},
|
|
},
|
|
shared: {
|
|
whole_static_libs: ["libdl_static"],
|
|
},
|
|
static: {
|
|
srcs: ["libdl_static.cpp"],
|
|
},
|
|
cflags: [
|
|
"-Wall",
|
|
"-Wextra",
|
|
"-Wunused",
|
|
"-Werror",
|
|
],
|
|
stl: "none",
|
|
|
|
nocrt: true,
|
|
system_shared_libs: [],
|
|
header_libs: ["libc_headers"],
|
|
|
|
// Opt out of native_coverage when opting out of system_shared_libs
|
|
native_coverage: false,
|
|
|
|
// This is placeholder library the actual implementation is (currently)
|
|
// provided by the linker.
|
|
shared_libs: ["ld-android"],
|
|
|
|
sanitize: {
|
|
never: true,
|
|
},
|
|
|
|
stubs: {
|
|
symbol_file: "libdl.map.txt",
|
|
versions: [
|
|
"29",
|
|
"current",
|
|
],
|
|
},
|
|
llndk: {
|
|
symbol_file: "libdl.map.txt",
|
|
},
|
|
|
|
apex_available: [
|
|
"//apex_available:platform",
|
|
"com.android.runtime",
|
|
],
|
|
|
|
lto: {
|
|
never: true,
|
|
},
|
|
}
|
|
|
|
cc_library {
|
|
name: "libdl_android",
|
|
|
|
defaults: ["linux_bionic_supported"],
|
|
ramdisk_available: true,
|
|
vendor_ramdisk_available: true,
|
|
recovery_available: true,
|
|
native_bridge_supported: true,
|
|
|
|
// NOTE: --exclude-libs=libgcc.a makes sure that any symbols libdl.so pulls from
|
|
// libgcc.a are made static to libdl.so. This in turn ensures that libraries that
|
|
// a) pull symbols from libgcc.a and b) depend on libdl.so will not rely on libdl.so
|
|
// to provide those symbols, but will instead pull them from libgcc.a. Specifically,
|
|
// we use this property to make sure libc.so has its own copy of the code from
|
|
// libgcc.a it uses.
|
|
//
|
|
// DO NOT REMOVE --exclude-libs!
|
|
|
|
ldflags: [
|
|
"-Wl,--exclude-libs=libgcc.a",
|
|
"-Wl,--exclude-libs=libgcc_stripped.a",
|
|
"-Wl,--exclude-libs=libclang_rt.builtins-arm-android.a",
|
|
"-Wl,--exclude-libs=libclang_rt.builtins-aarch64-android.a",
|
|
"-Wl,--exclude-libs=libclang_rt.builtins-i686-android.a",
|
|
"-Wl,--exclude-libs=libclang_rt.builtins-riscv64-android.a",
|
|
"-Wl,--exclude-libs=libclang_rt.builtins-x86_64-android.a",
|
|
],
|
|
|
|
// for x86, exclude libgcc_eh.a for the same reasons as above
|
|
arch: {
|
|
x86: {
|
|
ldflags: [
|
|
"-Wl,--exclude-libs=libgcc_eh.a",
|
|
],
|
|
},
|
|
x86_64: {
|
|
ldflags: ["-Wl,--exclude-libs=libgcc_eh.a"],
|
|
},
|
|
},
|
|
|
|
srcs: [ "libdl_android.cpp" ],
|
|
version_script: "libdl_android.map.txt",
|
|
|
|
cflags: [
|
|
"-Wall",
|
|
"-Wextra",
|
|
"-Wunused",
|
|
"-Werror",
|
|
],
|
|
|
|
stl: "none",
|
|
|
|
nocrt: true,
|
|
system_shared_libs: [],
|
|
header_libs: ["libc_headers"],
|
|
|
|
// Opt out of native_coverage when opting out of system_shared_libs
|
|
native_coverage: false,
|
|
|
|
// This is placeholder library the actual implementation is (currently)
|
|
// provided by the linker.
|
|
shared_libs: ["ld-android"],
|
|
|
|
sanitize: {
|
|
never: true,
|
|
},
|
|
|
|
stubs: {
|
|
symbol_file: "libdl_android.map.txt",
|
|
versions: ["current"],
|
|
},
|
|
|
|
apex_available: [
|
|
"//apex_available:platform",
|
|
"com.android.runtime",
|
|
],
|
|
|
|
lto: {
|
|
never: true,
|
|
},
|
|
}
|
|
|
|
ndk_library {
|
|
name: "libdl",
|
|
symbol_file: "libdl.map.txt",
|
|
first_version: "9",
|
|
}
|
|
|
|
genrule {
|
|
name: "libdl.arm.map",
|
|
out: ["libdl.arm.map.txt"],
|
|
srcs: ["libdl.map.txt"],
|
|
tools: ["generate-version-script"],
|
|
cmd: "$(location generate-version-script) arm $(in) $(out)",
|
|
}
|
|
|
|
genrule {
|
|
name: "libdl.arm64.map",
|
|
out: ["libdl.arm64.map.txt"],
|
|
srcs: ["libdl.map.txt"],
|
|
tools: ["generate-version-script"],
|
|
cmd: "$(location generate-version-script) arm64 $(in) $(out)",
|
|
}
|
|
|
|
genrule {
|
|
name: "libdl.riscv64.map",
|
|
out: ["libdl.riscv64.map.txt"],
|
|
srcs: ["libdl.map.txt"],
|
|
tools: ["generate-version-script"],
|
|
cmd: "$(location generate-version-script) riscv64 $(in) $(out)",
|
|
}
|
|
|
|
genrule {
|
|
name: "libdl.x86.map",
|
|
out: ["libdl.x86.map.txt"],
|
|
srcs: ["libdl.map.txt"],
|
|
tools: ["generate-version-script"],
|
|
cmd: "$(location generate-version-script) x86 $(in) $(out)",
|
|
}
|
|
|
|
genrule {
|
|
name: "libdl.x86_64.map",
|
|
out: ["libdl.x86_64.map.txt"],
|
|
srcs: ["libdl.map.txt"],
|
|
tools: ["generate-version-script"],
|
|
cmd: "$(location generate-version-script) x86_64 $(in) $(out)",
|
|
}
|