diff options
| author | florian <florian@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2013-04-05 12:36:12 +0000 | 
|---|---|---|
| committer | florian <florian@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2013-04-05 12:36:12 +0000 | 
| commit | be92401dd332dde5e1a009a0bdd9c8ce01be71a1 (patch) | |
| tree | ac9d19555150e98419eb2e00f2e7a2caeaed1b5b | |
| parent | 6d9472818ea83e5dfac4dafa2773907dfa11806f (diff) | |
buildroot: allow enabling MIPS16 user-space build
Enabling MIPS16 is made conditional on advertising the "mips16" feature
for a specific target since it requires support from the CPU
(HAS_MIPS16) and the actual use of MIPS16 for building packages
(USE_MIPS16).
Signed-off-by: Florian Fainelli <florian@openwrt.org>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@36202 3c298f89-4303-0410-b956-a3cf2f4a3e73
| -rw-r--r-- | Config.in | 11 | ||||
| -rw-r--r-- | rules.mk | 3 | ||||
| -rwxr-xr-x | scripts/metadata.pl | 1 | ||||
| -rw-r--r-- | target/Config.in | 4 | 
4 files changed, 19 insertions, 0 deletions
@@ -681,6 +681,17 @@ menuconfig TARGET_OPTIONS  		  Most people will answer N. +	config USE_MIPS16 +		bool "Build packages with MIPS16 instructions" if TARGET_OPTIONS +		depends on HAS_MIPS16 +		help +		   If your target CPU does support the MIPS16 instruction set +		   and you want to use it for packages, enable this option. +		   MIPS16 produces smaller binaries thus reducing pressure on +		   caches and TLB. + +		   Most people will answer N. +  source "toolchain/Config.in"  source "target/imagebuilder/Config.in" @@ -63,6 +63,9 @@ endif  ifneq ($(filter -mips%r2,$(TARGET_OPTIMIZATION)),)    ARCH_SUFFIX:=_r2  endif +ifdef CONFIG_USE_MIPS16 +   TARGET_OPTIMIZATION+= -minterlink-mips16 -mips16 +endif  ifneq ($(findstring -mips16,$(TARGET_OPTIMIZATION)),)    TARGET_ASFLAGS_OVERRIDE:=-mno-mips16    ARCH_SUFFIX:= $(ARCH_SUFFIX)_m16 diff --git a/scripts/metadata.pl b/scripts/metadata.pl index b04cd8cc3..6249127e3 100755 --- a/scripts/metadata.pl +++ b/scripts/metadata.pl @@ -174,6 +174,7 @@ sub target_config_features(@) {  		/ramdisk/ and $ret .= "\tselect USES_INITRAMFS\n";  		/powerpc64/ and $ret .= "\tselect powerpc64\n";  		/nommu/ and $ret .= "\tselect NOMMU\n"; +		/mips16/ and $ret .= "\tselect HAS_MIPS16\n";  	}  	return $ret;  } diff --git a/target/Config.in b/target/Config.in index 31f3ced51..79a91b1af 100644 --- a/target/Config.in +++ b/target/Config.in @@ -66,6 +66,10 @@ config PROFILE_KCONFIG  config NOMMU  	bool +config HAS_MIPS16 +	depends (mips || mipsel || mips64 || mips64el) +	bool +  # Architecture selection  config arm  | 
