(In reply to Aaron Puchert from comment #10) > Internal headers are probably used to get the layout of certain data > structures. Which is probably because bcc predates BPF CO-RE (Compile Once – Run Everywhere). The newer bpftrace with CO-RE doesn't use Clang but BPF Type Format (BTF) to find the right offsets. > I think it predates the BPF backend in GCC. LWN wrote about this last month (https://lwn.net/Articles/990343/): > The generation of binary code for the kernel's BPF virtual machine has been > limited to the Clang compiler since the beginning; even developers who use > GCC to build kernels must use Clang to compile to BPF. Work has been underway > for some years on adding a BPF backend to GCC as well; the developers > involved ran a session at the 2024 GNU Tools Cauldron to provide an update > on that project. It would seem that the BPF backend is close to being ready > for production use. So it's probably still a bit too fresh for other projects to support it.