summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cc/androidmk.go1
-rw-r--r--java/androidmk.go2
-rw-r--r--rust/bindgen.go8
-rw-r--r--rust/config/arm64_device.go10
-rw-r--r--rust/config/arm_device.go8
-rw-r--r--rust/config/global.go16
-rw-r--r--rust/config/x86_64_device.go3
-rw-r--r--rust/config/x86_darwin_host.go3
-rw-r--r--rust/config/x86_device.go3
-rw-r--r--rust/config/x86_linux_host.go9
-rw-r--r--rust/rust.go3
11 files changed, 34 insertions, 32 deletions
diff --git a/cc/androidmk.go b/cc/androidmk.go
index c899cdd72..380b4e92f 100644
--- a/cc/androidmk.go
+++ b/cc/androidmk.go
@@ -377,6 +377,7 @@ func (test *testBinary) AndroidMkEntries(ctx AndroidMkContext, entries *android.
if !BoolDefault(test.Properties.Auto_gen_config, true) {
entries.SetBool("LOCAL_DISABLE_AUTO_GENERATE_TEST_CONFIG", true)
}
+ entries.AddStrings("LOCAL_TEST_MAINLINE_MODULES", test.Properties.Test_mainline_modules...)
})
androidMkWriteTestData(test.data, ctx, entries)
diff --git a/java/androidmk.go b/java/androidmk.go
index 2c02e5f38..a503d2a5f 100644
--- a/java/androidmk.go
+++ b/java/androidmk.go
@@ -166,6 +166,7 @@ func (j *Test) AndroidMkEntries() []android.AndroidMkEntries {
if !BoolDefault(j.testProperties.Auto_gen_config, true) {
entries.SetString("LOCAL_DISABLE_AUTO_GENERATE_TEST_CONFIG", "true")
}
+ entries.AddStrings("LOCAL_TEST_MAINLINE_MODULES", j.testProperties.Test_mainline_modules...)
})
return entriesList
@@ -440,6 +441,7 @@ func (a *AndroidTest) AndroidMkEntries() []android.AndroidMkEntries {
}
androidMkWriteExtraTestConfigs(a.extraTestConfigs, entries)
androidMkWriteTestData(a.data, entries)
+ entries.AddStrings("LOCAL_TEST_MAINLINE_MODULES", a.testProperties.Test_mainline_modules...)
})
return entriesList
diff --git a/rust/bindgen.go b/rust/bindgen.go
index 03363085b..cafdb8bfa 100644
--- a/rust/bindgen.go
+++ b/rust/bindgen.go
@@ -27,15 +27,14 @@ var (
defaultBindgenFlags = []string{""}
// bindgen should specify its own Clang revision so updating Clang isn't potentially blocked on bindgen failures.
- bindgenClangVersion = "clang-r383902c"
- bindgenLibClangSoGit = "11git"
+ bindgenClangVersion = "clang-r383902c"
//TODO(b/160803703) Use a prebuilt bindgen instead of the built bindgen.
_ = pctx.SourcePathVariable("bindgenCmd", "out/host/${config.HostPrebuiltTag}/bin/bindgen")
_ = pctx.SourcePathVariable("bindgenClang",
"${cc_config.ClangBase}/${config.HostPrebuiltTag}/"+bindgenClangVersion+"/bin/clang")
_ = pctx.SourcePathVariable("bindgenLibClang",
- "${cc_config.ClangBase}/${config.HostPrebuiltTag}/"+bindgenClangVersion+"/lib64/libclang.so."+bindgenLibClangSoGit)
+ "${cc_config.ClangBase}/${config.HostPrebuiltTag}/"+bindgenClangVersion+"/lib64/")
//TODO(ivanlozano) Switch this to RuleBuilder
bindgen = pctx.AndroidStaticRule("bindgen",
@@ -97,8 +96,7 @@ func (b *bindgenDecorator) GenerateSource(ctx ModuleContext, deps PathDeps) andr
var cflags []string
var implicits android.Paths
- implicits = append(implicits, deps.depIncludePaths...)
- implicits = append(implicits, deps.depSystemIncludePaths...)
+ implicits = append(implicits, deps.depGeneratedHeaders...)
// Default clang flags
cflags = append(cflags, "${cc_config.CommonClangGlobalCflags}")
diff --git a/rust/config/arm64_device.go b/rust/config/arm64_device.go
index 180fd8ba0..a0c496d4a 100644
--- a/rust/config/arm64_device.go
+++ b/rust/config/arm64_device.go
@@ -23,12 +23,7 @@ import (
var (
Arm64RustFlags = []string{}
Arm64ArchFeatureRustFlags = map[string][]string{}
- Arm64LinkFlags = []string{
- "-Wl,--icf=safe",
- "-Wl,-z,max-page-size=4096",
-
- "-Wl,-z,separate-code",
- }
+ Arm64LinkFlags = []string{}
Arm64ArchVariantRustFlags = map[string][]string{
"armv8-a": []string{},
@@ -59,7 +54,8 @@ func (t *toolchainArm64) RustTriple() string {
}
func (t *toolchainArm64) ToolchainLinkFlags() string {
- return "${config.DeviceGlobalLinkFlags} ${config.Arm64ToolchainLinkFlags}"
+ // Prepend the lld flags from cc_config so we stay in sync with cc
+ return "${config.DeviceGlobalLinkFlags} ${cc_config.Arm64Lldflags} ${config.Arm64ToolchainLinkFlags}"
}
func (t *toolchainArm64) ToolchainRustFlags() string {
diff --git a/rust/config/arm_device.go b/rust/config/arm_device.go
index ac2580b81..ac4f1c659 100644
--- a/rust/config/arm_device.go
+++ b/rust/config/arm_device.go
@@ -23,10 +23,7 @@ import (
var (
ArmRustFlags = []string{}
ArmArchFeatureRustFlags = map[string][]string{}
- ArmLinkFlags = []string{
- "-Wl,--icf=safe",
- "-Wl,-m,armelf",
- }
+ ArmLinkFlags = []string{}
ArmArchVariantRustFlags = map[string][]string{
"armv7-a": []string{},
@@ -59,7 +56,8 @@ func (t *toolchainArm) RustTriple() string {
}
func (t *toolchainArm) ToolchainLinkFlags() string {
- return "${config.DeviceGlobalLinkFlags} ${config.ArmToolchainLinkFlags}"
+ // Prepend the lld flags from cc_config so we stay in sync with cc
+ return "${config.DeviceGlobalLinkFlags} ${cc_config.ArmLldflags} ${config.ArmToolchainLinkFlags}"
}
func (t *toolchainArm) ToolchainRustFlags() string {
diff --git a/rust/config/global.go b/rust/config/global.go
index 2f4d930e7..6a5251bb5 100644
--- a/rust/config/global.go
+++ b/rust/config/global.go
@@ -42,22 +42,18 @@ var (
deviceGlobalRustFlags = []string{}
deviceGlobalLinkFlags = []string{
+ // Prepend the lld flags from cc_config so we stay in sync with cc
+ "${cc_config.DeviceGlobalLldflags}",
+
+ // Override cc's --no-undefined-version to allow rustc's generated alloc functions
+ "-Wl,--undefined-version",
+
"-Bdynamic",
"-nostdlib",
- "-Wl,-z,noexecstack",
- "-Wl,-z,relro",
- "-Wl,-z,now",
- "-Wl,--build-id=md5",
- "-Wl,--warn-shared-textrel",
- "-Wl,--fatal-warnings",
-
"-Wl,--pack-dyn-relocs=android+relr",
"-Wl,--use-android-relr-tags",
"-Wl,--no-undefined",
- "-Wl,--hash-style=gnu",
-
"-B${cc_config.ClangBin}",
- "-fuse-ld=lld",
}
)
diff --git a/rust/config/x86_64_device.go b/rust/config/x86_64_device.go
index 9a6c00b19..5f6e85a08 100644
--- a/rust/config/x86_64_device.go
+++ b/rust/config/x86_64_device.go
@@ -61,7 +61,8 @@ func (t *toolchainX86_64) RustTriple() string {
}
func (t *toolchainX86_64) ToolchainLinkFlags() string {
- return "${config.DeviceGlobalLinkFlags} ${config.X86_64ToolchainLinkFlags}"
+ // Prepend the lld flags from cc_config so we stay in sync with cc
+ return "${config.DeviceGlobalLinkFlags} ${cc_config.X86_64Lldflags} ${config.X86_64ToolchainLinkFlags}"
}
func (t *toolchainX86_64) ToolchainRustFlags() string {
diff --git a/rust/config/x86_darwin_host.go b/rust/config/x86_darwin_host.go
index a13a9a6a4..ddd93e889 100644
--- a/rust/config/x86_darwin_host.go
+++ b/rust/config/x86_darwin_host.go
@@ -77,7 +77,8 @@ func (t *toolchainDarwin) ProcMacroSuffix() string {
}
func (t *toolchainDarwinX8664) ToolchainLinkFlags() string {
- return "${config.DarwinToolchainLinkFlags} ${config.DarwinToolchainX8664LinkFlags}"
+ // Prepend the lld flags from cc_config so we stay in sync with cc
+ return "${cc_config.DarwinClangLldflags} ${config.DarwinToolchainLinkFlags} ${config.DarwinToolchainX8664LinkFlags}"
}
func (t *toolchainDarwinX8664) ToolchainRustFlags() string {
diff --git a/rust/config/x86_device.go b/rust/config/x86_device.go
index ec19b3c30..daeeb1476 100644
--- a/rust/config/x86_device.go
+++ b/rust/config/x86_device.go
@@ -64,7 +64,8 @@ func (t *toolchainX86) RustTriple() string {
}
func (t *toolchainX86) ToolchainLinkFlags() string {
- return "${config.DeviceGlobalLinkFlags} ${config.X86ToolchainLinkFlags}"
+ // Prepend the lld flags from cc_config so we stay in sync with cc
+ return "${config.DeviceGlobalLinkFlags} ${cc_config.X86ClangLldflags} ${config.X86ToolchainLinkFlags}"
}
func (t *toolchainX86) ToolchainRustFlags() string {
diff --git a/rust/config/x86_linux_host.go b/rust/config/x86_linux_host.go
index b55b2f2a2..e7f26ce5c 100644
--- a/rust/config/x86_linux_host.go
+++ b/rust/config/x86_linux_host.go
@@ -25,6 +25,7 @@ var (
LinuxRustLinkFlags = []string{
"-B${cc_config.ClangBin}",
"-fuse-ld=lld",
+ "-Wl,--undefined-version",
}
linuxX86Rustflags = []string{}
linuxX86Linkflags = []string{}
@@ -77,7 +78,9 @@ func (t *toolchainLinuxX8664) RustTriple() string {
}
func (t *toolchainLinuxX8664) ToolchainLinkFlags() string {
- return "${config.LinuxToolchainLinkFlags} ${config.LinuxToolchainX8664LinkFlags}"
+ // Prepend the lld flags from cc_config so we stay in sync with cc
+ return "${cc_config.LinuxClangLldflags} ${cc_config.LinuxX8664ClangLldflags} " +
+ "${config.LinuxToolchainLinkFlags} ${config.LinuxToolchainX8664LinkFlags}"
}
func (t *toolchainLinuxX8664) ToolchainRustFlags() string {
@@ -105,7 +108,9 @@ func (t *toolchainLinuxX86) RustTriple() string {
}
func (t *toolchainLinuxX86) ToolchainLinkFlags() string {
- return "${config.LinuxToolchainLinkFlags} ${config.LinuxToolchainX86LinkFlags}"
+ // Prepend the lld flags from cc_config so we stay in sync with cc
+ return "${cc_config.LinuxClangLldflags} ${cc_config.LinuxX86ClangLldflags} " +
+ "${config.LinuxToolchainLinkFlags} ${config.LinuxToolchainX86LinkFlags}"
}
func (t *toolchainLinuxX86) ToolchainRustFlags() string {
diff --git a/rust/rust.go b/rust/rust.go
index 5c6cdb792..4cba6d6b1 100644
--- a/rust/rust.go
+++ b/rust/rust.go
@@ -258,6 +258,7 @@ type PathDeps struct {
// Used by bindgen modules which call clang
depClangFlags []string
depIncludePaths android.Paths
+ depGeneratedHeaders android.Paths
depSystemIncludePaths android.Paths
coverageFiles android.Paths
@@ -875,6 +876,7 @@ func (mod *Module) depsToPaths(ctx android.ModuleContext) PathDeps {
if mod, ok := ccDep.(*cc.Module); ok {
depPaths.depSystemIncludePaths = append(depPaths.depSystemIncludePaths, mod.ExportedSystemIncludeDirs()...)
depPaths.depClangFlags = append(depPaths.depClangFlags, mod.ExportedFlags()...)
+ depPaths.depGeneratedHeaders = append(depPaths.depGeneratedHeaders, mod.ExportedGeneratedHeaders()...)
}
depPaths.coverageFiles = append(depPaths.coverageFiles, ccDep.CoverageFiles()...)
directStaticLibDeps = append(directStaticLibDeps, ccDep)
@@ -886,6 +888,7 @@ func (mod *Module) depsToPaths(ctx android.ModuleContext) PathDeps {
if mod, ok := ccDep.(*cc.Module); ok {
depPaths.depSystemIncludePaths = append(depPaths.depSystemIncludePaths, mod.ExportedSystemIncludeDirs()...)
depPaths.depClangFlags = append(depPaths.depClangFlags, mod.ExportedFlags()...)
+ depPaths.depGeneratedHeaders = append(depPaths.depGeneratedHeaders, mod.ExportedGeneratedHeaders()...)
}
directSharedLibDeps = append(directSharedLibDeps, ccDep)
mod.Properties.AndroidMkSharedLibs = append(mod.Properties.AndroidMkSharedLibs, depName)