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\"
next prev parent 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.