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

Commit 83d9f71c authored by Vishwath Mohan's avatar Vishwath Mohan
Browse files

Allow custom ar flags to be set.

Adds the ability to set custom flags for ar in Soong, similar to how
they can currently be set for make.

Bug: 36290748
Test: sanitize.go is able to correct set custom ar flags for CFI. CFI
enabled Soong components build and boot without issue.

Change-Id: I3212793aa84ba51df910c184d8bb376b3650376e
parent a8b55027
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -184,6 +184,7 @@ func init() {

type builderFlags struct {
	globalFlags string
	arFlags     string
	asFlags     string
	cFlags      string
	conlyFlags  string
@@ -367,6 +368,9 @@ func TransformObjToStaticLib(ctx android.ModuleContext, objFiles android.Paths,

	arCmd := gccCmd(flags.toolchain, "ar")
	arFlags := "crsPD"
	if flags.arFlags != "" {
		arFlags += " " + flags.arFlags
	}

	ctx.ModuleBuild(pctx, android.ModuleBuildParams{
		Rule:      ar,
+1 −0
Original line number Diff line number Diff line
@@ -96,6 +96,7 @@ type PathDeps struct {

type Flags struct {
	GlobalFlags []string // Flags that apply to C, C++, and assembly source files
	ArFlags     []string // Flags that apply to ar
	AsFlags     []string // Flags that apply to assembly source files
	CFlags      []string // Flags that apply to C and C++ source files
	ConlyFlags  []string // Flags that apply to C source files
+1 −0
Original line number Diff line number Diff line
@@ -88,6 +88,7 @@ func moduleToLibName(module string) (string, error) {
func flagsToBuilderFlags(in Flags) builderFlags {
	return builderFlags{
		globalFlags: strings.Join(in.GlobalFlags, " "),
		arFlags:     strings.Join(in.ArFlags, " "),
		asFlags:     strings.Join(in.AsFlags, " "),
		cFlags:      strings.Join(in.CFlags, " "),
		conlyFlags:  strings.Join(in.ConlyFlags, " "),