Add default_shared_libs property

Building against a locally-built libc besides bionic requires setting
system_shared_libs to avoid circular dependencies, but modules all
over the tree assume that system_shared_libs only affects modules
building against bionic.  Add a new default_shared_libs property
that applies to all modules, which will generally be set in
arch-specific clauses to only affect the desired set of modules.

Bug: 190084016
Test: m checkbuild
Change-Id: Ia2349d84c70e503916f90a5d2702e135248f73df
diff --git a/sdk/cc_sdk_test.go b/sdk/cc_sdk_test.go
index 31555c0..98697dc 100644
--- a/sdk/cc_sdk_test.go
+++ b/sdk/cc_sdk_test.go
@@ -2189,7 +2189,7 @@
 	result := testSdkWithCc(t, `
 		sdk {
 			name: "mysdk",
-			native_shared_libs: ["sslnil", "sslempty", "sslnonempty"],
+			native_shared_libs: ["sslnil", "sslempty", "sslnonempty", "dslnil", "dslempty", "dslnonempty"],
 		}
 
 		cc_library {
@@ -2206,6 +2206,21 @@
 			name: "sslnonempty",
 			system_shared_libs: ["sslnil"],
 		}
+
+		cc_library {
+			name: "dslnil",
+			host_supported: true,
+		}
+
+		cc_library {
+			name: "dslempty",
+			default_shared_libs: [],
+		}
+
+		cc_library {
+			name: "dslnonempty",
+			default_shared_libs: ["sslnil"],
+		}
 	`)
 
 	CheckSnapshot(t, result, "mysdk", "",
@@ -2261,13 +2276,62 @@
         },
     },
 }
-`))
+
+cc_prebuilt_library_shared {
+    name: "dslnil",
+    prefer: false,
+    visibility: ["//visibility:public"],
+    apex_available: ["//apex_available:platform"],
+    compile_multilib: "both",
+    arch: {
+        arm64: {
+            srcs: ["arm64/lib/dslnil.so"],
+        },
+        arm: {
+            srcs: ["arm/lib/dslnil.so"],
+        },
+    },
+}
+
+cc_prebuilt_library_shared {
+    name: "dslempty",
+    prefer: false,
+    visibility: ["//visibility:public"],
+    apex_available: ["//apex_available:platform"],
+    compile_multilib: "both",
+    default_shared_libs: [],
+    arch: {
+        arm64: {
+            srcs: ["arm64/lib/dslempty.so"],
+        },
+        arm: {
+            srcs: ["arm/lib/dslempty.so"],
+        },
+    },
+}
+
+cc_prebuilt_library_shared {
+    name: "dslnonempty",
+    prefer: false,
+    visibility: ["//visibility:public"],
+    apex_available: ["//apex_available:platform"],
+    compile_multilib: "both",
+    default_shared_libs: ["sslnil"],
+    arch: {
+        arm64: {
+            srcs: ["arm64/lib/dslnonempty.so"],
+        },
+        arm: {
+            srcs: ["arm/lib/dslnonempty.so"],
+        },
+    },
+}`))
 
 	result = testSdkWithCc(t, `
 		sdk {
 			name: "mysdk",
 			host_supported: true,
-			native_shared_libs: ["sslvariants"],
+			native_shared_libs: ["sslvariants", "dslvariants"],
 		}
 
 		cc_library {
@@ -2279,6 +2343,16 @@
 				},
 			},
 		}
+
+		cc_library {
+			name: "dslvariants",
+			host_supported: true,
+			target: {
+				android: {
+					default_shared_libs: [],
+				},
+			},
+		}
 	`)
 
 	CheckSnapshot(t, result, "mysdk", "",
@@ -2315,6 +2389,37 @@
         },
     },
 }
+
+cc_prebuilt_library_shared {
+    name: "dslvariants",
+    prefer: false,
+    visibility: ["//visibility:public"],
+    apex_available: ["//apex_available:platform"],
+    host_supported: true,
+    compile_multilib: "both",
+    target: {
+        host: {
+            enabled: false,
+        },
+        android: {
+            default_shared_libs: [],
+        },
+        android_arm64: {
+            srcs: ["android/arm64/lib/dslvariants.so"],
+        },
+        android_arm: {
+            srcs: ["android/arm/lib/dslvariants.so"],
+        },
+        linux_glibc_x86_64: {
+            enabled: true,
+            srcs: ["linux_glibc/x86_64/lib/dslvariants.so"],
+        },
+        linux_glibc_x86: {
+            enabled: true,
+            srcs: ["linux_glibc/x86/lib/dslvariants.so"],
+        },
+    },
+}
 `),
 		checkVersionedAndroidBpContents(`
 // This is auto-generated. DO NOT EDIT.
@@ -2351,11 +2456,46 @@
     },
 }
 
+cc_prebuilt_library_shared {
+    name: "mysdk_dslvariants@current",
+    sdk_member_name: "dslvariants",
+    visibility: ["//visibility:public"],
+    apex_available: ["//apex_available:platform"],
+    host_supported: true,
+    installable: false,
+    compile_multilib: "both",
+    target: {
+        host: {
+            enabled: false,
+        },
+        android: {
+            default_shared_libs: [],
+        },
+        android_arm64: {
+            srcs: ["android/arm64/lib/dslvariants.so"],
+        },
+        android_arm: {
+            srcs: ["android/arm/lib/dslvariants.so"],
+        },
+        linux_glibc_x86_64: {
+            enabled: true,
+            srcs: ["linux_glibc/x86_64/lib/dslvariants.so"],
+        },
+        linux_glibc_x86: {
+            enabled: true,
+            srcs: ["linux_glibc/x86/lib/dslvariants.so"],
+        },
+    },
+}
+
 sdk_snapshot {
     name: "mysdk@current",
     visibility: ["//visibility:public"],
     host_supported: true,
-    native_shared_libs: ["mysdk_sslvariants@current"],
+    native_shared_libs: [
+        "mysdk_sslvariants@current",
+        "mysdk_dslvariants@current",
+    ],
     target: {
         host: {
             enabled: false,