https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106773
--- Comment #19 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by David Faust <dfa...@gcc.gnu.org>: https://gcc.gnu.org/g:70b303049e45c180236a4114f844311652bad002 commit r13-4709-g70b303049e45c180236a4114f844311652bad002 Author: David Faust <david.fa...@oracle.com> Date: Wed Dec 7 11:51:59 2022 -0800 btf: correct generation for extern funcs [PR106773] The eBPF loader expects to find entries for functions declared as extern in the corresponding BTF_KIND_DATASEC record, but we were not generating these entries. This patch adds support for the 'extern' linkage of function types in BTF, and creates entries for for them BTF_KIND_DATASEC records as needed. PR target/106773 gcc/ * btfout.cc (get_section_name): New function. (btf_collect_datasec): Use it here. Process functions, marking them 'extern' and generating DATASEC entries for them as appropriate. Move creation of BTF_KIND_FUNC records to here... (btf_dtd_emit_preprocess_cb): ... from here. gcc/testsuite/ * gcc.dg/debug/btf/btf-datasec-2.c: New test. * gcc.dg/debug/btf/btf-function-6.c: New test. include/ * btf.h (enum btf_func_linkage): New. (struct btf_var_secinfo): Update comments with notes about extern functions.