[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>
This commit is contained in:
parent
899ced0dd9
commit
409f89e0ef
|
@ -27,6 +27,7 @@ LDFLAGS_vmlinux :=
|
||||||
CHECKFLAGS += -D__x86_64__ -m64
|
CHECKFLAGS += -D__x86_64__ -m64
|
||||||
|
|
||||||
cflags-y :=
|
cflags-y :=
|
||||||
|
cflags-kernel-y :=
|
||||||
cflags-$(CONFIG_MK8) += $(call cc-option,-march=k8)
|
cflags-$(CONFIG_MK8) += $(call cc-option,-march=k8)
|
||||||
cflags-$(CONFIG_MPSC) += $(call cc-option,-march=nocona)
|
cflags-$(CONFIG_MPSC) += $(call cc-option,-march=nocona)
|
||||||
cflags-$(CONFIG_GENERIC_CPU) += $(call cc-option,-mtune=generic)
|
cflags-$(CONFIG_GENERIC_CPU) += $(call cc-option,-mtune=generic)
|
||||||
|
@ -35,7 +36,7 @@ cflags-y += -m64
|
||||||
cflags-y += -mno-red-zone
|
cflags-y += -mno-red-zone
|
||||||
cflags-y += -mcmodel=kernel
|
cflags-y += -mcmodel=kernel
|
||||||
cflags-y += -pipe
|
cflags-y += -pipe
|
||||||
cflags-$(CONFIG_REORDER) += -ffunction-sections
|
cflags-kernel-$(CONFIG_REORDER) += -ffunction-sections
|
||||||
# this makes reading assembly source easier, but produces worse code
|
# this makes reading assembly source easier, but produces worse code
|
||||||
# actually it makes the kernel smaller too.
|
# actually it makes the kernel smaller too.
|
||||||
cflags-y += -fno-reorder-blocks
|
cflags-y += -fno-reorder-blocks
|
||||||
|
@ -55,6 +56,7 @@ cflags-y += $(call cc-option,-funit-at-a-time)
|
||||||
cflags-y += $(call cc-option,-mno-sse -mno-mmx -mno-sse2 -mno-3dnow,)
|
cflags-y += $(call cc-option,-mno-sse -mno-mmx -mno-sse2 -mno-3dnow,)
|
||||||
|
|
||||||
CFLAGS += $(cflags-y)
|
CFLAGS += $(cflags-y)
|
||||||
|
CFLAGS_KERNEL += $(cflags-kernel-y)
|
||||||
AFLAGS += -m64
|
AFLAGS += -m64
|
||||||
|
|
||||||
head-y := arch/x86_64/kernel/head.o arch/x86_64/kernel/head64.o arch/x86_64/kernel/init_task.o
|
head-y := arch/x86_64/kernel/head.o arch/x86_64/kernel/head64.o arch/x86_64/kernel/init_task.o
|
||||||
|
|
Loading…
Reference in New Issue