Revert "Fix NDK library sysroot arrangement."
This reverts commit 169256f5354a1d8d61cf6998d016235e5c344ab4.
Reason for revert: DroidMonitor-triggered revert due to breakage https://android-build.googleplex.com/builds/build-details/9868109/targets/mokey-userdebug, bug b/276513771
Change-Id: Iea77994cd4ff0f61a8fa72e52cd1b601bc7cc1a0
diff --git a/cc/library.go b/cc/library.go
index 23311d5..1b579cd 100644
--- a/cc/library.go
+++ b/cc/library.go
@@ -26,6 +26,7 @@
"android/soong/android"
"android/soong/bazel"
"android/soong/bazel/cquery"
+ "android/soong/cc/config"
"github.com/google/blueprint"
"github.com/google/blueprint/pathtools"
@@ -2255,7 +2256,8 @@
!ctx.useVndk() && !ctx.inRamdisk() && !ctx.inVendorRamdisk() && !ctx.inRecovery() && ctx.Device() &&
library.baseLinker.sanitize.isUnsanitizedVariant() &&
ctx.isForPlatform() && !ctx.isPreventInstall() {
- installPath := getUnversionedLibraryInstallPath(ctx).Join(ctx, file.Base())
+ installPath := getNdkSysrootBase(ctx).Join(
+ ctx, "usr/lib", config.NDKTriple(ctx.toolchain()), file.Base())
ctx.ModuleBuild(pctx, android.ModuleBuildParams{
Rule: android.Cp,
diff --git a/cc/ndk_library.go b/cc/ndk_library.go
index a824361..2473ba2 100644
--- a/cc/ndk_library.go
+++ b/cc/ndk_library.go
@@ -528,20 +528,17 @@
return false
}
-// Returns the install path for unversioned NDK libraries (currently only static
-// libraries).
-func getUnversionedLibraryInstallPath(ctx ModuleContext) android.InstallPath {
- return getNdkSysrootBase(ctx).Join(ctx, "usr/lib", config.NDKTriple(ctx.toolchain()))
-}
-
-// Returns the install path for versioned NDK libraries. These are most often
-// stubs, but the same paths are used for CRT objects.
-func getVersionedLibraryInstallPath(ctx ModuleContext, apiLevel android.ApiLevel) android.InstallPath {
- return getUnversionedLibraryInstallPath(ctx).Join(ctx, apiLevel.String())
-}
-
func (stub *stubDecorator) install(ctx ModuleContext, path android.Path) {
- installDir := getVersionedLibraryInstallPath(ctx, stub.apiLevel)
+ arch := ctx.Target().Arch.ArchType.Name
+ // arm64 isn't actually a multilib toolchain, so unlike the other LP64
+ // architectures it's just installed to lib.
+ libDir := "lib"
+ if ctx.toolchain().Is64Bit() && arch != "arm64" {
+ libDir = "lib64"
+ }
+
+ installDir := getNdkInstallBase(ctx).Join(ctx, fmt.Sprintf(
+ "platforms/android-%s/arch-%s/usr/%s", stub.apiLevel, arch, libDir))
stub.installPath = ctx.InstallFile(installDir, path.Base(), path)
}