Corrected and Pushed.
Thanks, Cupertino David Faust writes: > On 2/27/24 11:04, Cupertino Miranda wrote: >> BPF applications, when generating BTF information should always create a >> .BTF.ext section. >> Current implementation was only creating it when -mco-re option was used. >> This patch makes .BTF.ext always be generated for BPF target objects. >> The patch also adds conditions around btf_finalize function call >> such that BTF deallocation happens later for BPF target. >> For BPF, btf_finalize is only called after .BTF.ext is generated. > > Thank you, this version makes it much more clear what the patch does. > >> >> gcc/ChangeLog: >> >> * config/bpf/bpf.cc (bpf_option_override): Make .BTF.ext >> enabled by default for BPF. >> (bpf_file_end): Call BTF deallocation. >> * dwarf2ctf.cc (ctf_debug_finalize): Conditionally execute BTF >> deallocation. > > You are missing ChangeLog entries for bpf_asm_init_sections and > ctf_debug_finish. > > The script contrib/gcc-changelog/git_check_commit.py may help > to catch those. > > The code changes LGTM, so OK with the ChangeLog fixed. > Thanks. > >> --- >> gcc/config/bpf/bpf.cc | 20 +++++++++----------- >> gcc/dwarf2ctf.cc | 12 ++++++------ >> 2 files changed, 15 insertions(+), 17 deletions(-) >> >> diff --git a/gcc/config/bpf/bpf.cc b/gcc/config/bpf/bpf.cc >> index d6ca47eeecbe..4318b26b9cda 100644 >> --- a/gcc/config/bpf/bpf.cc >> +++ b/gcc/config/bpf/bpf.cc >> @@ -195,10 +195,8 @@ bpf_option_override (void) >> if (TARGET_BPF_CORE && !btf_debuginfo_p ()) >> error ("BPF CO-RE requires BTF debugging information, use %<-gbtf%>"); >> >> - /* To support the portability needs of BPF CO-RE approach, BTF debug >> - information includes the BPF CO-RE relocations. */ >> - if (TARGET_BPF_CORE) >> - write_symbols |= BTF_WITH_CORE_DEBUG; >> + /* BPF applications always generate .BTF.ext. */ >> + write_symbols |= BTF_WITH_CORE_DEBUG; >> >> /* Unlike much of the other BTF debug information, the information >> necessary >> for CO-RE relocations is added to the CTF container by the BPF backend. >> @@ -218,10 +216,7 @@ bpf_option_override (void) >> /* -gbtf implies -mcore when using the BPF backend, unless -mno-co-re >> is specified. */ >> if (btf_debuginfo_p () && !(target_flags_explicit & MASK_BPF_CORE)) >> - { >> - target_flags |= MASK_BPF_CORE; >> - write_symbols |= BTF_WITH_CORE_DEBUG; >> - } >> + target_flags |= MASK_BPF_CORE; >> >> /* Determine available features from ISA setting (-mcpu=). */ >> if (bpf_has_jmpext == -1) >> @@ -267,7 +262,7 @@ bpf_option_override (void) >> static void >> bpf_asm_init_sections (void) >> { >> - if (TARGET_BPF_CORE) >> + if (btf_debuginfo_p () && btf_with_core_debuginfo_p ()) >> btf_ext_init (); >> } >> >> @@ -279,8 +274,11 @@ bpf_asm_init_sections (void) >> static void >> bpf_file_end (void) >> { >> - if (TARGET_BPF_CORE) >> - btf_ext_output (); >> + if (btf_debuginfo_p () && btf_with_core_debuginfo_p ()) >> + { >> + btf_ext_output (); >> + btf_finalize (); >> + } >> } >> >> #undef TARGET_ASM_FILE_END >> diff --git a/gcc/dwarf2ctf.cc b/gcc/dwarf2ctf.cc >> index 93e5619933fa..dca86edfffa9 100644 >> --- a/gcc/dwarf2ctf.cc >> +++ b/gcc/dwarf2ctf.cc >> @@ -944,7 +944,10 @@ ctf_debug_finalize (const char *filename, bool btf) >> if (btf) >> { >> btf_output (filename); >> - btf_finalize (); >> + /* btf_finalize when compiling BPF applciations gets deallocated by >> the >> + BPF target in bpf_file_end. */ >> + if (btf_debuginfo_p () && !btf_with_core_debuginfo_p ()) >> + btf_finalize (); >> } >> >> else >> @@ -1027,11 +1030,8 @@ ctf_debug_finish (const char * filename) >> /* Emit BTF debug info here when CO-RE relocations need to be generated. >> BTF with CO-RE relocations needs to be generated when CO-RE is in >> effect >> for the BPF target. */ >> - if (btf_with_core_debuginfo_p ()) >> - { >> - gcc_assert (btf_debuginfo_p ()); >> - ctf_debug_finalize (filename, btf_debuginfo_p ()); >> - } >> + if (btf_debuginfo_p () && btf_with_core_debuginfo_p ()) >> + ctf_debug_finalize (filename, btf_debuginfo_p ()); >> } >> >> #include "gt-dwarf2ctf.h"