summaryrefslogtreecommitdiff
path: root/build/codegen.go
diff options
context:
space:
mode:
author Vladimir Marko <vmarko@google.com> 2021-05-05 16:07:27 +0000
committer Vladimir Marko <vmarko@google.com> 2021-05-10 08:12:24 +0000
commit053e1383c721b0a1c4f87b2d391ab392c64caf84 (patch)
treed6698eaf3f64440b47c06e5d6f670be06cfcc80e /build/codegen.go
parentbcec38f7b7dc92d89ce9d49b8c1ba9afe87dab6b (diff)
Link libvixl statically.
Instead of including shared library libvixl.so in the ART Module, link libvixl statically to all binaries that use it, namely libart-compiler.so and libart-disassembler.so which shall increase in size with the additional libvixl code. The ART Module size with default libvixl symbol visibility: - before: 88460730B - after: 86973943B (-1.42MiB) With hidden libvixl symbol visibility: - before: 88337851B - after: 84962808B (-3.22MiB) (This is with master-art where we do not have a boot profile and therefore compile more code in boot image.) The change from default to hidden visibility is done in https://android-review.googlesource.com/1697237 . Test: m test-art-host-gtest Test: testrunner.py --host --optimizing Test: run-gtests.sh Test: testrunner.py --target --optimizing Bug: 186902856 Change-Id: I040b0115b94b8690ee7be53e3ded8610d9f13e99
Diffstat (limited to 'build/codegen.go')
-rw-r--r--build/codegen.go17
1 files changed, 17 insertions, 0 deletions
diff --git a/build/codegen.go b/build/codegen.go
index bc7dc4253d..96dd223356 100644
--- a/build/codegen.go
+++ b/build/codegen.go
@@ -102,6 +102,13 @@ func codegen(ctx android.LoadHookContext, c *codegenProperties, t moduleType) {
}
}
+ type libraryProps struct {
+ Target struct {
+ Android *CodegenLibraryArchProperties
+ Host *CodegenLibraryArchProperties
+ }
+ }
+
type sharedLibraryProps struct {
Target struct {
Android *CodegenLibraryArchSharedProperties
@@ -119,20 +126,24 @@ func codegen(ctx android.LoadHookContext, c *codegenProperties, t moduleType) {
arch := getCodegenArchProperties(archName)
cp := &commonProps{}
+ lp := &libraryProps{}
sharedLP := &sharedLibraryProps{}
staticLP := &staticLibraryProps{}
if host {
cp.Target.Host = &arch.CodegenCommonArchProperties
+ lp.Target.Host = &arch.CodegenLibraryArchProperties
sharedLP.Target.Host = &arch.CodegenLibraryArchSharedProperties
staticLP.Target.Host = &arch.CodegenLibraryArchStaticProperties
} else {
cp.Target.Android = &arch.CodegenCommonArchProperties
+ lp.Target.Android = &arch.CodegenLibraryArchProperties
sharedLP.Target.Android = &arch.CodegenLibraryArchSharedProperties
staticLP.Target.Android = &arch.CodegenLibraryArchStaticProperties
}
ctx.AppendProperties(cp)
if t.library {
+ ctx.AppendProperties(lp)
if t.static {
ctx.AppendProperties(staticLP)
}
@@ -167,6 +178,11 @@ type CodegenCommonArchProperties struct {
Cppflags []string
}
+type CodegenLibraryArchProperties struct {
+ Static_libs []string
+ Export_static_lib_headers []string
+}
+
type CodegenLibraryArchStaticProperties struct {
Static struct {
Whole_static_libs []string
@@ -182,6 +198,7 @@ type CodegenLibraryArchSharedProperties struct {
type codegenArchProperties struct {
CodegenSourceArchProperties
CodegenCommonArchProperties
+ CodegenLibraryArchProperties
CodegenLibraryArchStaticProperties
CodegenLibraryArchSharedProperties
}