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

Commit ab97e28b authored by Florian Mayer's avatar Florian Mayer
Browse files

Pass -mllvm flags for memtag-stack correctly to linker

Bug: 309446520
Change-Id: I08519db0323a754c66acaa0ace5c41d962809ac6
parent 6ab1b1fd
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -82,7 +82,8 @@ var (
		"-fno-sanitize-recover=integer,undefined"}
	hwasanGlobalOptions = []string{"heap_history_size=1023", "stack_history_size=512",
		"export_memory_stats=0", "max_malloc_fill_size=131072", "malloc_fill_byte=0"}
	memtagStackCommonFlags = []string{"-march=armv8-a+memtag", "-mllvm", "-dom-tree-reachability-max-bbs-to-explore=128"}
	memtagStackCommonFlags = []string{"-march=armv8-a+memtag"}
	memtagStackLlvmFlags = []string{"-dom-tree-reachability-max-bbs-to-explore=128"}

	hostOnlySanitizeFlags   = []string{"-fno-sanitize-recover=all"}
	deviceOnlySanitizeFlags = []string{"-fsanitize-trap=all"}
@@ -879,6 +880,13 @@ func (s *sanitize) flags(ctx ModuleContext, flags Flags) Flags {
		flags.Local.CFlags = append(flags.Local.CFlags, memtagStackCommonFlags...)
		flags.Local.AsFlags = append(flags.Local.AsFlags, memtagStackCommonFlags...)
		flags.Local.LdFlags = append(flags.Local.LdFlags, memtagStackCommonFlags...)

		for _, flag := range memtagStackLlvmFlags {
			flags.Local.CFlags = append(flags.Local.CFlags, "-mllvm", flag)
		}
		for _, flag := range memtagStackLlvmFlags {
			flags.Local.LdFlags = append(flags.Local.LdFlags, "-Wl,-mllvm,"+flag)
		}
	}

	if (Bool(sanProps.Memtag_heap) || Bool(sanProps.Memtag_stack) || Bool(sanProps.Memtag_globals)) && ctx.binary() {