Add an option for libraries to opt out of libcrt
Test: m checkbuild
Bug: 29275768
Change-Id: I9c0999ddc15ad152c47089509f91dc1dc901f7e4
diff --git a/cc/linker.go b/cc/linker.go
index 6d4d07b..2e1828a 100644
--- a/cc/linker.go
+++ b/cc/linker.go
@@ -59,6 +59,9 @@
// don't link in libgcc.a
No_libgcc *bool
+ // don't link in libclang_rt.builtins-*.a
+ No_libcrt *bool
+
// Use clang lld instead of gnu ld.
Use_clang_lld *bool `android:"arch_variant"`
@@ -216,10 +219,14 @@
}
if ctx.toolchain().Bionic() {
- // libclang_rt.builtins, libgcc and libatomic have to be last on the command line
- // TODO: Also enable for libc and libm
- if ctx.ModuleName() != "libc" && ctx.ModuleName() != "libm" {
- deps.LateStaticLibs = append(deps.LateStaticLibs, config.BuiltinsRuntimeLibrary(ctx.toolchain()))
+ // Allow individual projects to opt out of libcrt,builtins
+ // b/117565638
+ if !Bool(linker.Properties.No_libcrt) {
+ // libclang_rt.builtins, libgcc and libatomic have to be last on the command line
+ // TODO: Also enable for libc and libm
+ if ctx.ModuleName() != "libc" && ctx.ModuleName() != "libm" {
+ deps.LateStaticLibs = append(deps.LateStaticLibs, config.BuiltinsRuntimeLibrary(ctx.toolchain()))
+ }
}
deps.LateStaticLibs = append(deps.LateStaticLibs, "libatomic")