All of lore.kernel.org
 help / color / mirror / Atom feed
From: Adrian Bunk <bunk@fs.tum.de>
To: Andrew Morton <akpm@osdl.org>,
	linux-kernel@vger.kernel.org,
	Yoshinori Sato <ysato@users.sourceforge.jp>
Subject: Re: [2.6 patch] add a config option for -Os compilation
Date: Thu, 25 Sep 2003 16:38:45 +0200	[thread overview]
Message-ID: <20030925143844.GY15696@fs.tum.de> (raw)
In-Reply-To: <20030914155245.A675@flint.arm.linux.org.uk>

On Sun, Sep 14, 2003 at 03:52:45PM +0100, Russell King wrote:
> 
> But it doesn't make sense - you include a generic configuration option
> which people will see, yet it makes no effect on ARM - seems to be rather
> silly putting it there in the first place.
> 
> Also, do users particularly care what -Os and -O2 mean?

The "If unsure, say N." should take care of it. People who really need 
small kernels usually know what -Os means.

> Maybe you need to change init/Kconfig to be something like the following,
> and reinstate the change to the ARM makefile:
> 
> config OPTIMIZE_FOR_SIZE
> 	bool "Optimize for size" if EXPERIMENTAL
> 	default n if !ARM
> 	default y if ARM

That's a good idea.

The patch below does this for ARM and H8300.
Since there was no H8300 symbol, I added it to arch/h8300/Kconfig 
similar to the symbols on other architectures.

> 	help
> 	  Enabling this option will cause the compiler to reduce the code
> 	  size of the kernel by disabling certain optimisations.  However,
> 	  the resulting kernel may run faster due to more efficient
> 	  cache utilisation.
>...

I don't like this part, it would cause confusion. -O2 is more widely
tested, and though if there might be small improvements on some CPUs
with some compiler versions, it's untested whether -Os might cause worse
performance of some fast path code in any area of the kernel.
OPTIMIZE_FOR_SIZE should, although of low risk, be an "only use it if
you know what you are doing" option.


diffstat output for the patch below:

 Makefile            |    8 +++++++-
 arch/arm/Makefile   |    2 --
 arch/h8300/Kconfig  |    4 ++++
 arch/h8300/Makefile |    2 +-
 init/Kconfig        |   10 ++++++++++
 5 files changed, 22 insertions(+), 4 deletions(-)


cu
Adrian

--- linux-2.6.0-test5-mm4/init/Kconfig.old	2003-09-25 14:38:18.000000000 +0200
+++ linux-2.6.0-test5-mm4/init/Kconfig	2003-09-25 14:47:12.000000000 +0200
@@ -65,6 +65,16 @@
 
 menu "General setup"
 
+config OPTIMIZE_FOR_SIZE
+	bool "Optimize for size" if EXPERIMENTAL
+	default y if ARM || H8300
+	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-test5-mm4/Makefile.old	2003-09-25 14:38:18.000000000 +0200
+++ linux-2.6.0-test5-mm4/Makefile	2003-09-25 14:40:26.000000000 +0200
@@ -274,7 +274,7 @@
 CPPFLAGS        := -D__KERNEL__ -Iinclude \
 		   $(if $(KBUILD_SRC),-Iinclude2 -I$(srctree)/include)
 
-CFLAGS 		:= -Wall -Wstrict-prototypes -Wno-trigraphs -O2 \
+CFLAGS 		:= -Wall -Wstrict-prototypes -Wno-trigraphs \
 	  	   -fno-strict-aliasing -fno-common
 AFLAGS		:= -D__ASSEMBLY__
 
@@ -421,6 +421,12 @@
 # ---------------------------------------------------------------------------
 
 
+ifdef CONFIG_OPTIMIZE_FOR_SIZE
+CFLAGS		+= -Os
+else
+CFLAGS		+= -O2
+endif
+
 ifndef CONFIG_FRAME_POINTER
 CFLAGS		+= -fomit-frame-pointer
 endif
--- linux-2.6.0-test5-mm4/arch/arm/Makefile.old	2003-09-25 14:38:18.000000000 +0200
+++ linux-2.6.0-test5-mm4/arch/arm/Makefile	2003-09-25 14:40:47.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-test5-mm4/arch/h8300/Kconfig.old	2003-09-25 14:43:27.000000000 +0200
+++ linux-2.6.0-test5-mm4/arch/h8300/Kconfig	2003-09-25 14:43:44.000000000 +0200
@@ -5,6 +5,10 @@
 
 mainmenu "uClinux/h8300 (w/o MMU) Kernel Configuration"
 
+config H8300
+	bool
+	default y
+
 config MMU
 	bool
 	default n
--- linux-2.6.0-test5-mm4/arch/h8300/Makefile.old	2003-09-25 14:38:18.000000000 +0200
+++ linux-2.6.0-test5-mm4/arch/h8300/Makefile	2003-09-25 14:38:24.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\"

  reply	other threads:[~2003-09-25 14:39 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-09-14 12:16 [2.6 patch] add a config option for -Os compilation Adrian Bunk
2003-09-14 12:33 ` Russell King
2003-09-14 13:21   ` Adrian Bunk
2003-09-14 14:52     ` Russell King
2003-09-25 14:38       ` Adrian Bunk [this message]
2003-09-25 18:11         ` Sam Ravnborg
2003-09-26 11:44           ` Russell King
2003-09-26 22:36           ` Adrian Bunk
2003-09-14 13:53 ` Wade
2003-09-14 14:57   ` Alan Cox
2003-09-15 15:15     ` Martin J. Bligh
2003-10-15 22:50 Adrian Bunk
2003-10-15 23:12 ` Andrew Morton
2003-10-15 23:24   ` Adrian Bunk
2003-10-15 23:52     ` Andrew Morton
2003-10-18 10:21       ` Adrian Bunk
2003-10-18 15:45         ` Martin J. Bligh
2003-10-18 17:24           ` Andrew Morton
2003-10-18 17:44             ` Adrian Bunk
2003-10-18 17:57               ` Andrew Morton
2003-10-19 15:43                 ` Martin J. Bligh
2003-10-19 15:59                   ` Adrian Bunk
2003-10-19 16:25                   ` Arjan van de Ven
2003-10-19 18:32                   ` Andrew Morton
2003-10-20 14:27                     ` Martin J. Bligh
2003-10-21  8:22         ` Jan-Benedict Glaw
     [not found] <H2MN.3cm.7@gated-at.bofh.it>
     [not found] ` <H366.3IC.9@gated-at.bofh.it>
     [not found]   ` <H3fO.3VO.13@gated-at.bofh.it>
     [not found]     ` <H3IO.4yt.9@gated-at.bofh.it>
     [not found]       ` <HWvz.5PI.9@gated-at.bofh.it>
     [not found]         ` <I1EP.5QO.1@gated-at.bofh.it>
2003-10-18 17:10           ` Ihar 'Philips' Filipau
     [not found]             ` <20031019113743.GO12423@fs.tum.de>
2003-10-19 14:15               ` Ihar 'Philips' Filipau
2003-10-19 15:40                 ` Martin J. Bligh
     [not found] <20031015225055.GS17986@fs.tum.de.suse.lists.linux.kernel>
     [not found] ` <20031015161251.7de440ab.akpm@osdl.org.suse.lists.linux.kernel>
     [not found]   ` <20031015232440.GU17986@fs.tum.de.suse.lists.linux.kernel>
     [not found]     ` <20031015165205.0cc40606.akpm@osdl.org.suse.lists.linux.kernel>
     [not found]       ` <20031018102127.GE12423@fs.tum.de.suse.lists.linux.kernel>
     [not found]         ` <649730000.1066491920@[10.10.2.4].suse.lists.linux.kernel>
     [not found]           ` <20031018102402.3576af6c.akpm@osdl.org.suse.lists.linux.kernel>
     [not found]             ` <20031018174434.GJ12423@fs.tum.de.suse.lists.linux.kernel>
     [not found]               ` <20031018105733.380ea8d2.akpm@osdl.org.suse.lists.linux.kernel>
2003-10-18 19:19                 ` Andi Kleen
2003-10-19 13:56                   ` Ingo Oeser
2003-10-19 14:09                     ` Michael Buesch
2003-10-19 17:37                     ` Sam Ravnborg
     [not found] <I2Ue.7PG.3@gated-at.bofh.it>
     [not found] ` <I2Ue.7PG.5@gated-at.bofh.it>
     [not found]   ` <I2Ue.7PG.7@gated-at.bofh.it>
     [not found]     ` <I2Ue.7PG.9@gated-at.bofh.it>
     [not found]       ` <I2Ue.7PG.11@gated-at.bofh.it>
     [not found]         ` <I2Ue.7PG.13@gated-at.bofh.it>
     [not found]           ` <I2Ue.7PG.1@gated-at.bofh.it>
     [not found]             ` <ImzK.4TR.25@gated-at.bofh.it>
     [not found]               ` <ImzK.4TR.23@gated-at.bofh.it>
     [not found]                 ` <InYQ.6OJ.21@gated-at.bofh.it>
2003-10-19 16:05                   ` Ihar 'Philips' Filipau
2003-10-19 16:14                     ` Wichert Akkerman
2003-10-19 16:31                       ` Valdis.Kletnieks
2003-10-19 16:57                         ` Maciej Zenczykowski
2003-10-19 18:00                           ` Valdis.Kletnieks
     [not found] <Ioi6.7kG.15@gated-at.bofh.it>
     [not found] ` <Ioi6.7kG.17@gated-at.bofh.it>
     [not found]   ` <Ioi6.7kG.19@gated-at.bofh.it>
     [not found]     ` <Ioi6.7kG.21@gated-at.bofh.it>
     [not found]       ` <Ioi6.7kG.23@gated-at.bofh.it>
     [not found]         ` <Ioi6.7kG.25@gated-at.bofh.it>
     [not found]           ` <Ioi6.7kG.27@gated-at.bofh.it>
     [not found]             ` <Ioi6.7kG.29@gated-at.bofh.it>
     [not found]               ` <Ioi6.7kG.31@gated-at.bofh.it>
     [not found]                 ` <Ioi6.7kG.11@gated-at.bofh.it>
     [not found]                   ` <IorM.7wQ.11@gated-at.bofh.it>
2003-10-19 16:55                     ` Ihar 'Philips' Filipau
     [not found] <Ip4B.8lT.23@gated-at.bofh.it>
     [not found] ` <Ip4B.8lT.25@gated-at.bofh.it>
     [not found]   ` <Ip4B.8lT.27@gated-at.bofh.it>
     [not found]     ` <Ip4B.8lT.29@gated-at.bofh.it>
     [not found]       ` <Ip4B.8lT.31@gated-at.bofh.it>
     [not found]         ` <Ip4B.8lT.33@gated-at.bofh.it>
     [not found]           ` <Ip4B.8lT.35@gated-at.bofh.it>
     [not found]             ` <Ip4B.8lT.37@gated-at.bofh.it>
     [not found]               ` <Ip4B.8lT.39@gated-at.bofh.it>
     [not found]                 ` <Ip4B.8lT.41@gated-at.bofh.it>
     [not found]                   ` <Ip4B.8lT.43@gated-at.bofh.it>
     [not found]                     ` <Ip4B.8lT.21@gated-at.bofh.it>
2003-10-19 17:04                       ` Ihar 'Philips' Filipau

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20030925143844.GY15696@fs.tum.de \
    --to=bunk@fs.tum.de \
    --cc=akpm@osdl.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=ysato@users.sourceforge.jp \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.