Replace llndk_library with llndk clause in cc_library

Remove the vestigial llndk_library and replace it with properties
in the llndk clause of the implementation cc_library.

In order to reduce duplication of the arch-specific headers used
by the implementation and LLNDK, rename libc_headers_arch to
libc_llndk_headers and hoist the "include" directory out of it,
since that directory is preproccessed separately for LLNDK
libraries.

Bug: 170784825
Test: m checkbuild
Test: compare out/soong/build.ninja
Change-Id: I75f0ff9129d910640da55eee6a6387467e6e4a9d
diff --git a/libc/Android.bp b/libc/Android.bp
index 9ffc4fe..8922621 100644
--- a/libc/Android.bp
+++ b/libc/Android.bp
@@ -1642,7 +1642,6 @@
     ],
     name: "libc",
     static_ndk_lib: true,
-    llndk_stubs: "libc.llndk",
     product_variables: {
         platform_sdk_version: {
             asflags: ["-DPLATFORM_SDK_VERSION=%d"],
@@ -1766,7 +1765,12 @@
             "current",
         ],
     },
-
+    llndk: {
+        symbol_file: "libc.map.txt",
+        export_headers_as_system: true,
+        export_preprocessed_headers: ["include"],
+        export_llndk_headers: ["libc_llndk_headers"],
+    },
     apex_available: [
         "//apex_available:platform",
         "com.android.runtime",
@@ -1857,13 +1861,11 @@
 }
 
 cc_library_headers {
-    // Internal lib for use in libc_headers. Since we cannot intersect arch{}
-    // and target{} in the same module, this one specifies the arch-dependent
-    // include paths, and then libc_headers filters by target so that the
-    // headers only are included for Bionic targets.
-    name: "libc_headers_arch",
+    name: "libc_llndk_headers",
     visibility: ["//visibility:private"],
-
+    llndk: {
+        llndk_headers: true,
+    },
     host_supported: true,
     vendor_available: true,
     product_available: true,
@@ -1891,7 +1893,6 @@
     sdk_version: "1",
 
     export_system_include_dirs: [
-        "include",
         "kernel/uapi",
         "kernel/android/scsi",
         "kernel/android/uapi",
@@ -1954,12 +1955,14 @@
 
     target: {
         android: {
-            header_libs: ["libc_headers_arch"],
-            export_header_lib_headers: ["libc_headers_arch"],
+            export_system_include_dirs: ["include"],
+            header_libs: ["libc_llndk_headers"],
+            export_header_lib_headers: ["libc_llndk_headers"],
         },
         linux_bionic: {
-            header_libs: ["libc_headers_arch"],
-            export_header_lib_headers: ["libc_headers_arch"],
+            export_system_include_dirs: ["include"],
+            header_libs: ["libc_llndk_headers"],
+            export_header_lib_headers: ["libc_llndk_headers"],
         },
     },
     bazel_module: { bp2build_available: true },
@@ -2299,41 +2302,6 @@
     first_version: "9",
 }
 
-llndk_library {
-    name: "libc.llndk",
-    symbol_file: "libc.map.txt",
-    export_headers_as_system: true,
-    export_preprocessed_headers: ["include"],
-    native_bridge_supported: true,
-    export_include_dirs: [
-        "kernel/uapi",
-        "kernel/android/scsi",
-        "kernel/android/uapi",
-    ],
-    arch: {
-        arm: {
-            export_include_dirs: [
-                "kernel/uapi/asm-arm",
-            ],
-        },
-        arm64: {
-            export_include_dirs: [
-                "kernel/uapi/asm-arm64",
-            ],
-        },
-        x86: {
-            export_include_dirs: [
-                "kernel/uapi/asm-x86",
-            ],
-        },
-        x86_64: {
-            export_include_dirs: [
-                "kernel/uapi/asm-x86",
-            ],
-        },
-    },
-}
-
 ndk_library {
     name: "libstdc++",
     symbol_file: "libstdc++.map.txt",