diff options
author | Sergey Vlasov <vsu@altlinux.ru> | 2006-06-26 07:59:32 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-06-26 13:48:21 -0400 |
commit | 409f89e0efcfea1a8b25f9c4a050c0cf1f1cb87c (patch) | |
tree | 21ce71ccd66e34c6a9be99da0703ba808b773eca /arch/x86_64/Makefile | |
parent | 899ced0dd9457b9c349663ca4cb4ec09167728a6 (diff) |
[PATCH] x86_64: Do not use -ffunction-sections for modules
Currently CONFIG_REORDER uses -ffunction-sections for all code;
however, creating a separate section for each function is not useful
for modules and just adds bloat. Moving this option from CFLAGS to
CFLAGS_KERNEL shrinks module object files (e.g., the module tree for a
kernel built with most drivers as modules shrinked from 54M to 46M),
and decreases the number of sysfs files in /sys/module/*/sections/
directories.
Signed-off-by: Sergey Vlasov <vsu@altlinux.ru>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/x86_64/Makefile')
-rw-r--r-- | arch/x86_64/Makefile | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/x86_64/Makefile b/arch/x86_64/Makefile index e573e2ab5510..431bb4bc36cd 100644 --- a/arch/x86_64/Makefile +++ b/arch/x86_64/Makefile | |||
@@ -27,6 +27,7 @@ LDFLAGS_vmlinux := | |||
27 | CHECKFLAGS += -D__x86_64__ -m64 | 27 | CHECKFLAGS += -D__x86_64__ -m64 |
28 | 28 | ||
29 | cflags-y := | 29 | cflags-y := |
30 | cflags-kernel-y := | ||
30 | cflags-$(CONFIG_MK8) += $(call cc-option,-march=k8) | 31 | cflags-$(CONFIG_MK8) += $(call cc-option,-march=k8) |
31 | cflags-$(CONFIG_MPSC) += $(call cc-option,-march=nocona) | 32 | cflags-$(CONFIG_MPSC) += $(call cc-option,-march=nocona) |
32 | cflags-$(CONFIG_GENERIC_CPU) += $(call cc-option,-mtune=generic) | 33 | cflags-$(CONFIG_GENERIC_CPU) += $(call cc-option,-mtune=generic) |
@@ -35,7 +36,7 @@ cflags-y += -m64 | |||
35 | cflags-y += -mno-red-zone | 36 | cflags-y += -mno-red-zone |
36 | cflags-y += -mcmodel=kernel | 37 | cflags-y += -mcmodel=kernel |
37 | cflags-y += -pipe | 38 | cflags-y += -pipe |
38 | cflags-$(CONFIG_REORDER) += -ffunction-sections | 39 | cflags-kernel-$(CONFIG_REORDER) += -ffunction-sections |
39 | # this makes reading assembly source easier, but produces worse code | 40 | # this makes reading assembly source easier, but produces worse code |
40 | # actually it makes the kernel smaller too. | 41 | # actually it makes the kernel smaller too. |
41 | cflags-y += -fno-reorder-blocks | 42 | cflags-y += -fno-reorder-blocks |
@@ -55,6 +56,7 @@ cflags-y += $(call cc-option,-funit-at-a-time) | |||
55 | cflags-y += $(call cc-option,-mno-sse -mno-mmx -mno-sse2 -mno-3dnow,) | 56 | cflags-y += $(call cc-option,-mno-sse -mno-mmx -mno-sse2 -mno-3dnow,) |
56 | 57 | ||
57 | CFLAGS += $(cflags-y) | 58 | CFLAGS += $(cflags-y) |
59 | CFLAGS_KERNEL += $(cflags-kernel-y) | ||
58 | AFLAGS += -m64 | 60 | AFLAGS += -m64 |
59 | 61 | ||
60 | head-y := arch/x86_64/kernel/head.o arch/x86_64/kernel/head64.o arch/x86_64/kernel/init_task.o | 62 | head-y := arch/x86_64/kernel/head.o arch/x86_64/kernel/head64.o arch/x86_64/kernel/init_task.o |