From 6cfd07e5241c31196142984504790db24c7f4a24 Mon Sep 17 00:00:00 2001 From: AdityaK Date: Wed, 31 Jan 2024 14:31:20 -0800 Subject: [PATCH] Remove x86 specific flags from bpf target Test: cd external/bcc/libbpf-tools && mm Bug: b/308826679 Change-Id: Ibb76832c4013360b6561a6d3676f35adc9ecde5f Change-Id: Ibb76832c4013360b6561a6d3676f35adc9ecde5f --- cc/compiler.go | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/cc/compiler.go b/cc/compiler.go index c57b72c1a..de1ae719a 100644 --- a/cc/compiler.go +++ b/cc/compiler.go @@ -116,6 +116,10 @@ type BaseCompilerProperties struct { // if set to false, use -std=c++* instead of -std=gnu++* Gnu_extensions *bool + // cc Build rules targeting BPF must set this to true. The correct fix is to + // ban targeting bpf in cc rules instead use bpf_rules. (b/323415017) + Bpf_target *bool + Yacc *YaccProperties Lex *LexProperties @@ -483,6 +487,11 @@ func (compiler *baseCompiler) compilerFlags(ctx ModuleContext, flags Flags, deps } } + // bpf targets don't need the default target triple. b/308826679 + if proptools.Bool(compiler.Properties.Bpf_target) { + target = "--target=bpf" + } + flags.Global.CFlags = append(flags.Global.CFlags, target) flags.Global.AsFlags = append(flags.Global.AsFlags, target) flags.Global.LdFlags = append(flags.Global.LdFlags, target) @@ -498,8 +507,12 @@ func (compiler *baseCompiler) compilerFlags(ctx ModuleContext, flags Flags, deps flags.Global.AsFlags = append(flags.Global.AsFlags, tc.Asflags()) flags.Global.CppFlags = append([]string{"${config.CommonGlobalCppflags}"}, flags.Global.CppFlags...) + + // bpf targets don't need the target specific toolchain cflags. b/308826679 + if !proptools.Bool(compiler.Properties.Bpf_target) { + flags.Global.CommonFlags = append(flags.Global.CommonFlags, tc.Cflags()) + } flags.Global.CommonFlags = append(flags.Global.CommonFlags, - tc.Cflags(), "${config.CommonGlobalCflags}", fmt.Sprintf("${config.%sGlobalCflags}", hod)) @@ -521,7 +534,11 @@ func (compiler *baseCompiler) compilerFlags(ctx ModuleContext, flags Flags, deps flags.Global.YasmFlags = append(flags.Global.YasmFlags, tc.YasmFlags()) - flags.Global.CommonFlags = append(flags.Global.CommonFlags, tc.ToolchainCflags()) + // bpf targets don't need the target specific toolchain cflags. b/308826679 + if !proptools.Bool(compiler.Properties.Bpf_target) { + flags.Global.CommonFlags = append(flags.Global.CommonFlags, tc.ToolchainCflags()) + } + cStd := parseCStd(compiler.Properties.C_std) cppStd := parseCppStd(compiler.Properties.Cpp_std)