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_marvell_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 ARM926T		if BR2_marvell_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 "GCC TUNE"
	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 marvell-f	if BR2_marvell_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 armv5te		if BR2_marvell_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
