Support grouping static libraries
LLVM has complicated static library layering that sometimes changes.
The make solution was to list all the static libraries twice, but
Soong dedups the list. Add a group_static_libs flag to allow
surrounding the static libs with -Wl,--start-group and
-Wl,--end-group.
Test: mmma -j external/llvm
Change-Id: Ic08a183d7def9c9249d4a3014760759f16b68d04
diff --git a/cc/builder.go b/cc/builder.go
index 730c9ca..a568a29 100644
--- a/cc/builder.go
+++ b/cc/builder.go
@@ -187,6 +187,8 @@
clang bool
tidy bool
+ groupStaticLibs bool
+
stripKeepSymbols bool
stripKeepMiniDebugInfo bool
stripAddGnuDebuglink bool
@@ -439,7 +441,13 @@
}
}
+ if flags.groupStaticLibs && len(staticLibs) > 0 {
+ libFlagsList = append(libFlagsList, "-Wl,--start-group")
+ }
libFlagsList = append(libFlagsList, staticLibs.Strings()...)
+ if flags.groupStaticLibs && len(staticLibs) > 0 {
+ libFlagsList = append(libFlagsList, "-Wl,--end-group")
+ }
if groupLate && !ctx.Darwin() && len(lateStaticLibs) > 0 {
libFlagsList = append(libFlagsList, "-Wl,--start-group")