Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fb1e5fbf authored by Kiyoung Kim's avatar Kiyoung Kim Committed by Gerrit Code Review
Browse files

Merge "Move compat symlinks from makefile to soong"

parents 29d1336d 4791cb50
Loading
Loading
Loading
Loading
+22 −7
Original line number Diff line number Diff line
@@ -108,9 +108,8 @@ func apexVndkDepsMutator(mctx android.BottomUpMutatorContext) {
func makeCompatSymlinks(apexName string, ctx android.ModuleContext) (symlinks []string) {
	// small helper to add symlink commands
	addSymlink := func(target, dir, linkName string) {
		outDir := filepath.Join("$(PRODUCT_OUT)", dir)
		link := filepath.Join(outDir, linkName)
		symlinks = append(symlinks, "mkdir -p "+outDir+" && rm -rf "+link+" && ln -sf "+target+" "+link)
		link := filepath.Join(dir, linkName)
		symlinks = append(symlinks, "mkdir -p "+dir+" && rm -rf "+link+" && ln -sf "+target+" "+link)
	}

	// TODO(b/142911355): [VNDK APEX] Fix hard-coded references to /system/lib/vndk
@@ -121,12 +120,28 @@ func makeCompatSymlinks(apexName string, ctx android.ModuleContext) (symlinks []
		// the name of vndk apex is formatted "com.android.vndk.v" + version
		vndkVersion := strings.TrimPrefix(apexName, vndkApexNamePrefix)
		if ctx.Config().Android64() {
			addSymlink("/apex/"+apexName+"/lib64", "/system/lib64", "vndk-sp-"+vndkVersion)
			addSymlink("/apex/"+apexName+"/lib64", "/system/lib64", "vndk-"+vndkVersion)
			addSymlink("/apex/"+apexName+"/lib64", "$(TARGET_OUT)/lib64", "vndk-sp-"+vndkVersion)
			addSymlink("/apex/"+apexName+"/lib64", "$(TARGET_OUT)/lib64", "vndk-"+vndkVersion)
		}
		if !ctx.Config().Android64() || ctx.DeviceConfig().DeviceSecondaryArch() != "" {
			addSymlink("/apex/"+apexName+"/lib", "/system/lib", "vndk-sp-"+vndkVersion)
			addSymlink("/apex/"+apexName+"/lib", "/system/lib", "vndk-"+vndkVersion)
			addSymlink("/apex/"+apexName+"/lib", "$(TARGET_OUT)/lib", "vndk-sp-"+vndkVersion)
			addSymlink("/apex/"+apexName+"/lib", "$(TARGET_OUT)/lib", "vndk-"+vndkVersion)
		}
	}

	// http://b/121248172 - create a link from /system/usr/icu to
	// /apex/com.android.i18n/etc/icu so that apps can find the ICU .dat file.
	// A symlink can't overwrite a directory and the /system/usr/icu directory once
	// existed so the required structure must be created whatever we find.
	if apexName == "com.android.i18n" {
		addSymlink("/apex/"+apexName+"/etc/icu", "$(TARGET_OUT)/usr", "icu")
	}

	// TODO(b/124106384): Clean up compat symlinks for ART binaries.
	if strings.HasPrefix(apexName, "com.android.art.") {
		artBinaries := []string{"dalvikvm", "dex2oat"}
		for _, b := range artBinaries {
			addSymlink("/apex/com.android.art/bin/"+b, "$(TARGET_OUT)/bin", b)
		}
	}
	return