Revert "Use soong_cc_prebuilt.mk instead of prebuilt.mk for Soong cc modules"
This reverts commit e2874cd99d574de49d34f8987a0af64331c7ad6e.
Reason for revert: broke mac builds
Bug: 113936524
Change-Id: Id0311d6b202b18e80953da632133548d56ed851a
diff --git a/cc/androidmk.go b/cc/androidmk.go
index bb82529..9258bd4 100644
--- a/cc/androidmk.go
+++ b/cc/androidmk.go
@@ -60,17 +60,24 @@
ret := android.AndroidMkData{
OutputFile: c.outputFile,
Required: c.Properties.AndroidMkRuntimeLibs,
- Include: "$(BUILD_SYSTEM)/soong_cc_prebuilt.mk",
Extra: []android.AndroidMkExtraFunc{
func(w io.Writer, outputFile android.Path) {
if len(c.Properties.Logtags) > 0 {
fmt.Fprintln(w, "LOCAL_LOGTAGS_FILES :=", strings.Join(c.Properties.Logtags, " "))
}
+ fmt.Fprintln(w, "LOCAL_SANITIZE := never")
if len(c.Properties.AndroidMkSharedLibs) > 0 {
fmt.Fprintln(w, "LOCAL_SHARED_LIBRARIES := "+strings.Join(c.Properties.AndroidMkSharedLibs, " "))
}
- fmt.Fprintln(w, "LOCAL_SOONG_LINK_TYPE :=", c.getMakeLinkType())
+ if c.Target().Os == android.Android &&
+ String(c.Properties.Sdk_version) != "" && !c.useVndk() && !c.inRecovery() {
+ fmt.Fprintln(w, "LOCAL_SDK_VERSION := "+String(c.Properties.Sdk_version))
+ fmt.Fprintln(w, "LOCAL_NDK_STL_VARIANT := none")
+ } else {
+ // These are already included in LOCAL_SHARED_LIBRARIES
+ fmt.Fprintln(w, "LOCAL_CXX_STL := none")
+ }
if c.useVndk() {
fmt.Fprintln(w, "LOCAL_USE_VNDK := true")
}
@@ -133,13 +140,44 @@
if library.static() {
ret.Class = "STATIC_LIBRARIES"
} else if library.shared() {
+ ctx.subAndroidMk(ret, &library.stripper)
+
ret.Class = "SHARED_LIBRARIES"
- ret.Extra = append(ret.Extra, func(w io.Writer, outputFile android.Path) {
- fmt.Fprintln(w, "LOCAL_SOONG_TOC :=", library.toc().String())
- fmt.Fprintln(w, "LOCAL_SOONG_UNSTRIPPED_BINARY :=", library.unstrippedOutputFile.String())
- })
} else if library.header() {
- ret.Class = "HEADER_LIBRARIES"
+ ret.Custom = func(w io.Writer, name, prefix, moduleDir string, data android.AndroidMkData) {
+ fmt.Fprintln(w, "\ninclude $(CLEAR_VARS)")
+ fmt.Fprintln(w, "LOCAL_PATH :=", moduleDir)
+ fmt.Fprintln(w, "LOCAL_MODULE :=", name+data.SubName)
+
+ archStr := ctx.Target().Arch.ArchType.String()
+ var host bool
+ switch ctx.Target().Os.Class {
+ case android.Host:
+ fmt.Fprintln(w, "LOCAL_MODULE_HOST_ARCH := ", archStr)
+ host = true
+ case android.HostCross:
+ fmt.Fprintln(w, "LOCAL_MODULE_HOST_CROSS_ARCH := ", archStr)
+ host = true
+ case android.Device:
+ fmt.Fprintln(w, "LOCAL_MODULE_TARGET_ARCH := ", archStr)
+ }
+
+ if host {
+ makeOs := ctx.Target().Os.String()
+ if ctx.Target().Os == android.Linux || ctx.Target().Os == android.LinuxBionic {
+ makeOs = "linux"
+ }
+ fmt.Fprintln(w, "LOCAL_MODULE_HOST_OS :=", makeOs)
+ fmt.Fprintln(w, "LOCAL_IS_HOST_MODULE := true")
+ } else if ctx.useVndk() {
+ fmt.Fprintln(w, "LOCAL_USE_VNDK := true")
+ }
+
+ library.androidMkWriteExportedFlags(w)
+ fmt.Fprintln(w, "include $(BUILD_HEADER_LIBRARY)")
+ }
+
+ return
}
ret.Extra = append(ret.Extra, func(w io.Writer, outputFile android.Path) {
@@ -157,6 +195,8 @@
fmt.Fprintln(w, "LOCAL_BUILT_MODULE_STEM := $(LOCAL_MODULE)"+ext)
+ fmt.Fprintln(w, "LOCAL_SYSTEM_SHARED_LIBRARIES :=")
+
if library.coverageOutputFile.Valid() {
fmt.Fprintln(w, "LOCAL_PREBUILT_COVERAGE_ARCHIVE :=", library.coverageOutputFile.String())
}
@@ -164,10 +204,6 @@
if library.shared() {
ctx.subAndroidMk(ret, library.baseInstaller)
- } else {
- ret.Extra = append(ret.Extra, func(w io.Writer, outputFile android.Path) {
- fmt.Fprintln(w, "LOCAL_UNINSTALLABLE_MODULE := true")
- })
}
}
@@ -182,10 +218,15 @@
func (binary *binaryDecorator) AndroidMk(ctx AndroidMkContext, ret *android.AndroidMkData) {
ctx.subAndroidMk(ret, binary.baseInstaller)
+ ctx.subAndroidMk(ret, &binary.stripper)
ret.Class = "EXECUTABLES"
ret.Extra = append(ret.Extra, func(w io.Writer, outputFile android.Path) {
- fmt.Fprintln(w, "LOCAL_SOONG_UNSTRIPPED_BINARY :=", binary.unstrippedOutputFile.String())
+ fmt.Fprintln(w, "LOCAL_SYSTEM_SHARED_LIBRARIES :=")
+ if Bool(binary.Properties.Static_executable) {
+ fmt.Fprintln(w, "LOCAL_FORCE_STATIC_EXECUTABLE := true")
+ }
+
if len(binary.symlinks) > 0 {
fmt.Fprintln(w, "LOCAL_MODULE_SYMLINKS := "+strings.Join(binary.symlinks, " "))
}
@@ -246,6 +287,25 @@
ret.Extra = append(ret.Extra, func(w io.Writer, outputFile android.Path) {
_, suffix, _ := splitFileExt(outputFile.Base())
fmt.Fprintln(w, "LOCAL_MODULE_SUFFIX := "+suffix)
+ fmt.Fprintln(w, "LOCAL_SYSTEM_SHARED_LIBRARIES :=")
+ })
+}
+
+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) {
+ if Bool(stripper.StripProperties.Strip.None) {
+
+ fmt.Fprintln(w, "LOCAL_STRIP_MODULE := false")
+ } else if Bool(stripper.StripProperties.Strip.Keep_symbols) {
+ fmt.Fprintln(w, "LOCAL_STRIP_MODULE := keep_symbols")
+ } else {
+ fmt.Fprintln(w, "LOCAL_STRIP_MODULE := mini-debug-info")
+ }
})
}
@@ -273,6 +333,7 @@
ret.Extra = append(ret.Extra, func(w io.Writer, outputFile android.Path) {
path, file := filepath.Split(c.installPath.String())
stem, suffix, _ := splitFileExt(file)
+ fmt.Fprintln(w, "LOCAL_SYSTEM_SHARED_LIBRARIES :=")
fmt.Fprintln(w, "LOCAL_MODULE_SUFFIX := "+suffix)
fmt.Fprintln(w, "LOCAL_MODULE_PATH := "+path)
fmt.Fprintln(w, "LOCAL_MODULE_STEM := "+stem)
@@ -294,9 +355,11 @@
_, _, ext := splitFileExt(outputFile.Base())
fmt.Fprintln(w, "LOCAL_BUILT_MODULE_STEM := $(LOCAL_MODULE)"+ext)
+ fmt.Fprintln(w, "LOCAL_STRIP_MODULE := false")
+ fmt.Fprintln(w, "LOCAL_SYSTEM_SHARED_LIBRARIES :=")
fmt.Fprintln(w, "LOCAL_UNINSTALLABLE_MODULE := true")
fmt.Fprintln(w, "LOCAL_NO_NOTICE_FILE := true")
- fmt.Fprintln(w, "LOCAL_SOONG_TOC :=", c.toc().String())
+ fmt.Fprintln(w, "LOCAL_USE_VNDK := true")
})
}
@@ -311,6 +374,9 @@
path := c.path.RelPathString()
dir, file := filepath.Split(path)
stem, suffix, ext := splitFileExt(file)
+ fmt.Fprintln(w, "LOCAL_STRIP_MODULE := false")
+ fmt.Fprintln(w, "LOCAL_SYSTEM_SHARED_LIBRARIES :=")
+ fmt.Fprintln(w, "LOCAL_USE_VNDK := true")
fmt.Fprintln(w, "LOCAL_BUILT_MODULE_STEM := $(LOCAL_MODULE)"+ext)
fmt.Fprintln(w, "LOCAL_MODULE_SUFFIX := "+suffix)
fmt.Fprintln(w, "LOCAL_MODULE_PATH := $(OUT_DIR)/"+filepath.Clean(dir))
@@ -338,6 +404,8 @@
_, _, ext := splitFileExt(outputFile.Base())
fmt.Fprintln(w, "LOCAL_BUILT_MODULE_STEM := $(LOCAL_MODULE)"+ext)
+ fmt.Fprintln(w, "LOCAL_STRIP_MODULE := false")
+ fmt.Fprintln(w, "LOCAL_SYSTEM_SHARED_LIBRARIES :=")
fmt.Fprintln(w, "LOCAL_UNINSTALLABLE_MODULE := true")
fmt.Fprintln(w, "LOCAL_NO_NOTICE_FILE := true")
})