diff options
| author | 2023-04-06 20:46:41 +0000 | |
|---|---|---|
| committer | 2023-04-06 20:46:41 +0000 | |
| commit | b4949c2b4f2386e502c0139e8eb77b1645ad11f7 (patch) | |
| tree | 11fc6db1b3991f4c01c5bb20cd36ea41fb179df0 | |
| parent | 7bfe443875545025a4e36caa43792c743cd73434 (diff) | |
| parent | 4048bb0a892d16158263e68c08de943b66610c72 (diff) | |
Merge "Revert "Revert "Fix NDK library sysroot arrangement."""
| -rw-r--r-- | cc/library.go | 4 | ||||
| -rw-r--r-- | cc/ndk_library.go | 23 |
2 files changed, 14 insertions, 13 deletions
diff --git a/cc/library.go b/cc/library.go index a9ada97d9..7504302fd 100644 --- a/cc/library.go +++ b/cc/library.go @@ -26,7 +26,6 @@ import ( "android/soong/android" "android/soong/bazel" "android/soong/bazel/cquery" - "android/soong/cc/config" "github.com/google/blueprint" "github.com/google/blueprint/pathtools" @@ -2261,8 +2260,7 @@ func (library *libraryDecorator) install(ctx ModuleContext, file android.Path) { !ctx.useVndk() && !ctx.inRamdisk() && !ctx.inVendorRamdisk() && !ctx.inRecovery() && ctx.Device() && library.baseLinker.sanitize.isUnsanitizedVariant() && ctx.isForPlatform() && !ctx.isPreventInstall() { - installPath := getNdkSysrootBase(ctx).Join( - ctx, "usr/lib", config.NDKTriple(ctx.toolchain()), file.Base()) + installPath := getUnversionedLibraryInstallPath(ctx).Join(ctx, file.Base()) ctx.ModuleBuild(pctx, android.ModuleBuildParams{ Rule: android.Cp, diff --git a/cc/ndk_library.go b/cc/ndk_library.go index 2473ba2a3..a82436135 100644 --- a/cc/ndk_library.go +++ b/cc/ndk_library.go @@ -528,17 +528,20 @@ func (stub *stubDecorator) nativeCoverage() bool { return false } -func (stub *stubDecorator) install(ctx ModuleContext, path android.Path) { - 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" - } +// 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())) +} - installDir := getNdkInstallBase(ctx).Join(ctx, fmt.Sprintf( - "platforms/android-%s/arch-%s/usr/%s", stub.apiLevel, arch, libDir)) +// 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) stub.installPath = ctx.InstallFile(installDir, path.Base(), path) } |