Merge "Revert "Fix NDK library sysroot arrangement.""
This commit is contained in:
@@ -26,6 +26,7 @@ import (
|
|||||||
"android/soong/android"
|
"android/soong/android"
|
||||||
"android/soong/bazel"
|
"android/soong/bazel"
|
||||||
"android/soong/bazel/cquery"
|
"android/soong/bazel/cquery"
|
||||||
|
"android/soong/cc/config"
|
||||||
|
|
||||||
"github.com/google/blueprint"
|
"github.com/google/blueprint"
|
||||||
"github.com/google/blueprint/pathtools"
|
"github.com/google/blueprint/pathtools"
|
||||||
@@ -2260,7 +2261,8 @@ func (library *libraryDecorator) install(ctx ModuleContext, file android.Path) {
|
|||||||
!ctx.useVndk() && !ctx.inRamdisk() && !ctx.inVendorRamdisk() && !ctx.inRecovery() && ctx.Device() &&
|
!ctx.useVndk() && !ctx.inRamdisk() && !ctx.inVendorRamdisk() && !ctx.inRecovery() && ctx.Device() &&
|
||||||
library.baseLinker.sanitize.isUnsanitizedVariant() &&
|
library.baseLinker.sanitize.isUnsanitizedVariant() &&
|
||||||
ctx.isForPlatform() && !ctx.isPreventInstall() {
|
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{
|
ctx.ModuleBuild(pctx, android.ModuleBuildParams{
|
||||||
Rule: android.Cp,
|
Rule: android.Cp,
|
||||||
|
@@ -528,20 +528,17 @@ func (stub *stubDecorator) nativeCoverage() bool {
|
|||||||
return false
|
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) {
|
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)
|
stub.installPath = ctx.InstallFile(installDir, path.Base(), path)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user