diff options
-rw-r--r-- | cc/androidmk.go | 1 | ||||
-rw-r--r-- | java/androidmk.go | 2 | ||||
-rw-r--r-- | rust/bindgen.go | 8 | ||||
-rw-r--r-- | rust/config/arm64_device.go | 10 | ||||
-rw-r--r-- | rust/config/arm_device.go | 8 | ||||
-rw-r--r-- | rust/config/global.go | 16 | ||||
-rw-r--r-- | rust/config/x86_64_device.go | 3 | ||||
-rw-r--r-- | rust/config/x86_darwin_host.go | 3 | ||||
-rw-r--r-- | rust/config/x86_device.go | 3 | ||||
-rw-r--r-- | rust/config/x86_linux_host.go | 9 | ||||
-rw-r--r-- | rust/rust.go | 3 |
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) |