diff options
author | David Faust <david.faust@oracle.com> | 2022-12-07 11:51:59 -0800 |
---|---|---|
committer | David Faust <david.faust@oracle.com> | 2022-12-14 10:20:53 -0800 |
commit | 70b303049e45c180236a4114f844311652bad002 (patch) | |
tree | b43b62a7a552c0d8ca4a21596aaf950c50bbd3df /gcc/gcov.cc | |
parent | 4f7aa145b796c044526c93f390e68f3b56a1b30a (diff) | |
download | gcc-70b303049e45c180236a4114f844311652bad002.zip gcc-70b303049e45c180236a4114f844311652bad002.tar.gz gcc-70b303049e45c180236a4114f844311652bad002.tar.bz2 |
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.
Diffstat (limited to 'gcc/gcov.cc')
0 files changed, 0 insertions, 0 deletions