Re: eh_frame confusion

From: Naveen N. Rao
Date: Mon Mar 02 2020 - 12:17:31 EST


Segher Boessenkool wrote:
On Mon, Mar 02, 2020 at 11:56:05AM +0100, Rasmus Villemoes wrote:
I'm building a ppc32 kernel, and noticed that after upgrading from gcc-7
to gcc-8 all object files now end up having .eh_frame section.

Since GCC 8, we enable -fasynchronous-unwind-tables by default for
PowerPC. See https://gcc.gnu.org/r259298 .

For
vmlinux, that's not a problem, because they all get discarded in
arch/powerpc/kernel/vmlinux.lds.S . However, they stick around in
modules, which doesn't seem to be useful - given that everything worked
just fine with gcc-7, and I don't see anything in the module loader that
handles .eh_frame.

It is useful for debugging. Not many people debug the kernel like this,
of course.

I'm trying to understand if we need that. Other architectures seems to pass -fasynchronous-unwind-tables only for the vdso, but disable it for the kernel build. I suppose we can do the same.

If using -fno-asynchronous-unwind-tables, would crash/perf have problems?

- Naveen