mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 04:59:14 -07:00
go-env.eclass: also set GOARM & GO386 when applicable
This is necessary for the build artifact to conform to the configured ISA level and features on those arches. The logic is also taken from the dev-lang/go ebuild. Signed-off-by: WANG Xuerui <xen0n@gentoo.org> Closes: https://github.com/gentoo/gentoo/pull/33941 Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
@@ -19,6 +19,8 @@ inherit toolchain-funcs
|
||||
# @FUNCTION: go-env_set_compile_environment
|
||||
# @DESCRIPTION:
|
||||
# Set up basic compile environment: CC, CXX, and GOARCH.
|
||||
# Necessary platform-specific settings such as GOARM or GO386 are also set
|
||||
# according to the Portage configuration when building for those architectures.
|
||||
# Also carry over CFLAGS, LDFLAGS and friends.
|
||||
# Required for cross-compiling with crossdev.
|
||||
# If not set, host defaults will be used and the resulting binaries are host arch.
|
||||
@@ -28,6 +30,9 @@ go-env_set_compile_environment() {
|
||||
tc-export CC CXX
|
||||
|
||||
export GOARCH="$(go-env_goarch)"
|
||||
use arm && export GOARM=$(go-env_goarm)
|
||||
use x86 && export GO386=$(usex cpu_flags_x86_sse2 '' 'softfloat')
|
||||
|
||||
export CGO_CFLAGS="${CGO_CFLAGS:-$CFLAGS}"
|
||||
export CGO_CPPFLAGS="${CGO_CPPFLAGS:-$CPPFLAGS}"
|
||||
export CGO_CXXFLAGS="${CGO_CXXFLAGS:-$CXXFLAGS}"
|
||||
@@ -57,4 +62,20 @@ go-env_goarch() {
|
||||
esac
|
||||
}
|
||||
|
||||
# @FUNCTION: go-env_goarm
|
||||
# @USAGE: [CHOST-value]
|
||||
# @DESCRIPTION:
|
||||
# Returns the appropriate GOARM setting for the CHOST given, or the default
|
||||
# CHOST.
|
||||
go-env_goarm() {
|
||||
case "${1:-${CHOST}}" in
|
||||
armv5*) echo 5;;
|
||||
armv6*) echo 6;;
|
||||
armv7*) echo 7;;
|
||||
*)
|
||||
die "unknown GOARM for ${1:-${CHOST}}"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user