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
This commit is contained in:
@@ -184,6 +184,7 @@ func init() {
|
|||||||
|
|
||||||
type builderFlags struct {
|
type builderFlags struct {
|
||||||
globalFlags string
|
globalFlags string
|
||||||
|
arFlags string
|
||||||
asFlags string
|
asFlags string
|
||||||
cFlags string
|
cFlags string
|
||||||
conlyFlags string
|
conlyFlags string
|
||||||
@@ -367,6 +368,9 @@ func TransformObjToStaticLib(ctx android.ModuleContext, objFiles android.Paths,
|
|||||||
|
|
||||||
arCmd := gccCmd(flags.toolchain, "ar")
|
arCmd := gccCmd(flags.toolchain, "ar")
|
||||||
arFlags := "crsPD"
|
arFlags := "crsPD"
|
||||||
|
if flags.arFlags != "" {
|
||||||
|
arFlags += " " + flags.arFlags
|
||||||
|
}
|
||||||
|
|
||||||
ctx.ModuleBuild(pctx, android.ModuleBuildParams{
|
ctx.ModuleBuild(pctx, android.ModuleBuildParams{
|
||||||
Rule: ar,
|
Rule: ar,
|
||||||
|
1
cc/cc.go
1
cc/cc.go
@@ -96,6 +96,7 @@ type PathDeps struct {
|
|||||||
|
|
||||||
type Flags struct {
|
type Flags struct {
|
||||||
GlobalFlags []string // Flags that apply to C, C++, and assembly source files
|
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
|
AsFlags []string // Flags that apply to assembly source files
|
||||||
CFlags []string // Flags that apply to C and C++ source files
|
CFlags []string // Flags that apply to C and C++ source files
|
||||||
ConlyFlags []string // Flags that apply to C source files
|
ConlyFlags []string // Flags that apply to C source files
|
||||||
|
@@ -88,6 +88,7 @@ func moduleToLibName(module string) (string, error) {
|
|||||||
func flagsToBuilderFlags(in Flags) builderFlags {
|
func flagsToBuilderFlags(in Flags) builderFlags {
|
||||||
return builderFlags{
|
return builderFlags{
|
||||||
globalFlags: strings.Join(in.GlobalFlags, " "),
|
globalFlags: strings.Join(in.GlobalFlags, " "),
|
||||||
|
arFlags: strings.Join(in.ArFlags, " "),
|
||||||
asFlags: strings.Join(in.AsFlags, " "),
|
asFlags: strings.Join(in.AsFlags, " "),
|
||||||
cFlags: strings.Join(in.CFlags, " "),
|
cFlags: strings.Join(in.CFlags, " "),
|
||||||
conlyFlags: strings.Join(in.ConlyFlags, " "),
|
conlyFlags: strings.Join(in.ConlyFlags, " "),
|
||||||
|
Reference in New Issue
Block a user