diff options
author | 2021-05-05 16:07:27 +0000 | |
---|---|---|
committer | 2021-05-10 08:12:24 +0000 | |
commit | 053e1383c721b0a1c4f87b2d391ab392c64caf84 (patch) | |
tree | d6698eaf3f64440b47c06e5d6f670be06cfcc80e /build/codegen.go | |
parent | bcec38f7b7dc92d89ce9d49b8c1ba9afe87dab6b (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.go | 17 |
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 } |