Eliminate the .eh_frame sections from the aarch64 vmlinux and kernel modules
authorWilliam Cohen <wcohen@redhat.com>
Fri, 22 Jan 2016 03:56:26 +0000 (22:56 -0500)
committerAlex Shi <alex.shi@linaro.org>
Wed, 11 May 2016 14:19:08 +0000 (22:19 +0800)
By default the aarch64 gcc generates .eh_frame sections.  Unlike
.debug_frame sections, the .eh_frame sections are loaded into memory
when the associated code is loaded.  On an example kernel being built
with this default the .eh_frame section in vmlinux used an extra 1.7MB
of memory.  The x86 disables the creation of the .eh_frame section.
The aarch64 should probably do the same to save some memory.

Signed-off-by: William Cohen <wcohen@redhat.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
(cherry picked from commit 728dabd6d1751cf5e0f8e0535891393da62396e9)
Signed-off-by: Alex Shi <alex.shi@linaro.org>
Conflicts:
pick 67dfa1751 arm64: errata: Add -mpc-relative-literal-loads
in arch/arm64/Makefile

arch/arm64/Makefile

index b6c90e5006e45ae01654c3b5867c3a49910dc54e..548a2939d7e6cf9bf462e4c0e4407fc805df78f3 100644 (file)
@@ -28,6 +28,7 @@ endif
 
 KBUILD_CFLAGS  += -mgeneral-regs-only $(lseinstr)
 KBUILD_CFLAGS  += $(call cc-option, -mpc-relative-literal-loads)
+KBUILD_CFLAGS  += -fno-asynchronous-unwind-tables
 KBUILD_AFLAGS  += $(lseinstr)
 
 ifeq ($(CONFIG_CPU_BIG_ENDIAN), y)