Messages in this thread Patch in this message | | | Date | Tue, 26 Aug 2003 00:47:17 +0200 | From | Adrian Bunk <> | Subject | [2.6 patch] add a config option for -Os |
| |
The patch below adds a config option for compiling the kernel with -Os.
Compared to the last patch, the option moved to the embedded to the General Setup menu and depends on EXPERIMENTAL instead of EMBEDDED (retionale: it might even produce a faster kernel but it's less tested).
I removed the special cases in the arm, arm26 and h8300 Makefiles, users on these architectures can now use OPTIMIZE_FOR_SIZE.
Compiling with this option enabled produced a working kernel for me on i386.
cu Adrian
--- linux-2.6.0-test4/init/Kconfig.old 2003-08-24 14:51:15.000000000 +0200 +++ linux-2.6.0-test4/init/Kconfig 2003-08-24 14:55:45.000000000 +0200 @@ -48,6 +48,15 @@ menu "General setup" +config OPTIMIZE_FOR_SIZE + bool "Optimize for size" if EXPERIMENTAL + default n + help + Enabling this option will pass "-Os" instead of "-O2" to gcc + resulting in a smaller kernel. + + If unsure, say N. + config SWAP bool "Support for paging of anonymous memory" depends on MMU --- linux-2.6.0-test3/Makefile.old 2003-08-11 01:34:41.000000000 +0200 +++ linux-2.6.0-test3/Makefile 2003-08-11 01:37:16.000000000 +0200 @@ -223,7 +223,7 @@ NOSTDINC_FLAGS = -nostdinc -iwithprefix include CPPFLAGS := -D__KERNEL__ -Iinclude -CFLAGS := -Wall -Wstrict-prototypes -Wno-trigraphs -O2 \ +CFLAGS := -Wall -Wstrict-prototypes -Wno-trigraphs \ -fno-strict-aliasing -fno-common AFLAGS := -D__ASSEMBLY__ @@ -318,6 +318,12 @@ -include .config.cmd +ifdef CONFIG_OPTIMIZE_FOR_SIZE +CFLAGS += -Os +else +CFLAGS += -O2 +endif + ifndef CONFIG_FRAME_POINTER CFLAGS += -fomit-frame-pointer endif --- linux-2.6.0-test4/arch/arm26/Makefile.old 2003-08-24 14:50:45.000000000 +0200 +++ linux-2.6.0-test4/arch/arm26/Makefile 2003-08-24 14:56:15.000000000 +0200 @@ -13,7 +13,6 @@ OBJCOPYFLAGS :=-O binary -R .note -R .comment -S GZFLAGS :=-9 #CFLAGS +=-pipe -CFLAGS :=$(CFLAGS:-O2=-Os) ifeq ($(CONFIG_FRAME_POINTER),y) CFLAGS +=-fno-omit-frame-pointer -mno-sched-prolog --- linux-2.6.0-test4/arch/arm/Makefile.old 2003-08-24 14:56:41.000000000 +0200 +++ linux-2.6.0-test4/arch/arm/Makefile 2003-08-24 14:56:57.000000000 +0200 @@ -14,8 +14,6 @@ GZFLAGS :=-9 #CFLAGS +=-pipe -CFLAGS :=$(CFLAGS:-O2=-Os) - ifeq ($(CONFIG_FRAME_POINTER),y) CFLAGS +=-fno-omit-frame-pointer -mapcs -mno-sched-prolog endif --- linux-2.6.0-test4/arch/h8300/Makefile.old 2003-08-24 14:59:42.000000000 +0200 +++ linux-2.6.0-test4/arch/h8300/Makefile 2003-08-24 15:00:18.000000000 +0200 @@ -34,7 +34,7 @@ ldflags-$(CONFIG_CPU_H8S) := -mh8300self CFLAGS += $(cflags-y) -CFLAGS += -mint32 -fno-builtin -Os +CFLAGS += -mint32 -fno-builtin CFLAGS += -g CFLAGS += -D__linux__ CFLAGS += -DUTS_SYSNAME=\"uClinux\" - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |