# Target go packages should depend on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS
config BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS
	bool
	default y
	depends on !BR2_TOOLCHAIN_HAS_BINUTILS_BUG_20006
	depends on BR2_PACKAGE_HOST_GO_BOOTSTRAP_ARCH_SUPPORTS
	depends on (BR2_arm && BR2_TOOLCHAIN_SUPPORTS_PIE) || BR2_aarch64 \
		|| BR2_i386 || BR2_x86_64 || BR2_powerpc64le \
		|| BR2_mips64 || BR2_mips64el
	depends on !BR2_ARM_CPU_ARMV4
	# MIPS R6 support in Go has not yet been developed.
	depends on !BR2_MIPS_CPU_MIPS64R6

config BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS
	bool
	default y
	depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS
	# Go doesn't support CGO linking on MIPS64x platforms
	# See: https://github.com/karalabe/xgo/issues/46
	depends on !BR2_mips64 && !BR2_mips64el

# Host go packages should depend on BR2_PACKAGE_HOST_GO_HOST_ARCH_SUPPORTS
config BR2_PACKAGE_HOST_GO_HOST_ARCH_SUPPORTS
	bool
	default y
	depends on BR2_PACKAGE_HOST_GO_BOOTSTRAP_ARCH_SUPPORTS
