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
This commit is contained in:
Ryan Prichard 2021-04-02 20:23:22 -07:00
parent 252831b03a
commit c2018e2ed4
7 changed files with 3 additions and 187 deletions

View File

@ -46,101 +46,6 @@ cc_defaults {
// C static libraries extracted from the gcc toolchain // 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 { toolchain_library {
name: "libwinpthread", name: "libwinpthread",
host_supported: true, host_supported: true,
@ -159,26 +64,6 @@ toolchain_library {
notice: ":mingw-libwinpthread-notice", 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 { kernel_headers {
name: "device_kernel_headers", name: "device_kernel_headers",
vendor: true, vendor: true,

View File

@ -2925,9 +2925,7 @@ func makeApexAvailableBaseline() map[string][]string {
"com.google.android.material_material", "com.google.android.material_material",
"com.google.android.material_material-nodeps", "com.google.android.material_material-nodeps",
"libatomic",
"libclang_rt", "libclang_rt",
"libgcc_stripped",
"libprofile-clang-extras", "libprofile-clang-extras",
"libprofile-clang-extras_ndk", "libprofile-clang-extras_ndk",
"libprofile-extras", "libprofile-extras",

View File

@ -37,17 +37,6 @@ toolchain_library {
recovery_available: true, recovery_available: true,
native_bridge_supported: true, native_bridge_supported: true,
src: "", 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: "",
}` }`
) )

View File

@ -37,17 +37,6 @@ toolchain_library {
recovery_available: true, recovery_available: true,
native_bridge_supported: true, native_bridge_supported: true,
src: "", 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: "",
}` }`
) )

View File

@ -2912,13 +2912,13 @@ func TestStaticLibDepExport(t *testing.T) {
// Check the shared version of lib2. // Check the shared version of lib2.
variant := "android_arm64_armv8-a_shared" variant := "android_arm64_armv8-a_shared"
module := ctx.ModuleForTests("lib2", variant).Module().(*Module) 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. // Check the static version of lib2.
variant = "android_arm64_armv8-a_static" variant = "android_arm64_armv8-a_static"
module = ctx.ModuleForTests("lib2", variant).Module().(*Module) module = ctx.ModuleForTests("lib2", variant).Module().(*Module)
// libc++_static is linked additionally. // 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 { var compilerFlagsTestCases = []struct {

View File

@ -321,10 +321,9 @@ func (linker *baseLinker) linkerDeps(ctx DepsContext, deps Deps) Deps {
} }
if ctx.toolchain().Bionic() { 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) { if !Bool(linker.Properties.No_libcrt) {
deps.LateStaticLibs = append(deps.LateStaticLibs, config.BuiltinsRuntimeLibrary(ctx.toolchain())) deps.LateStaticLibs = append(deps.LateStaticLibs, config.BuiltinsRuntimeLibrary(ctx.toolchain()))
deps.LateStaticLibs = append(deps.LateStaticLibs, "libatomic")
} }
deps.SystemSharedLibs = linker.Properties.System_shared_libs deps.SystemSharedLibs = linker.Properties.System_shared_libs

View File

@ -62,17 +62,6 @@ func GatherRequiredDepsForTest(oses ...android.OsType) string {
func commonDefaultModules() string { func commonDefaultModules() string {
return ` 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 { toolchain_library {
name: "libcompiler_rt-extras", name: "libcompiler_rt-extras",
vendor_available: true, vendor_available: true,
@ -200,29 +189,6 @@ func commonDefaultModules() string {
srcs: [""], 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 { cc_library {
name: "libc", name: "libc",
defaults: ["linux_bionic_supported"], defaults: ["linux_bionic_supported"],
@ -398,16 +364,6 @@ func commonDefaultModules() string {
"//apex_available:anyapex", "//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 { cc_defaults {
name: "crt_defaults", name: "crt_defaults",