Skip to content

Commit e3da5ea

Browse files
committed
Re-land "Make building Rust targets faster in eng builds"
This reverts commit af9fc54, reversing changes made to f617e18. Additionally, patch set #2 adds a fix for b/b/325547632. We should not pass the `-Z dylib-lto` flag. Test: m rust Test: ABTD rialto_test Bug: https://b.corp.google.com/issues/289094772 Change-Id: I0b7cb62866391968029a23ab2daade28628944ea
1 parent af9fc54 commit e3da5ea

File tree

1 file changed

+14
-15
lines changed

1 file changed

+14
-15
lines changed

rust/builder.go

+14-15
Original file line numberDiff line numberDiff line change
@@ -122,8 +122,6 @@ func init() {
122122

123123
func TransformSrcToBinary(ctx ModuleContext, mainSrc android.Path, deps PathDeps, flags Flags,
124124
outputFile android.WritablePath) buildOutput {
125-
flags.GlobalRustFlags = append(flags.GlobalRustFlags, "-C lto=thin")
126-
127125
return transformSrctoCrate(ctx, mainSrc, deps, flags, outputFile, "bin")
128126
}
129127

@@ -134,20 +132,16 @@ func TransformSrctoRlib(ctx ModuleContext, mainSrc android.Path, deps PathDeps,
134132

135133
func TransformSrctoDylib(ctx ModuleContext, mainSrc android.Path, deps PathDeps, flags Flags,
136134
outputFile android.WritablePath) buildOutput {
137-
flags.GlobalRustFlags = append(flags.GlobalRustFlags, "-C lto=thin")
138-
139135
return transformSrctoCrate(ctx, mainSrc, deps, flags, outputFile, "dylib")
140136
}
141137

142138
func TransformSrctoStatic(ctx ModuleContext, mainSrc android.Path, deps PathDeps, flags Flags,
143139
outputFile android.WritablePath) buildOutput {
144-
flags.GlobalRustFlags = append(flags.GlobalRustFlags, "-C lto=thin")
145140
return transformSrctoCrate(ctx, mainSrc, deps, flags, outputFile, "staticlib")
146141
}
147142

148143
func TransformSrctoShared(ctx ModuleContext, mainSrc android.Path, deps PathDeps, flags Flags,
149144
outputFile android.WritablePath) buildOutput {
150-
flags.GlobalRustFlags = append(flags.GlobalRustFlags, "-C lto=thin")
151145
return transformSrctoCrate(ctx, mainSrc, deps, flags, outputFile, "cdylib")
152146
}
153147

@@ -263,6 +257,20 @@ func transformSrctoCrate(ctx ModuleContext, main android.Path, deps PathDeps, fl
263257

264258
inputs = append(inputs, main)
265259

260+
if ctx.Config().Eng() {
261+
// Per https://doc.rust-lang.org/rustc/codegen-options/index.html#codegen-units
262+
// incremental building implies codegen-units=256
263+
incrementalPath := android.PathForModuleOut(ctx, "rustc-incremental").String()
264+
flags.GlobalRustFlags = append(flags.GlobalRustFlags, "-C incremental="+incrementalPath)
265+
266+
} else {
267+
flags.GlobalRustFlags = append(flags.GlobalRustFlags, "-C codegen-units=1")
268+
269+
if !(ctx.RustModule().Rlib() || ctx.RustModule().ProcMacro()) {
270+
flags.GlobalRustFlags = append(flags.GlobalRustFlags, "-C lto=thin")
271+
}
272+
}
273+
266274
// Collect rustc flags
267275
rustcFlags = append(rustcFlags, flags.GlobalRustFlags...)
268276
rustcFlags = append(rustcFlags, flags.RustFlags...)
@@ -278,15 +286,6 @@ func transformSrctoCrate(ctx ModuleContext, main android.Path, deps PathDeps, fl
278286
// Suppress an implicit sysroot
279287
rustcFlags = append(rustcFlags, "--sysroot=/dev/null")
280288

281-
// Enable incremental compilation if requested by user
282-
if ctx.Config().IsEnvTrue("SOONG_RUSTC_INCREMENTAL") {
283-
incrementalPath := android.PathForOutput(ctx, "rustc").String()
284-
285-
rustcFlags = append(rustcFlags, "-C incremental="+incrementalPath)
286-
} else {
287-
rustcFlags = append(rustcFlags, "-C codegen-units=1")
288-
}
289-
290289
// Disallow experimental features
291290
modulePath := ctx.ModuleDir()
292291
if !(android.IsThirdPartyPath(modulePath) || strings.HasPrefix(modulePath, "prebuilts")) {

0 commit comments

Comments
 (0)