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

Commit 916f1e48 authored by Mitch Phillips's avatar Mitch Phillips Committed by Gerrit Code Review
Browse files

Merge "Add i386 host fuzzing support w/ cc_fuzz."

parents 06b9611d 4de896e1
Loading
Loading
Loading
Loading
+6 −10
Original line number Diff line number Diff line
@@ -15,9 +15,12 @@
package cc

import (
	"path/filepath"

	"github.com/google/blueprint/proptools"

	"android/soong/android"
	"android/soong/cc/config"
	"github.com/google/blueprint/proptools"
)

func init() {
@@ -78,21 +81,14 @@ func (fuzz *fuzzBinary) linkerFlags(ctx ModuleContext, flags Flags) Flags {
}

func (fuzz *fuzzBinary) install(ctx ModuleContext, file android.Path) {
	fuzz.binaryDecorator.baseInstaller.dir = "fuzz"
	fuzz.binaryDecorator.baseInstaller.dir64 = "fuzz"
	fuzz.binaryDecorator.baseInstaller.dir = filepath.Join("fuzz", ctx.Target().Arch.ArchType.String())
	fuzz.binaryDecorator.baseInstaller.dir64 = filepath.Join("fuzz", ctx.Target().Arch.ArchType.String())
	fuzz.binaryDecorator.baseInstaller.install(ctx, file)
}

func NewFuzz(hod android.HostOrDeviceSupported) *Module {
	module, binary := NewBinary(hod)

	// TODO(mitchp): The toolchain does not currently export the x86 (32-bit)
	// variant of libFuzzer for host. There is no way to only disable the host
	// 32-bit variant, so we specify cc_fuzz targets as 64-bit only. This doesn't
	// hurt anyone, as cc_fuzz is mostly for experimental targets as of this
	// moment.
	module.multilib = "64"

	binary.baseInstaller = NewFuzzInstaller()
	module.sanitize.SetSanitizer(fuzzer, true)