On Tue, Oct 27, 2020 at 08:33:00PM +0100, Ard Biesheuvel wrote: > On Tue, 27 Oct 2020 at 20:25, Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> wrote: > > > > > > When I see .eh_frame, I think -fno-asynchronous-unwind-tables is > > > missing from someone's KBUILD_CFLAGS. > > > But I don't see anything curious in kernel/bpf/Makefile, unless > > > cc-disable-warning is somehow broken. > > > > I tracked it down to kernel/bpf/core.c:___bpf_prog_run() being tagged > > with __no_fgcse aka __attribute__((optimize("-fno-gcse"))). > > > > Even if the function is trivially empty ("return 0;"), a ".eh_frame" section > > is generated. Removing the __no_fgcse tag fixes that. > > > > > Given that it was added for issues related to retpolines, ORC and > objtool, it should be safe to make that annotation x86-only. The optimize attribute is not meant for production use. I had mentioned this at the time but it got lost: the optimize attribute apparently does not add options, it replaces them completely. So I'm guessing this one is dropping the -fno-asynchronous-unwind-tables and causing the eh_frame sections, though I don't know why that doesn't cause eh_frame on x86? https://lore.kernel.org/lkml/alpine.LSU.2.21.2004151445520.11688@xxxxxxxxxxxxx/