public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [2.6 patch] add a config option for -Os
@ 2003-08-25 22:47 Adrian Bunk
  2003-08-26 14:41 ` Yoshinori Sato
  0 siblings, 1 reply; 3+ messages in thread
From: Adrian Bunk @ 2003-08-25 22:47 UTC (permalink / raw)
  To: linux-kernel; +Cc: spyro, linux-arm-kernel, Yoshinori Sato

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\"

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [2.6 patch] add a config option for -Os
  2003-08-25 22:47 [2.6 patch] add a config option for -Os Adrian Bunk
@ 2003-08-26 14:41 ` Yoshinori Sato
  2003-08-26 14:58   ` Valdis.Kletnieks
  0 siblings, 1 reply; 3+ messages in thread
From: Yoshinori Sato @ 2003-08-26 14:41 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: linux kernel Mailing List

At Tue, 26 Aug 2003 00:47:17 +0200,
Adrian Bunk wrote:
> 
> 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.
> 

An idea do not change -O2, and to add specification of -Os to with "OPTIMIZE_SIZE" ?
If there are a few the ones, degradation of speed means.

vmlinux  size of h8300
        -O2     -Os   -O2&-Os
.text  561200  554368  555088
.data   59148   58612   58868
.bss    45244   45260   45244
total  665592  658240  659200

-- 
Yoshinori Sato
<ysato@users.sourceforge.jp>

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [2.6 patch] add a config option for -Os
  2003-08-26 14:41 ` Yoshinori Sato
@ 2003-08-26 14:58   ` Valdis.Kletnieks
  0 siblings, 0 replies; 3+ messages in thread
From: Valdis.Kletnieks @ 2003-08-26 14:58 UTC (permalink / raw)
  To: Yoshinori Sato; +Cc: Adrian Bunk, linux kernel Mailing List

[-- Attachment #1: Type: text/plain, Size: 542 bytes --]

On Tue, 26 Aug 2003 23:41:09 +0900, Yoshinori Sato said:

>         -O2     -Os   -O2&-Os
> .text  561200  554368  555088
> .data   59148   58612   58868
> .bss    45244   45260   45244
> total  665592  658240  659200

Note that specifying -O2 *and* -Os together is probably counter-productive.

'info gcc' says:

    If you use multiple `-O' options, with or without level numbers,
     the last such option is the one that is effective.

You might want to investigate why the 3rd column of numbers is different
from both of the first two.


[-- Attachment #2: Type: application/pgp-signature, Size: 226 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2003-08-26 15:00 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-08-25 22:47 [2.6 patch] add a config option for -Os Adrian Bunk
2003-08-26 14:41 ` Yoshinori Sato
2003-08-26 14:58   ` Valdis.Kletnieks

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox