Merge "[LSC] Add LOCAL_LICENSE_KINDS to bionic"
diff --git a/Android.bp b/Android.bp
new file mode 100644
index 0000000..c2caebe
--- /dev/null
+++ b/Android.bp
@@ -0,0 +1,46 @@
+//
+// Copyright (C) 2021 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package {
+    default_applicable_licenses: ["bionic_license"],
+}
+
+// Added automatically by a large-scale-change that took the approach of
+// 'apply every license found to every target'. While this makes sure we respect
+// every license restriction, it may not be entirely correct.
+//
+// e.g. GPL in an MIT project might only apply to the contrib/ directory.
+//
+// Please consider splitting the single license below into multiple licenses,
+// taking care not to lose any license_kind information, and overriding the
+// default license using the 'licenses: [...]' property on targets as needed.
+//
+// For unused files, consider creating a 'fileGroup' with "//visibility:private"
+// to attach the license to, and including a comment whether the files may be
+// used in the current project.
+// See: http://go/android-license-faq
+license {
+    name: "bionic_license",
+    visibility: [":__subpackages__"],
+    license_kinds: [
+        "SPDX-license-identifier-Apache-2.0",
+        "SPDX-license-identifier-BSD",
+        "SPDX-license-identifier-ISC",
+        "SPDX-license-identifier-MIT",
+        "legacy_notice",
+        "legacy_unencumbered",
+    ],
+    // large-scale-change unable to identify any license_text files
+}
diff --git a/apex/Android.bp b/apex/Android.bp
index 8aec64a..16422f8 100644
--- a/apex/Android.bp
+++ b/apex/Android.bp
@@ -3,6 +3,15 @@
 // In Q this contained Bionic, ART and Libcore.
 // It keeps the name /apex/com.android.runtime for app compat reasons.
 
+package {
+    // See: http://go/android-license-faq
+    // A large-scale-change added 'default_applicable_licenses' to import
+    // all of the 'license_kinds' from "bionic_license"
+    // to get the below license kinds:
+    //   legacy_notice
+    default_applicable_licenses: ["bionic_license"],
+}
+
 android_app_certificate {
     name: "com.android.runtime.certificate",
     certificate: "com.android.runtime",
diff --git a/benchmarks/Android.bp b/benchmarks/Android.bp
index 61084a1..fa31e7e 100644
--- a/benchmarks/Android.bp
+++ b/benchmarks/Android.bp
@@ -14,6 +14,16 @@
 // limitations under the License.
 //
 
+package {
+    // See: http://go/android-license-faq
+    // A large-scale-change added 'default_applicable_licenses' to import
+    // all of the 'license_kinds' from "bionic_license"
+    // to get the below license kinds:
+    //   SPDX-license-identifier-Apache-2.0
+    //   SPDX-license-identifier-BSD
+    default_applicable_licenses: ["bionic_license"],
+}
+
 cc_defaults {
     name: "bionic-benchmarks-defaults",
     cflags: [
diff --git a/benchmarks/linker_relocation/Android.bp b/benchmarks/linker_relocation/Android.bp
index 6955c67..993ece2 100644
--- a/benchmarks/linker_relocation/Android.bp
+++ b/benchmarks/linker_relocation/Android.bp
@@ -24,6 +24,15 @@
 // OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 // SUCH DAMAGE.
 
+package {
+    // See: http://go/android-license-faq
+    // A large-scale-change added 'default_applicable_licenses' to import
+    // all of the 'license_kinds' from "bionic_license"
+    // to get the below license kinds:
+    //   SPDX-license-identifier-BSD
+    default_applicable_licenses: ["bionic_license"],
+}
+
 cc_library_headers {
     name: "linker_reloc_bench_headers",
     defaults: ["bionic_spawn_benchmark_targets"],
diff --git a/benchmarks/linker_relocation/gen/Android.bp b/benchmarks/linker_relocation/gen/Android.bp
index e535e53..7b5fafc 100644
--- a/benchmarks/linker_relocation/gen/Android.bp
+++ b/benchmarks/linker_relocation/gen/Android.bp
@@ -1,4 +1,13 @@
 // AUTO-GENERATED BY gen_bench.py -- do not edit
+package {
+    // See: http://go/android-license-faq
+    // A large-scale-change added 'default_applicable_licenses' to import
+    // all of the 'license_kinds' from "bionic_license"
+    // to get the below license kinds:
+    //   legacy_notice
+    default_applicable_licenses: ["bionic_license"],
+}
+
 cc_defaults {
     name: "linker_reloc_bench_all_libs",
     runtime_libs: [
diff --git a/benchmarks/spawn/Android.bp b/benchmarks/spawn/Android.bp
index 689e7c9..8235e38 100644
--- a/benchmarks/spawn/Android.bp
+++ b/benchmarks/spawn/Android.bp
@@ -26,6 +26,15 @@
 // SUCH DAMAGE.
 //
 
+package {
+    // See: http://go/android-license-faq
+    // A large-scale-change added 'default_applicable_licenses' to import
+    // all of the 'license_kinds' from "bionic_license"
+    // to get the below license kinds:
+    //   SPDX-license-identifier-BSD
+    default_applicable_licenses: ["bionic_license"],
+}
+
 cc_defaults {
     name: "bionic_spawn_benchmark_targets",
     host_supported: true,
diff --git a/libc/Android.bp b/libc/Android.bp
index 6ba60ca..828484d 100644
--- a/libc/Android.bp
+++ b/libc/Android.bp
@@ -1,5 +1,39 @@
 // Define the common source files for all the libc instances
 // =========================================================
+package {
+    default_applicable_licenses: ["bionic_libc_license"],
+}
+
+// Added automatically by a large-scale-change that took the approach of
+// 'apply every license found to every target'. While this makes sure we respect
+// every license restriction, it may not be entirely correct.
+//
+// e.g. GPL in an MIT project might only apply to the contrib/ directory.
+//
+// Please consider splitting the single license below into multiple licenses,
+// taking care not to lose any license_kind information, and overriding the
+// default license using the 'licenses: [...]' property on targets as needed.
+//
+// For unused files, consider creating a 'fileGroup' with "//visibility:private"
+// to attach the license to, and including a comment whether the files may be
+// used in the current project.
+// See: http://go/android-license-faq
+license {
+    name: "bionic_libc_license",
+    visibility: [":__subpackages__"],
+    license_kinds: [
+        "SPDX-license-identifier-Apache-2.0",
+        "SPDX-license-identifier-BSD",
+        "SPDX-license-identifier-ISC",
+        "SPDX-license-identifier-MIT",
+        "legacy_notice",
+        "legacy_unencumbered",
+    ],
+    license_text: [
+        "NOTICE",
+    ],
+}
+
 libc_common_src_files = [
     "async_safe/async_safe_log.cpp",
     "bionic/ether_aton.c",
diff --git a/libc/async_safe/Android.bp b/libc/async_safe/Android.bp
index 66389b9..a6111b7 100644
--- a/libc/async_safe/Android.bp
+++ b/libc/async_safe/Android.bp
@@ -1,6 +1,15 @@
 // ========================================================
 // libasync_safe.a
 // ========================================================
+package {
+    // See: http://go/android-license-faq
+    // A large-scale-change added 'default_applicable_licenses' to import
+    // all of the 'license_kinds' from "bionic_libc_license"
+    // to get the below license kinds:
+    //   SPDX-license-identifier-BSD
+    default_applicable_licenses: ["bionic_libc_license"],
+}
+
 cc_library_static {
     defaults: ["libc_defaults"],
     srcs: [
diff --git a/libc/malloc_debug/Android.bp b/libc/malloc_debug/Android.bp
index 760039b..3b3a22e 100644
--- a/libc/malloc_debug/Android.bp
+++ b/libc/malloc_debug/Android.bp
@@ -2,6 +2,16 @@
 // libc_malloc_debug_backtrace.a
 // ==============================================================
 // Used by libmemunreachable
+package {
+    // See: http://go/android-license-faq
+    // A large-scale-change added 'default_applicable_licenses' to import
+    // all of the 'license_kinds' from "bionic_libc_license"
+    // to get the below license kinds:
+    //   SPDX-license-identifier-Apache-2.0
+    //   SPDX-license-identifier-BSD
+    default_applicable_licenses: ["bionic_libc_license"],
+}
+
 cc_library_static {
     name: "libc_malloc_debug_backtrace",
     vendor_available: true,
diff --git a/libc/malloc_hooks/Android.bp b/libc/malloc_hooks/Android.bp
index 487f3fb..01394da 100644
--- a/libc/malloc_hooks/Android.bp
+++ b/libc/malloc_hooks/Android.bp
@@ -1,6 +1,15 @@
 // ==============================================================
 // libc_malloc_hooks.so
 // ==============================================================
+package {
+    // See: http://go/android-license-faq
+    // A large-scale-change added 'default_applicable_licenses' to import
+    // all of the 'license_kinds' from "bionic_libc_license"
+    // to get the below license kinds:
+    //   SPDX-license-identifier-BSD
+    default_applicable_licenses: ["bionic_libc_license"],
+}
+
 cc_library {
     name: "libc_malloc_hooks",
 
diff --git a/libc/system_properties/Android.bp b/libc/system_properties/Android.bp
index 3846169..361fc79 100644
--- a/libc/system_properties/Android.bp
+++ b/libc/system_properties/Android.bp
@@ -1,3 +1,13 @@
+package {
+    // See: http://go/android-license-faq
+    // A large-scale-change added 'default_applicable_licenses' to import
+    // all of the 'license_kinds' from "bionic_libc_license"
+    // to get the below license kinds:
+    //   SPDX-license-identifier-Apache-2.0
+    //   SPDX-license-identifier-BSD
+    default_applicable_licenses: ["bionic_libc_license"],
+}
+
 cc_library_static {
     name: "libsystemproperties",
     defaults: ["libc_defaults"],
diff --git a/libc/tools/Android.bp b/libc/tools/Android.bp
index bf515ca..0b0b240 100644
--- a/libc/tools/Android.bp
+++ b/libc/tools/Android.bp
@@ -1,3 +1,13 @@
+package {
+    // See: http://go/android-license-faq
+    // A large-scale-change added 'default_applicable_licenses' to import
+    // all of the 'license_kinds' from "bionic_libc_license"
+    // to get the below license kinds:
+    //   SPDX-license-identifier-Apache-2.0
+    //   legacy_unencumbered
+    default_applicable_licenses: ["bionic_libc_license"],
+}
+
 filegroup {
     name: "bionic-gensyscalls",
     srcs: ["gensyscalls.py"]
diff --git a/libdl/Android.bp b/libdl/Android.bp
index 5c9fc9c..e98704a 100644
--- a/libdl/Android.bp
+++ b/libdl/Android.bp
@@ -1,6 +1,23 @@
 //
 // libdl
 //
+package {
+    default_applicable_licenses: ["bionic_libdl_license"],
+}
+
+// Added automatically by a large-scale-change
+// See: http://go/android-license-faq
+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"],
diff --git a/libfdtrack/Android.bp b/libfdtrack/Android.bp
index a907d9a..e45cf2b 100644
--- a/libfdtrack/Android.bp
+++ b/libfdtrack/Android.bp
@@ -1,3 +1,12 @@
+package {
+    // See: http://go/android-license-faq
+    // A large-scale-change added 'default_applicable_licenses' to import
+    // all of the 'license_kinds' from "bionic_license"
+    // to get the below license kinds:
+    //   SPDX-license-identifier-BSD
+    default_applicable_licenses: ["bionic_license"],
+}
+
 cc_library_shared {
     name: "libfdtrack",
     srcs: ["fdtrack.cpp"],
diff --git a/libm/Android.bp b/libm/Android.bp
index 723d126..ccdce01 100644
--- a/libm/Android.bp
+++ b/libm/Android.bp
@@ -1,6 +1,18 @@
 //
 // libm.so and libm.a for target.
 //
+package {
+    // See: http://go/android-license-faq
+    // A large-scale-change added 'default_applicable_licenses' to import
+    // all of the 'license_kinds' from "bionic_license"
+    // to get the below license kinds:
+    //   SPDX-license-identifier-Apache-2.0
+    //   SPDX-license-identifier-BSD
+    //   SPDX-license-identifier-MIT
+    //   legacy_unencumbered
+    default_applicable_licenses: ["bionic_license"],
+}
+
 cc_library {
     name: "libm",
     defaults: ["linux_bionic_supported"],
diff --git a/linker/Android.bp b/linker/Android.bp
index 06e6fbc..c8270a4 100644
--- a/linker/Android.bp
+++ b/linker/Android.bp
@@ -9,6 +9,36 @@
 // embedded as the entry point, and the linker is embedded as ELF sections in
 // each binary. There's a linker script that sets all of that up (generated by
 // extract_linker), and defines the extern symbols used in this file.
+package {
+    default_applicable_licenses: ["bionic_linker_license"],
+}
+
+// Added automatically by a large-scale-change that took the approach of
+// 'apply every license found to every target'. While this makes sure we respect
+// every license restriction, it may not be entirely correct.
+//
+// e.g. GPL in an MIT project might only apply to the contrib/ directory.
+//
+// Please consider splitting the single license below into multiple licenses,
+// taking care not to lose any license_kind information, and overriding the
+// default license using the 'licenses: [...]' property on targets as needed.
+//
+// For unused files, consider creating a 'fileGroup' with "//visibility:private"
+// to attach the license to, and including a comment whether the files may be
+// used in the current project.
+// See: http://go/android-license-faq
+license {
+    name: "bionic_linker_license",
+    visibility: [":__subpackages__"],
+    license_kinds: [
+        "SPDX-license-identifier-Apache-2.0",
+        "SPDX-license-identifier-BSD",
+    ],
+    license_text: [
+        "NOTICE",
+    ],
+}
+
 cc_object {
     name: "linker_wrapper",
     host_supported: true,
diff --git a/tests/Android.bp b/tests/Android.bp
index 5840018..50ee21c 100644
--- a/tests/Android.bp
+++ b/tests/Android.bp
@@ -14,6 +14,16 @@
 // limitations under the License.
 //
 
+package {
+    // See: http://go/android-license-faq
+    // A large-scale-change added 'default_applicable_licenses' to import
+    // all of the 'license_kinds' from "bionic_license"
+    // to get the below license kinds:
+    //   SPDX-license-identifier-Apache-2.0
+    //   SPDX-license-identifier-BSD
+    default_applicable_licenses: ["bionic_license"],
+}
+
 cc_defaults {
     name: "bionic_tests_defaults",
     host_supported: true,
diff --git a/tests/headers/Android.bp b/tests/headers/Android.bp
index b44c296..baa901c 100644
--- a/tests/headers/Android.bp
+++ b/tests/headers/Android.bp
@@ -1 +1,10 @@
+package {
+    // See: http://go/android-license-faq
+    // A large-scale-change added 'default_applicable_licenses' to import
+    // all of the 'license_kinds' from "bionic_license"
+    // to get the below license kinds:
+    //   SPDX-license-identifier-BSD
+    default_applicable_licenses: ["bionic_license"],
+}
+
 subdirs = ["*"]
diff --git a/tests/headers/posix/Android.bp b/tests/headers/posix/Android.bp
index 8f3a2f2..6ed6553 100644
--- a/tests/headers/posix/Android.bp
+++ b/tests/headers/posix/Android.bp
@@ -14,6 +14,15 @@
 // limitations under the License.
 //
 
+package {
+    // See: http://go/android-license-faq
+    // A large-scale-change added 'default_applicable_licenses' to import
+    // all of the 'license_kinds' from "bionic_license"
+    // to get the below license kinds:
+    //   SPDX-license-identifier-BSD
+    default_applicable_licenses: ["bionic_license"],
+}
+
 cc_library_static {
     name: "libbionic_tests_headers_posix",
     srcs: ["*.c"],
diff --git a/tests/libs/Android.bp b/tests/libs/Android.bp
index ba1c198..59ddc48 100644
--- a/tests/libs/Android.bp
+++ b/tests/libs/Android.bp
@@ -14,6 +14,16 @@
 // limitations under the License.
 //
 
+package {
+    // See: http://go/android-license-faq
+    // A large-scale-change added 'default_applicable_licenses' to import
+    // all of the 'license_kinds' from "bionic_license"
+    // to get the below license kinds:
+    //   SPDX-license-identifier-Apache-2.0
+    //   SPDX-license-identifier-BSD
+    default_applicable_licenses: ["bionic_license"],
+}
+
 cc_defaults {
     name: "bionic_testlib_defaults",
     host_supported: true,
diff --git a/tests/libs/Android.build.dlext_testzip.mk b/tests/libs/Android.build.dlext_testzip.mk
index 8775c29..dba2a09 100644
--- a/tests/libs/Android.build.dlext_testzip.mk
+++ b/tests/libs/Android.build.dlext_testzip.mk
@@ -24,6 +24,8 @@
 
 LOCAL_MODULE_CLASS := NATIVE_TESTS
 LOCAL_MODULE := libdlext_test_zip_zipaligned
+LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD
+LOCAL_LICENSE_CONDITIONS := notice
 LOCAL_MODULE_SUFFIX := .zip
 LOCAL_MODULE_PATH := $($(bionic_2nd_arch_prefix)TARGET_OUT_DATA_NATIVE_TESTS)/bionic-loader-test-libs/libdlext_test_zip
 LOCAL_2ND_ARCH_VAR_PREFIX := $(bionic_2nd_arch_prefix)
@@ -49,6 +51,8 @@
 
 LOCAL_MODULE_CLASS := NATIVE_TESTS
 LOCAL_MODULE := libdlext_test_runpath_zip_zipaligned
+LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD
+LOCAL_LICENSE_CONDITIONS := notice
 LOCAL_MODULE_SUFFIX := .zip
 LOCAL_MODULE_PATH := $($(bionic_2nd_arch_prefix)TARGET_OUT_DATA_NATIVE_TESTS)/bionic-loader-test-libs/libdlext_test_runpath_zip
 LOCAL_2ND_ARCH_VAR_PREFIX := $(bionic_2nd_arch_prefix)
@@ -94,4 +98,3 @@
 	$(hide) touch $(dir $@)/zipdir/empty_file.txt
 	$(hide) (cd $(dir $@)/zipdir && zip -qrD0 ../$(notdir $@).unaligned .)
 	$(hide) $(BIONIC_TESTS_ZIPALIGN) 4096 $@.unaligned $@
-
diff --git a/tests/make_fortify_compile_test.mk b/tests/make_fortify_compile_test.mk
index c36dfdd..5357c9e 100644
--- a/tests/make_fortify_compile_test.mk
+++ b/tests/make_fortify_compile_test.mk
@@ -9,6 +9,8 @@
 
 LOCAL_CLANG := true
 LOCAL_MODULE := bionic-compile-time-tests$(FORTIFY_LEVEL)-clang++
+LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD
+LOCAL_LICENSE_CONDITIONS := notice
 LOCAL_TIDY := false
 LOCAL_CPPFLAGS := -Wall -Wno-error
 LOCAL_CPPFLAGS += -fno-color-diagnostics -ferror-limit=10000 -Xclang -verify
diff --git a/tools/Android.bp b/tools/Android.bp
index dfeea19..4b9e320 100644
--- a/tools/Android.bp
+++ b/tools/Android.bp
@@ -1,3 +1,16 @@
+package {
+    // See: http://go/android-license-faq
+    // A large-scale-change added 'default_applicable_licenses' to import
+    // all of the 'license_kinds' from "bionic_license"
+    // to get the below license kinds:
+    //   SPDX-license-identifier-Apache-2.0
+    //   SPDX-license-identifier-BSD
+    //   SPDX-license-identifier-ISC
+    //   SPDX-license-identifier-MIT
+    //   legacy_unencumbered
+    default_applicable_licenses: ["bionic_license"],
+}
+
 subdirs = ["*"]
 
 filegroup {
diff --git a/tools/versioner/Android.bp b/tools/versioner/Android.bp
index 061709a..778dbce 100644
--- a/tools/versioner/Android.bp
+++ b/tools/versioner/Android.bp
@@ -1,3 +1,16 @@
+package {
+    // See: http://go/android-license-faq
+    // A large-scale-change added 'default_applicable_licenses' to import
+    // all of the 'license_kinds' from "bionic_license"
+    // to get the below license kinds:
+    //   SPDX-license-identifier-Apache-2.0
+    //   SPDX-license-identifier-BSD
+    //   SPDX-license-identifier-ISC
+    //   SPDX-license-identifier-MIT
+    //   legacy_unencumbered
+    default_applicable_licenses: ["bionic_license"],
+}
+
 subdirs = [
     "src",
 ]
diff --git a/tools/versioner/src/Android.bp b/tools/versioner/src/Android.bp
index a78ab5d..cc45c4a 100644
--- a/tools/versioner/src/Android.bp
+++ b/tools/versioner/src/Android.bp
@@ -1,3 +1,12 @@
+package {
+    // See: http://go/android-license-faq
+    // A large-scale-change added 'default_applicable_licenses' to import
+    // all of the 'license_kinds' from "bionic_license"
+    // to get the below license kinds:
+    //   SPDX-license-identifier-Apache-2.0
+    default_applicable_licenses: ["bionic_license"],
+}
+
 cc_binary_host {
     name: "versioner",