diff options
author | Kevin Hao <haokexin@gmail.com> | 2015-01-15 12:07:33 +0000 |
---|---|---|
committer | Catalin Marinas <catalin.marinas@arm.com> | 2015-01-15 15:52:21 +0000 |
commit | d67703a8a69eecc8367bb9f848640b9efd430337 (patch) | |
tree | ae63f78378941268b3001d763f5ec7cde078e040 | |
parent | 0ce339a9e60d417e2747ff7c4869d9691a606e49 (diff) | |
download | linux-d67703a8a69eecc8367bb9f848640b9efd430337.tar.gz linux-d67703a8a69eecc8367bb9f848640b9efd430337.tar.bz2 linux-d67703a8a69eecc8367bb9f848640b9efd430337.zip |
arm64: kill off the libgcc dependency
The arm64 kernel builds fine without the libgcc. Actually it should not
be used at all in the kernel. The following are the reasons indicated
by Russell King:
Although libgcc is part of the compiler, libgcc is built with the
expectation that it will be running in userland - it expects to link
to a libc. That's why you can't build libgcc without having the glibc
headers around.
[...]
Meanwhile, having the kernel build the compiler support functions that
it needs ensures that (a) we know what compiler support functions are
being used, (b) we know the implementation of those support functions
are sane for use in the kernel, (c) we can build them with appropriate
compiler flags for best performance, and (d) we remove an unnecessary
dependency on the build toolchain.
Signed-off-by: Kevin Hao <haokexin@gmail.com>
Acked-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
-rw-r--r-- | arch/arm64/Makefile | 3 |
1 files changed, 0 insertions, 3 deletions
diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile index 1c43cec971b5..a20c28348be4 100644 --- a/arch/arm64/Makefile +++ b/arch/arm64/Makefile @@ -15,8 +15,6 @@ CPPFLAGS_vmlinux.lds = -DTEXT_OFFSET=$(TEXT_OFFSET) OBJCOPYFLAGS :=-O binary -R .note -R .note.gnu.build-id -R .comment -S GZFLAGS :=-9 -LIBGCC := $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name) - KBUILD_DEFCONFIG := defconfig KBUILD_CFLAGS += -mgeneral-regs-only @@ -50,7 +48,6 @@ core-$(CONFIG_KVM) += arch/arm64/kvm/ core-$(CONFIG_XEN) += arch/arm64/xen/ core-$(CONFIG_CRYPTO) += arch/arm64/crypto/ libs-y := arch/arm64/lib/ $(libs-y) -libs-y += $(LIBGCC) libs-$(CONFIG_EFI_STUB) += drivers/firmware/efi/libstub/ # Default target when executing plain make |