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

Commit 413cc744 authored by Jiyong Park's avatar Jiyong Park
Browse files

Recovery partition uses the first architecture only

To save space in the recovery partition, modules installed to the
partition are restricted to be built in the first architecure (i.e.,
32bit for 32bit-only device or when TARGET_PREFER_32_BIT is true, and
64bit otherwise).

Most notably, this change removes the 32-bit variant of the linker
(about 1MB). The linker was installed regardless of whether there is a
32-bit executable or not. Now, the unnecessary linker is not installed
and it is guaranteed that all modules in the partition are built with the
same architecture.

Bug: 79146551
Test: m -j
Test: out/target/product/<name>/recovery/root/system/bin/ has only one
variant of the linker.

Change-Id: I4070a43555bad4cfa8eff5253b09dcd004ea8251
parent f89db951
Loading
Loading
Loading
Loading
+26 −0
Original line number Diff line number Diff line
@@ -1569,6 +1569,19 @@ func imageMutator(mctx android.BottomUpMutatorContext) {
				recoveryVariantNeeded = true
			}

			if recoveryVariantNeeded {
				var recoveryMultilib string
				if mctx.Config().DevicePrefer32BitExecutables() {
					recoveryMultilib = "lib32"
				} else {
					recoveryMultilib = "lib64"
				}
				multilib := genrule.Target().Arch.ArchType.Multilib
				if multilib != recoveryMultilib {
					recoveryVariantNeeded = false
				}
			}

			var variants []string
			if coreVariantNeeded {
				variants = append(variants, coreMode)
@@ -1676,6 +1689,19 @@ func imageMutator(mctx android.BottomUpMutatorContext) {
		coreVariantNeeded = false
	}

	if recoveryVariantNeeded {
		var recoveryMultilib string
		if mctx.Config().DevicePrefer32BitExecutables() {
			recoveryMultilib = "lib32"
		} else {
			recoveryMultilib = "lib64"
		}
		multilib := m.Target().Arch.ArchType.Multilib
		if multilib != recoveryMultilib {
			recoveryVariantNeeded = false
		}
	}

	var variants []string
	if coreVariantNeeded {
		variants = append(variants, coreMode)