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

Commit dabe2d43 authored by Steven Moreland's avatar Steven Moreland
Browse files

Ignore_max_page_size option.

Option for specific prebuilts to opt out of
the prebuilt page size check.

Like allow_undefined_symbols.

Bug: 342466032
Test: build using this to opt out
Change-Id: I335c0beb66c10b260e7c3e405f05027e7718fe07
parent 01d31bdc
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -486,14 +486,14 @@ func (p *prebuiltLibraryLinker) AndroidMkEntries(ctx AndroidMkContext, entries *
	ctx.subAndroidMk(entries, p.libraryDecorator)
	if p.shared() {
		ctx.subAndroidMk(entries, &p.prebuiltLinker)
		androidMkWriteAllowUndefinedSymbols(p.baseLinker, entries)
		androidMkWritePrebuiltOptions(p.baseLinker, entries)
	}
}

func (p *prebuiltBinaryLinker) AndroidMkEntries(ctx AndroidMkContext, entries *android.AndroidMkEntries) {
	ctx.subAndroidMk(entries, p.binaryDecorator)
	ctx.subAndroidMk(entries, &p.prebuiltLinker)
	androidMkWriteAllowUndefinedSymbols(p.baseLinker, entries)
	androidMkWritePrebuiltOptions(p.baseLinker, entries)
}

func (a *apiLibraryDecorator) AndroidMkEntries(ctx AndroidMkContext, entries *android.AndroidMkEntries) {
@@ -524,11 +524,17 @@ func (a *apiHeadersDecorator) AndroidMkEntries(ctx AndroidMkContext, entries *an
	})
}

func androidMkWriteAllowUndefinedSymbols(linker *baseLinker, entries *android.AndroidMkEntries) {
func androidMkWritePrebuiltOptions(linker *baseLinker, entries *android.AndroidMkEntries) {
	allow := linker.Properties.Allow_undefined_symbols
	if allow != nil {
		entries.ExtraEntries = append(entries.ExtraEntries, func(ctx android.AndroidMkExtraEntriesContext, entries *android.AndroidMkEntries) {
			entries.SetBool("LOCAL_ALLOW_UNDEFINED_SYMBOLS", *allow)
		})
	}
	ignore := linker.Properties.Ignore_max_page_size
	if ignore != nil {
		entries.ExtraEntries = append(entries.ExtraEntries, func(ctx android.AndroidMkExtraEntriesContext, entries *android.AndroidMkEntries) {
			entries.SetBool("LOCAL_IGNORE_MAX_PAGE_SIZE", *ignore)
		})
	}
}
+4 −0
Original line number Diff line number Diff line
@@ -65,6 +65,10 @@ type BaseLinkerProperties struct {
	// This flag should only be necessary for compiling low-level libraries like libc.
	Allow_undefined_symbols *bool `android:"arch_variant"`

	// ignore max page size. By default, max page size must be the
	// max page size set for the target.
	Ignore_max_page_size *bool `android:"arch_variant"`

	// don't link in libclang_rt.builtins-*.a
	No_libcrt *bool `android:"arch_variant"`