aboutsummaryrefslogtreecommitdiffstats
path: root/cc
diff options
context:
space:
mode:
authorDan Willemsen <dwillemsen@google.com>2016-07-13 16:50:22 -0700
committerDan Willemsen <dwillemsen@google.com>2016-07-13 17:33:49 -0700
commitf2c27d7370096e8202d257a9525dce1f89f380b8 (patch)
treea87f6caf224e4c135710e2120a507535819e2af6 /cc
parente6c7f1836499a1544c94964e0b87d2dfdb3b92d4 (diff)
downloadbuild_soong-f2c27d7370096e8202d257a9525dce1f89f380b8.tar.gz
build_soong-f2c27d7370096e8202d257a9525dce1f89f380b8.tar.bz2
build_soong-f2c27d7370096e8202d257a9525dce1f89f380b8.zip
Export the default LOCAL_STRIP_MODULE value
In make, BUILD_PREBUILT and BUILD_SHARED_LIBRARY/BUILD_EXECUTABLE use different defaults for LOCAL_STRIP_MODULE. Explicitly use the BUILD_SHARED_LIBRARY/BUILD_EXECUTABLE default so that we'll strip binaries the same way when converting from Make to Soong. BUILD_SHARED_LIBRARY/BUILD_EXECUTABLE uses the default set in dynamic_binary.mk: mini-debug-info. BUILD_PREBUILT (SHARED_LIBRARIES) uses no_debuglink BUILD_PREBUILT (EXECUTABLES) doesn't strip by default None of the above support stripping host modules. Change-Id: I73a6f7bd7d2ed2033936579c78ae4980386dd4a2
Diffstat (limited to 'cc')
-rw-r--r--cc/androidmk.go41
1 files changed, 26 insertions, 15 deletions
diff --git a/cc/androidmk.go b/cc/androidmk.go
index 8e66c33f..24d771a2 100644
--- a/cc/androidmk.go
+++ b/cc/androidmk.go
@@ -23,6 +23,10 @@ import (
"android/soong/android"
)
+type AndroidMkContext interface {
+ Target() android.Target
+}
+
func (c *Module) AndroidMk() (ret android.AndroidMkData, err error) {
if c.Properties.HideFromMake {
ret.Disabled = true
@@ -48,9 +52,9 @@ func (c *Module) AndroidMk() (ret android.AndroidMkData, err error) {
callSubAndroidMk := func(obj interface{}) {
if obj != nil {
if androidmk, ok := obj.(interface {
- AndroidMk(*android.AndroidMkData)
+ AndroidMk(AndroidMkContext, *android.AndroidMkData)
}); ok {
- androidmk.AndroidMk(&ret)
+ androidmk.AndroidMk(c, &ret)
}
}
}
@@ -68,7 +72,7 @@ func (c *Module) AndroidMk() (ret android.AndroidMkData, err error) {
return ret, nil
}
-func (library *baseLinker) AndroidMk(ret *android.AndroidMkData) {
+func (library *baseLinker) AndroidMk(ctx AndroidMkContext, ret *android.AndroidMkData) {
if library.static() {
ret.Class = "STATIC_LIBRARIES"
} else {
@@ -76,11 +80,11 @@ func (library *baseLinker) AndroidMk(ret *android.AndroidMkData) {
}
}
-func (library *libraryLinker) AndroidMk(ret *android.AndroidMkData) {
- library.baseLinker.AndroidMk(ret)
+func (library *libraryLinker) AndroidMk(ctx AndroidMkContext, ret *android.AndroidMkData) {
+ library.baseLinker.AndroidMk(ctx, ret)
if !library.static() {
- library.stripper.AndroidMk(ret)
+ library.stripper.AndroidMk(ctx, ret)
}
ret.Extra = append(ret.Extra, func(w io.Writer, outputFile android.Path) error {
@@ -102,7 +106,7 @@ func (library *libraryLinker) AndroidMk(ret *android.AndroidMkData) {
})
}
-func (object *objectLinker) AndroidMk(ret *android.AndroidMkData) {
+func (object *objectLinker) AndroidMk(ctx AndroidMkContext, ret *android.AndroidMkData) {
ret.Custom = func(w io.Writer, name, prefix string) error {
out := ret.OutputFile.Path()
@@ -113,8 +117,8 @@ func (object *objectLinker) AndroidMk(ret *android.AndroidMkData) {
}
}
-func (binary *binaryLinker) AndroidMk(ret *android.AndroidMkData) {
- binary.stripper.AndroidMk(ret)
+func (binary *binaryLinker) AndroidMk(ctx AndroidMkContext, ret *android.AndroidMkData) {
+ binary.stripper.AndroidMk(ctx, ret)
ret.Class = "EXECUTABLES"
ret.Extra = append(ret.Extra, func(w io.Writer, outputFile android.Path) error {
@@ -124,15 +128,15 @@ func (binary *binaryLinker) AndroidMk(ret *android.AndroidMkData) {
})
}
-func (test *testBinaryLinker) AndroidMk(ret *android.AndroidMkData) {
- test.binaryLinker.AndroidMk(ret)
+func (test *testBinaryLinker) AndroidMk(ctx AndroidMkContext, ret *android.AndroidMkData) {
+ test.binaryLinker.AndroidMk(ctx, ret)
if Bool(test.testLinker.Properties.Test_per_src) {
ret.SubName = test.binaryLinker.Properties.Stem
}
}
-func (library *toolchainLibraryLinker) AndroidMk(ret *android.AndroidMkData) {
- library.baseLinker.AndroidMk(ret)
+func (library *toolchainLibraryLinker) AndroidMk(ctx AndroidMkContext, ret *android.AndroidMkData) {
+ library.baseLinker.AndroidMk(ctx, ret)
ret.Extra = append(ret.Extra, func(w io.Writer, outputFile android.Path) error {
fmt.Fprintln(w, "LOCAL_MODULE_SUFFIX := "+outputFile.Ext())
@@ -143,19 +147,26 @@ func (library *toolchainLibraryLinker) AndroidMk(ret *android.AndroidMkData) {
})
}
-func (stripper *stripper) AndroidMk(ret *android.AndroidMkData) {
+func (stripper *stripper) AndroidMk(ctx AndroidMkContext, ret *android.AndroidMkData) {
+ // Make only supports stripping target modules
+ if ctx.Target().Os != android.Android {
+ return
+ }
+
ret.Extra = append(ret.Extra, func(w io.Writer, outputFile android.Path) error {
if stripper.StripProperties.Strip.None {
fmt.Fprintln(w, "LOCAL_STRIP_MODULE := false")
} else if stripper.StripProperties.Strip.Keep_symbols {
fmt.Fprintln(w, "LOCAL_STRIP_MODULE := keep_symbols")
+ } else {
+ fmt.Fprintln(w, "LOCAL_STRIP_MODULE := mini-debug-info")
}
return nil
})
}
-func (installer *baseInstaller) AndroidMk(ret *android.AndroidMkData) {
+func (installer *baseInstaller) AndroidMk(ctx AndroidMkContext, ret *android.AndroidMkData) {
ret.Extra = append(ret.Extra, func(w io.Writer, outputFile android.Path) error {
path := installer.path.RelPathString()
dir, file := filepath.Split(path)