Re: [PATCH 0/2] Stop generating .eh_frame sections

From: Nathan Chancellor
Date: Sun Feb 23 2020 - 23:16:13 EST


On Sun, Feb 23, 2020 at 02:37:13PM -0500, Arvind Sankar wrote:
> In three places in the x86 kernel we are currently generating .eh_frame
> sections only to discard them later via linker script. This is in the
> boot code (setup.elf), the realmode trampoline (realmode.elf) and the
> compressed kernel.
>
> Implement Fangrui and Nick's suggestion [1] to fix KBUILD_CFLAGS by
> adding -fno-asynchronous-unwind-tables to avoid generating .eh_frame
> sections in the first place, rather than discarding it in the linker
> script.
>
> Arvind Sankar (2):
> arch/x86: Use -fno-asynchronous-unwind-tables to suppress .eh_frame sections
> arch/x86: Drop unneeded linker script discard of .eh_frame
>
> arch/x86/boot/Makefile | 1 +
> arch/x86/boot/compressed/Makefile | 1 +
> arch/x86/boot/setup.ld | 1 -
> arch/x86/kernel/vmlinux.lds.S | 3 ---
> arch/x86/realmode/rm/Makefile | 1 +
> arch/x86/realmode/rm/realmode.lds.S | 1 -
> drivers/firmware/efi/libstub/Makefile | 3 ++-
> 7 files changed, 5 insertions(+), 6 deletions(-)
>
> --
> 2.24.1
>

With both of these patches applied on top of next-20200221 and a revert
of commit e11831d0ada3 ("x86/boot/compressed: Remove unnecessary
sections from bzImage"), I do not see any .eh_frame sections in the
following files:

$ readelf -S arch/x86/boot/setup.elf \
arch/x86/realmode/rm/realmode.elf \
arch/x86/boot/compressed/vmlinux \
vmlinux |& grep eh_frame

Additionally, I can see -fno-asynchronous-unwind-tables get added to
files that didn't previously have it.

Reviewed-by: Nathan Chancellor <natechancellor@xxxxxxxxx>
Tested-by: Nathan Chancellor <natechancellor@xxxxxxxxx>