Merge "Pass library kind when linking native libraries."
diff --git a/rust/rust.go b/rust/rust.go
index e4f85f0..33ef714 100644
--- a/rust/rust.go
+++ b/rust/rust.go
@@ -623,21 +623,24 @@
 			linkFile := ccDep.OutputFile()
 			linkPath := linkPathFromFilePath(linkFile.Path())
 			libName := libNameFromFilePath(linkFile.Path())
+			depFlag := "-l" + libName
+
 			if !linkFile.Valid() {
 				ctx.ModuleErrorf("Invalid output file when adding dep %q to %q", depName, ctx.ModuleName())
 			}
 
 			exportDep := false
-
 			switch depTag {
 			case cc.StaticDepTag:
+				depFlag = "-lstatic=" + libName
 				depPaths.linkDirs = append(depPaths.linkDirs, linkPath)
-				depPaths.depFlags = append(depPaths.depFlags, "-l"+libName)
+				depPaths.depFlags = append(depPaths.depFlags, depFlag)
 				directStaticLibDeps = append(directStaticLibDeps, ccDep)
 				mod.Properties.AndroidMkStaticLibs = append(mod.Properties.AndroidMkStaticLibs, depName)
 			case cc.SharedDepTag:
+				depFlag = "-ldylib=" + libName
 				depPaths.linkDirs = append(depPaths.linkDirs, linkPath)
-				depPaths.depFlags = append(depPaths.depFlags, "-l"+libName)
+				depPaths.depFlags = append(depPaths.depFlags, depFlag)
 				directSharedLibDeps = append(directSharedLibDeps, ccDep)
 				mod.Properties.AndroidMkSharedLibs = append(mod.Properties.AndroidMkSharedLibs, depName)
 				exportDep = true
@@ -650,10 +653,10 @@
 			// Make sure these dependencies are propagated
 			if lib, ok := mod.compiler.(*libraryDecorator); ok && exportDep {
 				lib.linkDirs = append(lib.linkDirs, linkPath)
-				lib.depFlags = append(lib.depFlags, "-l"+libName)
+				lib.depFlags = append(lib.depFlags, depFlag)
 			} else if procMacro, ok := mod.compiler.(*procMacroDecorator); ok && exportDep {
 				procMacro.linkDirs = append(procMacro.linkDirs, linkPath)
-				procMacro.depFlags = append(procMacro.depFlags, "-l"+libName)
+				procMacro.depFlags = append(procMacro.depFlags, depFlag)
 			}
 
 		}