diff --git a/openwrt/target/linux/linux-2.4/patches/generic/006-extra_optimization.patch b/openwrt/target/linux/linux-2.4/patches/generic/006-extra_optimization.patch new file mode 100644 index 0000000000..5ae25cbfb7 --- /dev/null +++ b/openwrt/target/linux/linux-2.4/patches/generic/006-extra_optimization.patch @@ -0,0 +1,24 @@ +--- linux-2.4.30/Makefile 2005-10-23 20:52:56.813948000 +0200 ++++ linux.dev/Makefile 2005-10-23 20:53:12.482927250 +0200 +@@ -89,6 +89,8 @@ + # standard CFLAGS + # + ++check_gcc = $(shell if $(CC) $(1) -S -o /dev/null -xc /dev/null > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi) ++ + CPPFLAGS := -D__KERNEL__ -I$(HPATH) + + CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes -Wno-trigraphs -Os \ +@@ -100,6 +102,12 @@ + endif + AFLAGS := -D__ASSEMBLY__ $(CPPFLAGS) + ++CFLAGS += $(call check_gcc, -funit-at-a-time,) ++ ++ ++ ++ ++ + # + # ROOT_DEV specifies the default root-device when making the image. + # This can be either FLOPPY, CURRENT, /dev/xxxx or empty, in which case diff --git a/openwrt/target/linux/linux-2.6/patches/generic/004-extra_optimization.patch b/openwrt/target/linux/linux-2.6/patches/generic/004-extra_optimization.patch new file mode 100644 index 0000000000..805d2f0ea9 --- /dev/null +++ b/openwrt/target/linux/linux-2.6/patches/generic/004-extra_optimization.patch @@ -0,0 +1,12 @@ +--- linux-2.6.12.5/Makefile.old 2005-10-23 22:56:29.017270000 +0200 ++++ linux-2.6.12.5/Makefile 2005-10-23 22:57:23.226138500 +0200 +@@ -533,6 +533,9 @@ + NOSTDINC_FLAGS += -nostdinc -isystem $(shell $(CC) -print-file-name=include) + CHECKFLAGS += $(NOSTDINC_FLAGS) + ++# improve gcc optimization ++CFLAGS += $(call cc-option,-funit-at-a-time,) ++ + # warn about C99 declaration after statement + CFLAGS += $(call cc-option,-Wdeclaration-after-statement,) + diff --git a/openwrt/toolchain/Config.in b/openwrt/toolchain/Config.in index fd906f05f6..67a331f048 100644 --- a/openwrt/toolchain/Config.in +++ b/openwrt/toolchain/Config.in @@ -24,5 +24,5 @@ config BR2_SOFT_FLOAT config BR2_TARGET_OPTIMIZATION string - default "-Os -pipe -mips32 -mtune=mips32" + default "-Os -pipe -mips32 -mtune=mips32 -funit-at-a-time" diff --git a/openwrt/toolchain/Config.in.devel b/openwrt/toolchain/Config.in.devel index c7ad48f7e4..2f2bbc426d 100644 --- a/openwrt/toolchain/Config.in.devel +++ b/openwrt/toolchain/Config.in.devel @@ -37,8 +37,8 @@ config BR2_SOFT_FLOAT config BR2_TARGET_OPTIMIZATION string "Target Optimizations" - default "-Os -pipe -march=i486" if BR2_i386 - default "-Os -pipe -mips32 -mtune=mips32" if BR2_mipsel + default "-Os -pipe -march=i486 -funit-at-a-time" if BR2_i386 + default "-Os -pipe -mips32 -mtune=mips32 -funit-at-a-time" if BR2_mipsel help Optimizations to use when building for the target host.