config BR2_ARCH_IS_64
       bool

choice
	prompt "Target Architecture"
	default BR2_i386
	help
	  Select the target architecture family to build for.

config BR2_arm
	bool "arm"
config BR2_armeb
	bool "armeb"
config BR2_avr32
	bool "avr32"
	select BR2_SOFT_FLOAT
config BR2_bfin
	bool "bfin"
config BR2_i386
	bool "i386"
config BR2_m68k
	bool "m68k"
	depends on BROKEN # ice in uclibc / inet_ntoa_r
config BR2_mips
	bool "mips"
config BR2_mipsel
	bool "mipsel"
config BR2_powerpc
	bool "powerpc"
config BR2_sh
	bool "superh"
config BR2_sh64
	bool "superh64"
config BR2_sparc
	bool "sparc"
config BR2_x86_64
	bool "x86_64"
	select BR2_ARCH_IS_64
config BR2_xtensa
	bool "xtensa"
endchoice

#
# Keep the variants separate, there's no need to clutter everything else.
# sh is fairly "special" in this regard, as virtually everyone else has
# things kept down to a _sensible_ number of target variants. No such
# luck for sh..
#
choice
	prompt "Target Architecture Variant"
	depends on BR2_arm || BR2_armeb
	default BR2_generic_arm
	help
	  Specific CPU variant to use

config BR2_generic_arm
	bool "generic_arm"
config BR2_arm7tdmi
	bool "arm7tdmi"
config BR2_arm610
	bool "arm610"
config BR2_arm710
	bool "arm710"
config BR2_arm720t
	bool "arm720t"
config BR2_arm920t
	bool "arm920t"
config BR2_arm922t
	bool "arm922t"
config BR2_arm926t
	bool "arm926t"
config BR2_arm10t
	bool "arm10t"
config BR2_arm1136jf_s
	bool "arm1136jf_s"
config BR2_arm1176jz_s
	bool "arm1176jz-s"
config BR2_arm1176jzf_s
	bool "arm1176jzf-s"
comment "cortex-A8/A9 needs gcc >= 4.4.x"
config BR2_cortex_a8
	bool "cortex-A8"
config BR2_cortex_a9
	bool "cortex-A9"
config BR2_sa110
	bool "sa110"
config BR2_sa1100
	bool "sa1100"
config BR2_xscale
	bool "xscale"
config BR2_iwmmxt
	bool "iwmmxt"
endchoice

config BR2_ARM_TYPE
	string
	default GENERIC_ARM	if BR2_generic_arm
	default ARM610		if BR2_arm610
	default ARM710		if BR2_arm710
	default ARM7TDMI	if BR2_arm7tdmi
	default ARM720T		if BR2_arm720t
	default ARM920T		if BR2_arm920t
	default ARM922T		if BR2_arm922t
	default ARM926T		if BR2_arm926t
	default ARM10T		if BR2_arm10t
	default ARM1136JF_S	if BR2_arm1136jf_s
	default ARM1176JZ_S	if BR2_arm1176jz_s
	default ARM1176JZF_S	if BR2_arm1176jzf_s
	default ARM_SA110	if BR2_sa110
	default ARM_SA1100	if BR2_sa1100
	default ARM_XSCALE	if BR2_xscale
	default ARM_IWMMXT	if BR2_iwmmxt
	default ARM_CORTEXA8	if BR2_cortex_a8
	default ARM_CORTEXA9	if BR2_cortex_a9

choice
	prompt "Target ABI"
	depends on BR2_arm || BR2_armeb
	default BR2_ARM_EABI
	help
	  Application Binary Interface to use

	  Note:
	    Using OABI is discouraged.

config BR2_ARM_EABI
	bool "EABI"
config BR2_ARM_OABI
	bool "OABI"
endchoice

choice
	prompt "Target ABI"
	depends on BR2_bfin
	default BR2_BFIN_FLAT
config BR2_BFIN_FDPIC
	bool "FDPIC"
config BR2_BFIN_FLAT
	bool "FLAT"
config BR2_BFIN_FLAT_SEP_DATA
	bool "FLAT (Separate data)"
config BR2_BFIN_SHARED_FLAT
	bool "Shared FLAT"
endchoice

choice
	prompt "Target Architecture Variant"
	depends on BR2_mips || BR2_mipsel
	default BR2_mips_3 if BR2_mips
	default BR2_mips_1 if BR2_mipsel
	help
	  Specific CPU variant to use
	
	  64bit cabable: 3, 4, 64, 64r2
	  non-64bit capable: 1, 2, 32, 32r2

config BR2_mips_1
	bool "mips I (generic)"
config BR2_mips_2
	bool "mips II"
config BR2_mips_3
	bool "mips III"
config BR2_mips_4
	bool "mips IV"
config BR2_mips_32
	bool "mips 32"
config BR2_mips_32r2
	bool "mips 32r2"
config BR2_mips_64
	bool "mips 64"
config BR2_mips_64r2
	bool "mips 64r2"
config BR2_mips_16
	bool "mips 16"
endchoice


choice
	prompt "Target ABI"
	depends on BR2_mips || BR2_mipsel
	default BR2_MIPS_OABI32 if BR_mips_32 || BR_mips_32r2
	default BR2_MIPS_ABI32 if BR_mips_64 || BR_mips_64r2
	help
	  Application Binary Interface to use

config BR2_MIPS_OABI32
	bool "o32"
config BR2_MIPS_ABI32
	bool "n32"
	depends on BR2_mips_3 || BR2_mips_4 || BR2_mips_64 || BR2_mips_64r2 || BR2_mips_16
config BR2_MIPS_EABI
	bool "eabi"
	depends on BR2_mips_3 || BR2_mips_4 || BR2_mips_64 || BR2_mips_64r2 || BR2_mips_16
config BR2_MIPS_ABI64
	bool "n64"
	depends on BR2_mips_3 || BR2_mips_4 || BR2_mips_64 || BR2_mips_64r2 || BR2_mips_16
config BR2_MIPS_OABI64
	bool "o64"
	depends on BR2_mips_3 || BR2_mips_4 || BR2_mips_64 || BR2_mips_64r2 || BR2_mips_16
config BR2_MIPS_ABI_none
	bool "unspecified"
	depends on BR2_mips_16
	help
	  Unspecified ABI leaves ABI selection blank.
endchoice

choice
	prompt "Target Architecture Variant"
	depends on BR2_sh
	default BR2_sh4
	help
	  Specific CPU variant to use

config BR2_sh2
	bool "sh2 (SH2 big endian)"
config BR2_sh2a
	bool "sh2a (SH2A big endian)"
config BR2_sh3
	bool "sh3 (SH3 little endian)"
config BR2_sh3eb
	bool "sh3eb (SH3 big endian)"
config BR2_sh4
	bool "sh4 (SH4 little endian)"
config BR2_sh4eb
	bool "sh4eb (SH4 big endian)"
config BR2_sh4a
	bool "sh4a (SH4A little endian)"
config BR2_sh4aeb
	bool "sh4aeb (SH4A big endian)"
endchoice

#
# gcc builds libstdc++ differently depending on the
# host tuplet given to it, so let people choose
#
choice
	prompt "Target Architecture Variant"
	depends on BR2_i386
	default BR2_x86_i586
	help
	  Specific CPU variant to use

config BR2_x86_i386
	bool "i386"
config BR2_x86_i486
	bool "i486"
config BR2_x86_i586
	bool "i586"
config BR2_x86_i686
	bool "i686"
config BR2_x86_pentiumpro
	bool "pentium pro"
config BR2_x86_pentium_mmx
	bool "pentium MMX"
config BR2_x86_pentium_m
	bool "pentium mobile"
config BR2_x86_pentium2
	bool "pentium2"
config BR2_x86_pentium3
	bool "pentium3"
config BR2_x86_pentium4
	bool "pentium4"
config BR2_x86_prescott
	bool "prescott"
config BR2_x86_nocona
	bool "nocona"
config BR2_x86_core2
	bool "core2"
config BR2_x86_k6
	bool "k6"
config BR2_x86_k6_2
	bool "k6-2"
config BR2_x86_athlon
	bool "athlon"
config BR2_x86_athlon_4
	bool "athlon-4"
config BR2_x86_opteron
	bool "opteron"
config BR2_x86_opteron_sse3
	bool "opteron w/ SSE3"
config BR2_x86_barcelona
	bool "barcelona"
config BR2_x86_geode
	bool "geode"
config BR2_x86_c3
	bool "Via/Cyrix C3 (Samuel/Ezra cores)"
config BR2_x86_c32
	bool "Via C3-2 (Nehemiah cores)"
config BR2_x86_winchip_c6
	bool "IDT Winchip C6"
config BR2_x86_winchip2
	bool "IDT Winchip 2"
endchoice

choice
	prompt "Target Architecture Variant"
	depends on BR2_x86_64
	default BR2_x86_64_generic
	help
	  Specific CPU variant to use

config BR2_x86_64_generic
	bool "generic"
config BR2_x86_64_barcelona
	bool "barcelona"
config BR2_x86_64_opteron_sse3
	bool "opteron w/ sse3"
config BR2_x86_64_opteron
	bool "opteron"
config BR2_x86_64_nocona
	bool "nocona"
config BR2_x86_64_core2
	bool "core2"
endchoice

choice
	prompt "Target Architecture Variant"
	depends on BR2_sparc
	default BR2_sparc_v7
	help
	  Specific CPU variant to use

config BR2_sparc_v7
	bool "v7"
config BR2_sparc_cypress
	bool "cypress"
config BR2_sparc_v8
	bool "v8"
comment "LEON SPARC needs gcc = 4.4.x"
config BR2_sparc_sparchfleon
	bool "hfleon"
config BR2_sparc_sparchfleonv8
	bool "hfleonv8"
config BR2_sparc_sparcsfleon
	bool "sfleon"
config BR2_sparc_sparcsfleonv8
	bool "sfleonv8"
config BR2_sparc_supersparc
	bool "supersparc"
config BR2_sparc_sparclite
	bool "sparclite"
config BR2_sparc_f930
	bool "f930"
config BR2_sparc_f934
	bool "f934"
config BR2_sparc_hypersparc
	bool "hypersparc"
config BR2_sparc_sparclite86x
	bool "sparclite86x"
config BR2_sparc_sparclet
	bool "sparclet"
config BR2_sparc_tsc701
	bool "tsc701"
endchoice

config BR2_SPARC_TYPE
	string
	default V7	if BR2_sparc_v7 || BR2_sparc_cypress || BR2_sparc_sparclite || BR2_sparc_f930 || BR2_sparc_f934 || BR2_sparc_sparclite86x || BR2_sparc_sparclet || BR2_sparc_tsc701 || BR2_sparc_sparchfleon || BR2_sparc_sparcsfleon
	default V8	if BR2_sparc_v8 || BR2_sparc_supersparc || BR2_sparc_hypersparc || BR2_sparc_sparchfleonv8 || BR2_sparc_sparcsfleonv8

choice
	prompt "Target Architecture Variant"
	depends on BR2_xtensa
	default BR2_xtensa_dc232b
	help
	  Specific CPU variant to use

config BR2_xtensa_custom
	bool "Custom Xtensa processor configuration"
config BR2_xtensa_dc232a
	bool "dc232a - Diamond 232L Standard Core Rev.A (LE)"
config BR2_xtensa_dc232b
	bool "dc232b - Diamond 232L Standard Core Rev.B (LE)"
#config BR2_xtensa_s5000
#	bool "s5000 - Stretch S5000"
endchoice

config BR2_xtensa_custom_name
	string "Custom Xtensa processor configuration name"
	depends on BR2_xtensa_custom
	default ""
	help
	  Name given to a custom Xtensa processor configuration.
	  This is used to select the correct overlay.

config BR2_xtensa_core_name
	string
	default BR2_xtensa_custom_name	if BR2_xtensa_custom
	default "dc232a"		if BR2_xtensa_dc232a
	default "dc232b"		if BR2_xtensa_dc232b
#	default "s5000"			if BR2_xtensa_s5000

choice
	prompt "Target Architecture Variant"
	depends on BR2_powerpc
	default BR2_generic_powerpc
	help
	  Specific CPU variant to use
config BR2_generic_powerpc
	bool "generic"
config BR2_powerpc_401
	bool "401"
config BR2_powerpc_403
	bool "403"
config BR2_powerpc_405
	bool "405"
config BR2_powerpc_405fp
	bool "405 with FPU"
config BR2_powerpc_440
	bool "440"
config BR2_powerpc_440fp
	bool "440 with FPU"
config BR2_powerpc_505
	bool "505"
config BR2_powerpc_601
	bool "601"
config BR2_powerpc_602
	bool "602"
config BR2_powerpc_603
	bool "603"
config BR2_powerpc_603e
	bool "603e"
config BR2_powerpc_604
	bool "604"
config BR2_powerpc_604e
	bool "604e"
config BR2_powerpc_620
	bool "620"
config BR2_powerpc_630
	bool "630"
config BR2_powerpc_740
	bool "740"
config BR2_powerpc_7400
	bool "7400"
config BR2_powerpc_7450
	bool "7450"
config BR2_powerpc_750
	bool "750"
config BR2_powerpc_801
	bool "801"
config BR2_powerpc_821
	bool "821"
config BR2_powerpc_823
	bool "823"
config BR2_powerpc_860
	bool "860"
config BR2_powerpc_970
	bool "970"
config BR2_powerpc_8540
	bool "8540 / e500v1"
config BR2_powerpc_8548
	bool "8548 / e500v2"
comment "e300c2 needs gcc >= 4.4.x"
config BR2_powerpc_e300c2
	bool "e300c2"
comment "e300c3 needs gcc >= 4.4.x"
config BR2_powerpc_e300c3
	bool "e300c3"
comment "e500mc needs gcc >= 4.4.x"
config BR2_powerpc_e500mc
	bool "e500mc"
endchoice

choice
	prompt "Target ABI"
	depends on BR2_powerpc
	default BR2_powerpc_CLASSIC if BR2_powerpc_e500mc
	default BR2_powerpc_SPE if BR2_powerpc_8540 || BR2_powerpc_8548
	help
	  Application Binary Interface to use

config BR2_powerpc_CLASSIC
	bool "Classic"
	depends on !(BR2_powerpc_8540 || BR2_powerpc_8548)
config BR2_powerpc_SPE
	bool "SPE"
	depends on BR2_powerpc_8540 || BR2_powerpc_8548 || BR2_powerpc_e500mc
endchoice

config BR2_ARCH
	string
	default "arm"		if BR2_arm
	default "armeb"		if BR2_armeb
	default "avr32"		if BR2_avr32
	default "bfin"		if BR2_bfin
	default "i386"		if BR2_x86_i386
	default "i486"		if BR2_x86_i486
	default "i586"		if BR2_x86_i586
	default "i586"		if BR2_x86_pentium_mmx
	default "i586"		if BR2_x86_geode
	default "i586"		if BR2_x86_c3
	default "i686"		if BR2_x86_c32
	default "i586"		if BR2_x86_winchip_c6
	default "i586"		if BR2_x86_winchip2
	default "i686"		if BR2_x86_i686
	default "i686"		if BR2_x86_pentium2
	default "i686"		if BR2_x86_pentium3
	default "i686"		if BR2_x86_pentium4
	default "i686"		if BR2_x86_pentium_m
	default "i686"		if BR2_x86_pentiumpro
	default "i686"		if BR2_x86_nocona
	default "i686"		if BR2_x86_core2
	default "i686"		if BR2_x86_opteron
	default "i686"		if BR2_x86_opteron_sse3
	default "i686"		if BR2_x86_barcelona
	default "i686"		if BR2_x86_k6
	default "i686"		if BR2_x86_k6_2
	default "i686"		if BR2_x86_athlon
	default "i686"		if BR2_x86_athlon_4
	default "m68k"		if BR2_m68k
	default "mips"		if BR2_mips
	default "mipsel"	if BR2_mipsel
	default "powerpc"	if BR2_powerpc
	default "sh2"		if BR2_sh2
	default "sh2a"		if BR2_sh2a
	default "sh3"		if BR2_sh3
	default "sh3eb"		if BR2_sh3eb
	default "sh4"		if BR2_sh4
	default "sh4eb"		if BR2_sh4eb
	default "sh4a"		if BR2_sh4a
	default "sh4aeb"	if BR2_sh4aeb
	default "sh64"		if BR2_sh64
	default "sparc"		if BR2_sparc
	default "x86_64"	if BR2_x86_64
	default "x86_64"	if BR2_x86_64_generic
	default "x86_64"	if BR2_x86_64_nocona
	default "x86_64"	if BR2_x86_64_core2
	default "x86_64"	if BR2_x86_64_opteron
	default "x86_64"	if BR2_x86_64_opteron_sse3
	default "x86_64"	if BR2_x86_64_barcelona
	default "xtensa"	if BR2_xtensa


config BR2_ENDIAN
	string
	default "LITTLE" if BR2_arm || BR2_bfin || BR2_i386 || BR2_mipsel || \
			    BR2_sh3 || BR2_sh4 || BR2_sh4a || BR2_x86_64 || BR2_sh64
	default "BIG"    if BR2_armeb || BR2_avr32 || BR2_m68k || BR2_mips || \
			    BR2_powerpc || BR2_sh2 || BR2_sh2a || \
			    BR2_sh3eb || BR2_sh4eb || BR2_sh4aeb || BR2_sparc

config BR2_GCC_TARGET_TUNE
	string
	default i386		if BR2_x86_i386
	default i486		if BR2_x86_i486
	default i586		if BR2_x86_i586
	default pentium-mmx	if BR2_x86_pentium_mmx
	default i686		if BR2_x86_i686
	default pentiumpro	if BR2_x86_pentiumpro
	default pentium-m	if BR2_x86_pentium_m
	default pentium2	if BR2_x86_pentium2
	default pentium3	if BR2_x86_pentium3
	default pentium4	if BR2_x86_pentium4
	default prescott	if BR2_x86_prescott
	default nocona		if BR2_x86_nocona
	default core2		if BR2_x86_core2
	default k8		if BR2_x86_opteron
	default k8-sse3		if BR2_x86_opteron_sse3
	default barcelona	if BR2_x86_barcelona
	default k6		if BR2_x86_k6
	default k6-2		if BR2_x86_k6_2
	default athlon		if BR2_x86_athlon
	default athlon-4	if BR2_x86_athlon_4
	default winchip-c6	if BR2_x86_winchip_c6
	default winchip2	if BR2_x86_winchip2
	default c3		if BR2_x86_c3
	default c3-2		if BR2_x86_c32
	default geode		if BR2_x86_geode
	default generic		if BR2_x86_64_generic
	default nocona		if BR2_x86_64_nocona
	default core2		if BR2_x86_64_core2
	default k8		if BR2_x86_64_opteron
	default k8-sse3		if BR2_x86_64_opteron_sse3
	default barcelona	if BR2_x86_64_barcelona
	default arm600		if BR2_arm600
	default arm610		if BR2_arm610
	default arm620		if BR2_arm620
	default arm7tdmi	if BR2_arm7tdmi
	default arm7tdmi	if BR2_arm720t
	default arm7tdmi	if BR2_arm740t
	default arm920		if BR2_arm920
	default arm920t		if BR2_arm920t
	default arm922t		if BR2_arm922t
	default arm926ej-s	if BR2_arm926t
	default arm1136j-s	if BR2_arm1136j_s
	default arm1136jf-s	if BR2_arm1136jf_s
	default arm1176jz-s	if BR2_arm1176jz_s
	default arm1176jzf-s	if BR2_arm1176jzf_s
	default cortex-a8	if BR2_cortex_a8
	default cortex-a9	if BR2_cortex_a9
	default strongarm110	if BR2_sa110
	default strongarm1100	if BR2_sa1100
	default xscale		if BR2_xscale
	default iwmmxt		if BR2_iwmmxt
	default 68000		if BR2_m68k_68000
	default 68010		if BR2_m68k_68010
	default 68020		if BR2_m68k_68020
	default 68030		if BR2_m68k_68030
	default 68040		if BR2_m68k_68040
	default 68060		if BR2_m68k_68060
	default mips1		if BR2_mips_1
	default mips2		if BR2_mips_2
	default mips3		if BR2_mips_3
	default mips4		if BR2_mips_4
	default mips32		if BR2_mips_32
	default mips32r2	if BR2_mips_32r2
	default mips64		if BR2_mips_64
	default mips64r2	if BR2_mips_64r2
	default mips16		if BR2_mips_16
	default 401		if BR2_powerpc_401
	default 403		if BR2_powerpc_403
	default 405		if BR2_powerpc_405
	default 405fp		if BR2_powerpc_405fp
	default 440		if BR2_powerpc_440
	default 440fp		if BR2_powerpc_440fp
	default 505		if BR2_powerpc_505
	default 601		if BR2_powerpc_601
	default 602		if BR2_powerpc_602
	default 603		if BR2_powerpc_603
	default 603e		if BR2_powerpc_603e
	default 604		if BR2_powerpc_604
	default 604e		if BR2_powerpc_604e
	default 620		if BR2_powerpc_620
	default 630		if BR2_powerpc_630
	default 740		if BR2_powerpc_740
	default 7400		if BR2_powerpc_7400
	default 7450		if BR2_powerpc_7450
	default 750		if BR2_powerpc_750
	default 801		if BR2_powerpc_801
	default 821		if BR2_powerpc_821
	default 823		if BR2_powerpc_823
	default 860		if BR2_powerpc_860
	default 970		if BR2_powerpc_970
	default 8540		if BR2_powerpc_8540
	default	8548		if BR2_powerpc_8548
	default e300c2		if BR2_powerpc_e300c2
	default e300c3		if BR2_powerpc_e300c3
	default e500mc		if BR2_powerpc_e500mc
	default v7		if BR2_sparc_v7
	default cypress		if BR2_sparc_cypress
	default v8		if BR2_sparc_v8
	default supersparc	if BR2_sparc_supersparc
	default hypersparc	if BR2_sparc_hypersparc
	default sparclite	if BR2_sparc_sparclite
	default f930		if BR2_sparc_f930
	default f934		if BR2_sparc_f934
	default sparclite86x	if BR2_sparc_sparclite86x
	default sparclet	if BR2_sparc_sparclet
	default tsc701		if BR2_sparc_tsc701
	default v9		if BR2_sparc_v9
	default v9		if BR2_sparc_v9a
	default v9		if BR2_sparc_v9b
	default ultrasparc	if BR2_sparc_ultrasparc
	default ultrasparc3	if BR2_sparc_ultrasparc3
	default niagara		if BR2_sparc_niagara

config BR2_GCC_TARGET_ARCH
	string
	default i386		if BR2_x86_i386
	default i486		if BR2_x86_i486
	default i586		if BR2_x86_i586
	default pentium-mmx	if BR2_x86_pentium_mmx
	default i686		if BR2_x86_i686
	default pentiumpro	if BR2_x86_pentiumpro
	default pentium-m	if BR2_x86_pentium_m
	default pentium2	if BR2_x86_pentium2
	default pentium3	if BR2_x86_pentium3
	default pentium4	if BR2_x86_pentium4
	default prescott	if BR2_x86_prescott
	default nocona		if BR2_x86_nocona
	default core2		if BR2_x86_core2
	default k8		if BR2_x86_opteron
	default k8-sse3		if BR2_x86_opteron_sse3
	default barcelona	if BR2_x86_barcelona
	default k6		if BR2_x86_k6
	default k6-2		if BR2_x86_k6_2
	default athlon		if BR2_x86_athlon
	default athlon-4	if BR2_x86_athlon_4
	default winchip-c6	if BR2_x86_winchip_c6
	default winchip2	if BR2_x86_winchip2
	default c3		if BR2_x86_c3
	default c3-2		if BR2_x86_c32
	default geode		if BR2_x86_geode
	default armv4t		if BR2_arm7tdmi
	default armv3		if BR2_arm610
	default armv3		if BR2_arm710
	default armv4t		if BR2_arm720t
	default armv4t		if BR2_arm920t
	default armv4t		if BR2_arm922t
	default armv5te		if BR2_arm926t
	default armv5t		if BR2_arm10t
	default armv6j		if BR2_arm1136jf_s
	default armv6zk		if BR2_arm1176jz_s
	default armv6zk		if BR2_arm1176jzf_s
	default armv7-a		if BR2_cortex_a8
	default armv7-a		if BR2_cortex_a9
	default armv4		if BR2_sa110
	default armv4		if BR2_sa1100
	default armv5te		if BR2_xscale
	default iwmmxt		if BR2_iwmmxt
	default 68000		if BR2_m68k_68000
	default 68010		if BR2_m68k_68010
	default 68020		if BR2_m68k_68020
	default 68030		if BR2_m68k_68030
	default 68040		if BR2_m68k_68040
	default 68060		if BR2_m68k_68060

config BR2_GCC_TARGET_ABI
	string
	default apcs-gnu	if BR2_ARM_OABI
	default atpcs		if BR2_arm_dunno
	default aapcs		if BR2_arm_dunno
	default aapcs-linux	if BR2_ARM_EABI
	default 32		if BR2_MIPS_OABI32
	default n32		if BR2_MIPS_ABI32
	default eabi		if BR2_MIPS_EABI
	default o64		if BR2_MIPS_OABI64
	default n64		if BR2_MIPS_ABI64
	default mmixware	if BR2_mmix && BR2_MMIX_ABI_native
	default gnu		if BR2_mmix && !BR2_MMIX_ABI_native
	default altivec		if BR2_powerpc && BR2_PPC_ABI_altivec
	default no-altivec	if BR2_powerpc && BR2_PPC_ABI_no-altivec
	default spe		if BR2_powerpc && BR2_PPC_ABI_spe
	default no-spe		if BR2_powerpc && BR2_PPC_ABI_no-spe
	default ibmlongdouble	if BR2_powerpc && BR2_PPC_ABI_ibmlongdouble
	default ieeelongdouble	if BR2_powerpc && BR2_PPC_ABI_ieeelongdouble

config BR2_GCC_TARGET_CPU
	string
	default sparchfleon	if BR2_sparc_sparchfleon
	default sparchfleonv8	if BR2_sparc_sparchfleonv8
	default sparcsfleon	if BR2_sparc_sparcsfleon
	default sparcsfleonv8	if BR2_sparc_sparcsfleonv8
