Add libc_headers header lib
This commit extracts `libc_headers` for `libasync_safe` and
`libpropertyinfoparser` (in the `system/core` repository).
Before this change, `libasync_safe` expects that `libc` is automatically
added to `system_shared_libs` of the libasync_safe vendor variant even
if `libc_defaults` explicitly declines any `system_shared_libs`.
This commit defines `libc_headers` for `libasync_safe` and
`libpropertyinfoparser` so that they can find the headers from libc
without causing circular dependencies.
Bug: 123006819
Test: make checkbuild
Change-Id: I2435ab61d36ff79ca2b4ef70bd898b795159c725
diff --git a/libc/Android.bp b/libc/Android.bp
index 964b64a..36a0507 100644
--- a/libc/Android.bp
+++ b/libc/Android.bp
@@ -1648,6 +1648,59 @@
cmd: "$(location :bionic-generate-version-script) x86_64 $(in) $(out)",
}
+// libc_headers for libasync_safe and libpropertyinfoparser
+cc_library_headers {
+ name: "libc_headers",
+
+ host_supported: true,
+ vendor_available: true,
+ recovery_available: true,
+
+ no_libcrt: true,
+ no_libgcc: true,
+ stl: "none",
+ system_shared_libs: [],
+
+ export_include_dirs: [
+ "include",
+ "kernel/uapi",
+ "kernel/android/uapi",
+ ],
+
+ arch: {
+ arm: {
+ export_include_dirs: [
+ "kernel/uapi/asm-arm",
+ ],
+ },
+ arm64: {
+ export_include_dirs: [
+ "kernel/uapi/asm-arm64",
+ ],
+ },
+ mips: {
+ export_include_dirs: [
+ "kernel/uapi/asm-mips",
+ ],
+ },
+ mips64: {
+ export_include_dirs: [
+ "kernel/uapi/asm-mips",
+ ],
+ },
+ x86: {
+ export_include_dirs: [
+ "kernel/uapi/asm-x86",
+ ],
+ },
+ x86_64: {
+ export_include_dirs: [
+ "kernel/uapi/asm-x86",
+ ],
+ },
+ },
+}
+
// ========================================================
// libstdc++.so and libstdc++.a.
// ========================================================
@@ -2001,47 +2054,39 @@
symbol_file: "libc.map.txt",
export_headers_as_system: true,
export_preprocessed_headers: ["include"],
+ export_include_dirs: [
+ "kernel/android/uapi",
+ "kernel/uapi",
+ ],
arch: {
arm: {
export_include_dirs: [
- "kernel/uapi",
"kernel/uapi/asm-arm",
- "kernel/android/uapi",
],
},
arm64: {
export_include_dirs: [
- "kernel/uapi",
"kernel/uapi/asm-arm64",
- "kernel/android/uapi",
],
},
mips: {
export_include_dirs: [
- "kernel/uapi",
"kernel/uapi/asm-mips",
- "kernel/android/uapi",
],
},
mips64: {
export_include_dirs: [
- "kernel/uapi",
"kernel/uapi/asm-mips",
- "kernel/android/uapi",
],
},
x86: {
export_include_dirs: [
- "kernel/uapi",
"kernel/uapi/asm-x86",
- "kernel/android/uapi",
],
},
x86_64: {
export_include_dirs: [
- "kernel/uapi",
"kernel/uapi/asm-x86",
- "kernel/android/uapi",
],
},
},
diff --git a/libc/async_safe/Android.bp b/libc/async_safe/Android.bp
index 29f90d1..a54d3b0 100644
--- a/libc/async_safe/Android.bp
+++ b/libc/async_safe/Android.bp
@@ -12,6 +12,7 @@
recovery_available: true,
include_dirs: ["bionic/libc"],
+ header_libs: ["libc_headers"],
export_include_dirs: ["include"],
}