From 806efd3885d6eecfa1b1bd1697431c0ab073a76a Mon Sep 17 00:00:00 2001 From: Ivan Lozano Date: Wed, 11 Dec 2024 21:38:53 +0000 Subject: rust: Alias rust_ffi_rlib to rust_library_rlib With the new transition mutators, the distinctions between rust_ffi_rlib and rust_library_rlib are not necessary. This CL removes the remaining distinctions to allow an unusual use case where a rust_library and a rust_ffi_rlib would otherwise be created from the same source. This would allow defining a single rust_library_rlib that works for both rust modules and cc modules. One key change is that rust_ffi_rlibs only produced an rlib-std variant previously, and now produce dylib-std variants as well.This surfaced an issue where a libstd linkage mismatch would cause rustc to throw a consufing missing crate error. We instead add logic to catch this in Soong and provide a more useful error message. Bug: 383552450 Test: m rust Test: m blueprint_tests Change-Id: I611ca46934059735d06229952cfd8e0ab7050486 --- rust/compiler.go | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'rust/compiler.go') diff --git a/rust/compiler.go b/rust/compiler.go index fd869174c..b93019b30 100644 --- a/rust/compiler.go +++ b/rust/compiler.go @@ -30,9 +30,8 @@ import ( type RustLinkage int const ( - DefaultLinkage RustLinkage = iota + DylibLinkage RustLinkage = iota RlibLinkage - DylibLinkage ) type compiler interface { @@ -69,7 +68,7 @@ type compiler interface { Disabled() bool SetDisabled() - stdLinkage(ctx *depsContext) RustLinkage + stdLinkage(device bool) RustLinkage noStdlibs() bool unstrippedOutputFilePath() android.Path @@ -316,11 +315,11 @@ func (compiler *baseCompiler) Aliases() map[string]string { return aliases } -func (compiler *baseCompiler) stdLinkage(ctx *depsContext) RustLinkage { +func (compiler *baseCompiler) stdLinkage(device bool) RustLinkage { // For devices, we always link stdlibs in as dylibs by default. if compiler.preferRlib() { return RlibLinkage - } else if ctx.Device() { + } else if device { return DylibLinkage } else { return RlibLinkage -- cgit v1.2.3-59-g8ed1b