From c2018e2ed4ef5c8d9eeb23d563fbe5791f9992d5 Mon Sep 17 00:00:00 2001 From: Ryan Prichard Date: Fri, 2 Apr 2021 20:23:22 -0700 Subject: [PATCH] Remove libgcc toolchain libs for Android Remove Android-targeting gcc toolchain libraries -- libgcc, libgcc_stripped, libatomic, and libgcov. Also remove libunwind_llvm, which is replaced with a libunwind toolchain prebuilt. The __atomic_* library functions are now part of the compiler-rt builtins library: https://android-review.googlesource.com/c/toolchain/llvm_android/+/1625025 Bug: http://b/153025717 Test: treehugger Change-Id: I971d0a4a49f1aaeb3546e80b6d94208277a171ac --- Android.bp | 115 ------------------ apex/apex.go | 2 - .../cc_library_headers_conversion_test.go | 11 -- bp2build/cc_library_static_conversion_test.go | 11 -- cc/cc_test.go | 4 +- cc/linker.go | 3 +- cc/testing.go | 44 ------- 7 files changed, 3 insertions(+), 187 deletions(-) diff --git a/Android.bp b/Android.bp index 9d5b07def..8f7f3e225 100644 --- a/Android.bp +++ b/Android.bp @@ -46,101 +46,6 @@ cc_defaults { // C static libraries extracted from the gcc toolchain // -toolchain_library { - name: "libatomic", - defaults: ["linux_bionic_supported"], - vendor_available: true, - product_available: true, - ramdisk_available: true, - vendor_ramdisk_available: true, - recovery_available: true, - native_bridge_supported: true, - - arch: { - arm: { - src: "prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/arm-linux-androideabi/lib/libatomic.a", - }, - arm64: { - src: "prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/aarch64-linux-android/lib64/libatomic.a", - }, - x86: { - src: "prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.9/x86_64-linux-android/lib/libatomic.a", - }, - x86_64: { - src: "prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.9/x86_64-linux-android/lib64/libatomic.a", - }, - }, -} - -toolchain_library { - name: "libgcc", - defaults: ["linux_bionic_supported"], - vendor_available: true, - product_available: true, - recovery_available: true, - native_bridge_supported: true, - apex_available: [ - "//apex_available:platform", - "//apex_available:anyapex", - ], - - arch: { - arm: { - src: "prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/lib/gcc/arm-linux-androideabi/4.9.x/libgcc.a", - }, - arm64: { - src: "prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/lib/gcc/aarch64-linux-android/4.9.x/libgcc.a", - }, - x86: { - src: "prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.9/lib/gcc/x86_64-linux-android/4.9.x/32/libgcc.a", - }, - x86_64: { - src: "prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.9/lib/gcc/x86_64-linux-android/4.9.x/libgcc.a", - }, - }, -} - -toolchain_library { - name: "libgcc_stripped", - defaults: ["linux_bionic_supported"], - vendor_available: true, - product_available: true, - ramdisk_available: true, - vendor_ramdisk_available: true, - recovery_available: true, - native_bridge_supported: true, - sdk_version: "current", - - arch: { - arm: { - src: "prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/lib/gcc/arm-linux-androideabi/4.9.x/libgcc.a", - repack_objects_to_keep: [], - enabled: false, - }, - arm64: { - src: "prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/lib/gcc/aarch64-linux-android/4.9.x/libgcc.a", - repack_objects_to_keep: [ - "unwind-dw2.o", - "unwind-dw2-fde-dip.o", - ], - }, - x86: { - src: "prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.9/lib/gcc/x86_64-linux-android/4.9.x/32/libgcc.a", - repack_objects_to_keep: [ - "unwind-dw2.o", - "unwind-dw2-fde-dip.o", - ], - }, - x86_64: { - src: "prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.9/lib/gcc/x86_64-linux-android/4.9.x/libgcc.a", - repack_objects_to_keep: [ - "unwind-dw2.o", - "unwind-dw2-fde-dip.o", - ], - }, - }, -} - toolchain_library { name: "libwinpthread", host_supported: true, @@ -159,26 +64,6 @@ toolchain_library { notice: ":mingw-libwinpthread-notice", } -toolchain_library { - name: "libgcov", - defaults: ["linux_bionic_supported"], - - arch: { - arm: { - src: "prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/lib/gcc/arm-linux-androideabi/4.9.x/libgcov.a", - }, - arm64: { - src: "prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/lib/gcc/aarch64-linux-android/4.9.x/libgcov.a", - }, - x86: { - src: "prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.9/lib/gcc/x86_64-linux-android/4.9.x/32/libgcov.a", - }, - x86_64: { - src: "prebuilts/gcc/linux-x86/x86/x86_64-linux-android-4.9/lib/gcc/x86_64-linux-android/4.9.x/libgcov.a", - }, - }, -} - kernel_headers { name: "device_kernel_headers", vendor: true, diff --git a/apex/apex.go b/apex/apex.go index 9d06e1c8f..c9e3f99cf 100644 --- a/apex/apex.go +++ b/apex/apex.go @@ -2925,9 +2925,7 @@ func makeApexAvailableBaseline() map[string][]string { "com.google.android.material_material", "com.google.android.material_material-nodeps", - "libatomic", "libclang_rt", - "libgcc_stripped", "libprofile-clang-extras", "libprofile-clang-extras_ndk", "libprofile-extras", diff --git a/bp2build/cc_library_headers_conversion_test.go b/bp2build/cc_library_headers_conversion_test.go index 049f84a02..f12862ce0 100644 --- a/bp2build/cc_library_headers_conversion_test.go +++ b/bp2build/cc_library_headers_conversion_test.go @@ -37,17 +37,6 @@ toolchain_library { recovery_available: true, native_bridge_supported: true, src: "", -} - -toolchain_library { - name: "libatomic", - defaults: ["linux_bionic_supported"], - vendor_available: true, - vendor_ramdisk_available: true, - product_available: true, - recovery_available: true, - native_bridge_supported: true, - src: "", }` ) diff --git a/bp2build/cc_library_static_conversion_test.go b/bp2build/cc_library_static_conversion_test.go index 7bf5fd3e4..467b0b286 100644 --- a/bp2build/cc_library_static_conversion_test.go +++ b/bp2build/cc_library_static_conversion_test.go @@ -37,17 +37,6 @@ toolchain_library { recovery_available: true, native_bridge_supported: true, src: "", -} - -toolchain_library { - name: "libatomic", - defaults: ["linux_bionic_supported"], - vendor_available: true, - vendor_ramdisk_available: true, - product_available: true, - recovery_available: true, - native_bridge_supported: true, - src: "", }` ) diff --git a/cc/cc_test.go b/cc/cc_test.go index 76e75daff..9fc1f35d5 100644 --- a/cc/cc_test.go +++ b/cc/cc_test.go @@ -2912,13 +2912,13 @@ func TestStaticLibDepExport(t *testing.T) { // Check the shared version of lib2. variant := "android_arm64_armv8-a_shared" module := ctx.ModuleForTests("lib2", variant).Module().(*Module) - checkStaticLibs(t, []string{"lib1", "libc++demangle", "libclang_rt.builtins-aarch64-android", "libatomic"}, module) + checkStaticLibs(t, []string{"lib1", "libc++demangle", "libclang_rt.builtins-aarch64-android"}, module) // Check the static version of lib2. variant = "android_arm64_armv8-a_static" module = ctx.ModuleForTests("lib2", variant).Module().(*Module) // libc++_static is linked additionally. - checkStaticLibs(t, []string{"lib1", "libc++_static", "libc++demangle", "libclang_rt.builtins-aarch64-android", "libatomic"}, module) + checkStaticLibs(t, []string{"lib1", "libc++_static", "libc++demangle", "libclang_rt.builtins-aarch64-android"}, module) } var compilerFlagsTestCases = []struct { diff --git a/cc/linker.go b/cc/linker.go index 21281d2ce..ae333563b 100644 --- a/cc/linker.go +++ b/cc/linker.go @@ -321,10 +321,9 @@ func (linker *baseLinker) linkerDeps(ctx DepsContext, deps Deps) Deps { } if ctx.toolchain().Bionic() { - // libclang_rt.builtins and libatomic have to be last on the command line + // libclang_rt.builtins has to be last on the command line if !Bool(linker.Properties.No_libcrt) { deps.LateStaticLibs = append(deps.LateStaticLibs, config.BuiltinsRuntimeLibrary(ctx.toolchain())) - deps.LateStaticLibs = append(deps.LateStaticLibs, "libatomic") } deps.SystemSharedLibs = linker.Properties.System_shared_libs diff --git a/cc/testing.go b/cc/testing.go index 6e356557c..ff32bfffd 100644 --- a/cc/testing.go +++ b/cc/testing.go @@ -62,17 +62,6 @@ func GatherRequiredDepsForTest(oses ...android.OsType) string { func commonDefaultModules() string { return ` - toolchain_library { - name: "libatomic", - defaults: ["linux_bionic_supported"], - vendor_available: true, - vendor_ramdisk_available: true, - product_available: true, - recovery_available: true, - native_bridge_supported: true, - src: "", - } - toolchain_library { name: "libcompiler_rt-extras", vendor_available: true, @@ -200,29 +189,6 @@ func commonDefaultModules() string { srcs: [""], } - toolchain_library { - name: "libgcc", - defaults: ["linux_bionic_supported"], - vendor_available: true, - product_available: true, - recovery_available: true, - src: "", - apex_available: [ - "//apex_available:platform", - "//apex_available:anyapex", - ], - } - - toolchain_library { - name: "libgcc_stripped", - defaults: ["linux_bionic_supported"], - vendor_available: true, - product_available: true, - recovery_available: true, - sdk_version: "current", - src: "", - } - cc_library { name: "libc", defaults: ["linux_bionic_supported"], @@ -398,16 +364,6 @@ func commonDefaultModules() string { "//apex_available:anyapex", ], } - cc_library { - name: "libunwind_llvm", - no_libcrt: true, - nocrt: true, - system_shared_libs: [], - stl: "none", - vendor_available: true, - product_available: true, - recovery_available: true, - } cc_defaults { name: "crt_defaults",