From d53eec088e43eca8161c16adb56dde954141e2d5 Mon Sep 17 00:00:00 2001 From: nbd Date: Fri, 28 Dec 2012 19:17:19 +0000 Subject: [PATCH] mips: use -mno-branch-likely for kernel and userspace, saves ~11k kernel size after lzma and ~12k squashfs size in the default configuration git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34909 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- include/target.mk | 2 +- target/linux/ar71xx/Makefile | 2 +- .../linux/generic/patches-3.6/302-mips_no_branch_likely.patch | 11 +++++++++++ target/linux/generic/patches-3.6/305-mips_module_reloc.patch | 2 +- .../linux/generic/patches-3.7/302-mips_no_branch_likely.patch | 11 +++++++++++ target/linux/lantiq/Makefile | 2 +- target/linux/ramips/Makefile | 2 +- 7 files changed, 27 insertions(+), 5 deletions(-) create mode 100644 target/linux/generic/patches-3.6/302-mips_no_branch_likely.patch create mode 100644 target/linux/generic/patches-3.7/302-mips_no_branch_likely.patch diff --git a/include/target.mk b/include/target.mk index 61cdf0640e..4f31aaf170 100644 --- a/include/target.mk +++ b/include/target.mk @@ -193,7 +193,7 @@ ifeq ($(DUMP),1) DEFAULT_CFLAGS_i386=-O2 -pipe -march=i486 -fno-caller-saves DEFAULT_CFLAGS_x86_64=-O2 -pipe -march=athlon64 -fno-caller-saves DEFAULT_CFLAGS_m68k=-Os -pipe -mcfv4e -fno-caller-saves - DEFAULT_CFLAGS_mips=-Os -pipe -mips32 -mtune=mips32 -fno-caller-saves + DEFAULT_CFLAGS_mips=-Os -pipe -mips32 -mtune=mips32 -fno-caller-saves -mno-branch-likely DEFAULT_CFLAGS_mipsel=$(DEFAULT_CFLAGS_mips) DEFAULT_CFLAGS_mips64=-Os -pipe -mips64 -mtune=mips64 -mabi=64 -fno-caller-saves DEFAULT_CFLAGS_mips64el=$(DEFAULT_CFLAGS_mips64) diff --git a/target/linux/ar71xx/Makefile b/target/linux/ar71xx/Makefile index 73d90e37b1..fe8826f071 100644 --- a/target/linux/ar71xx/Makefile +++ b/target/linux/ar71xx/Makefile @@ -10,7 +10,7 @@ ARCH:=mips BOARD:=ar71xx BOARDNAME:=Atheros AR7xxx/AR9xxx FEATURES:=squashfs jffs2 targz -CFLAGS:=-Os -pipe -mips32r2 -mtune=mips32r2 -fno-caller-saves +CFLAGS:=-Os -pipe -mips32r2 -mtune=mips32r2 -fno-caller-saves -mno-branch-likely SUBTARGETS:=generic nand LINUX_VERSION:=3.6.11 diff --git a/target/linux/generic/patches-3.6/302-mips_no_branch_likely.patch b/target/linux/generic/patches-3.6/302-mips_no_branch_likely.patch new file mode 100644 index 0000000000..1da9540050 --- /dev/null +++ b/target/linux/generic/patches-3.6/302-mips_no_branch_likely.patch @@ -0,0 +1,11 @@ +--- a/arch/mips/Makefile ++++ b/arch/mips/Makefile +@@ -87,7 +87,7 @@ all-$(CONFIG_SYS_SUPPORTS_ZBOOT)+= vmlin + # machines may also. Since BFD is incredibly buggy with respect to + # crossformat linking we rely on the elf2ecoff tool for format conversion. + # +-cflags-y += -G 0 -mno-abicalls -fno-pic -pipe ++cflags-y += -G 0 -mno-abicalls -fno-pic -pipe -mno-branch-likely + cflags-y += -msoft-float + LDFLAGS_vmlinux += -G 0 -static -n -nostdlib + KBUILD_AFLAGS_MODULE += -mlong-calls diff --git a/target/linux/generic/patches-3.6/305-mips_module_reloc.patch b/target/linux/generic/patches-3.6/305-mips_module_reloc.patch index fea4a00129..a2738dca7e 100644 --- a/target/linux/generic/patches-3.6/305-mips_module_reloc.patch +++ b/target/linux/generic/patches-3.6/305-mips_module_reloc.patch @@ -1,7 +1,7 @@ --- a/arch/mips/Makefile +++ b/arch/mips/Makefile @@ -90,8 +90,8 @@ all-$(CONFIG_SYS_SUPPORTS_ZBOOT)+= vmlin - cflags-y += -G 0 -mno-abicalls -fno-pic -pipe + cflags-y += -G 0 -mno-abicalls -fno-pic -pipe -mno-branch-likely cflags-y += -msoft-float LDFLAGS_vmlinux += -G 0 -static -n -nostdlib -KBUILD_AFLAGS_MODULE += -mlong-calls diff --git a/target/linux/generic/patches-3.7/302-mips_no_branch_likely.patch b/target/linux/generic/patches-3.7/302-mips_no_branch_likely.patch new file mode 100644 index 0000000000..1da9540050 --- /dev/null +++ b/target/linux/generic/patches-3.7/302-mips_no_branch_likely.patch @@ -0,0 +1,11 @@ +--- a/arch/mips/Makefile ++++ b/arch/mips/Makefile +@@ -87,7 +87,7 @@ all-$(CONFIG_SYS_SUPPORTS_ZBOOT)+= vmlin + # machines may also. Since BFD is incredibly buggy with respect to + # crossformat linking we rely on the elf2ecoff tool for format conversion. + # +-cflags-y += -G 0 -mno-abicalls -fno-pic -pipe ++cflags-y += -G 0 -mno-abicalls -fno-pic -pipe -mno-branch-likely + cflags-y += -msoft-float + LDFLAGS_vmlinux += -G 0 -static -n -nostdlib + KBUILD_AFLAGS_MODULE += -mlong-calls diff --git a/target/linux/lantiq/Makefile b/target/linux/lantiq/Makefile index d0eb2df1be..84958df7f6 100644 --- a/target/linux/lantiq/Makefile +++ b/target/linux/lantiq/Makefile @@ -13,7 +13,7 @@ SUBTARGETS=xway ase falcon LINUX_VERSION:=3.7.1 -CFLAGS=-Os -pipe -mips32r2 -mtune=mips32r2 -fno-caller-saves +CFLAGS=-Os -pipe -mips32r2 -mtune=mips32r2 -fno-caller-saves -mno-branch-likely define Target/Description Build firmware images for Lantiq SoC diff --git a/target/linux/ramips/Makefile b/target/linux/ramips/Makefile index e165da6f23..ba00c92682 100644 --- a/target/linux/ramips/Makefile +++ b/target/linux/ramips/Makefile @@ -10,7 +10,7 @@ ARCH:=mipsel BOARD:=ramips BOARDNAME:=Ralink RT288x/RT3xxx SUBTARGETS:=rt288x rt305x rt3883 -CFLAGS:=-Os -pipe -mips32r2 -mtune=mips32r2 -fno-caller-saves +CFLAGS:=-Os -pipe -mips32r2 -mtune=mips32r2 -fno-caller-saves -mno-branch-likely FEATURES:=squashfs LINUX_VERSION:=3.6.11 -- 2.11.0