mirror of
https://github.com/flatcar/scripts.git
synced 2025-09-22 22:21:10 +02:00
dev-lang/go: Sync with Gentoo
It's from Gentoo commit f55732a438fb996fc8e4fdc8e6576f5d9946532d.
This commit is contained in:
parent
13e1533a19
commit
4963cd5f63
@ -1,2 +1,3 @@
|
|||||||
DIST go1.23.7.src.tar.gz 28181215 BLAKE2B d3c9bff18438f90f6730e1ad9580a3f97d266f90533552cd73b63b512c694de76466435f274dc2b190c672cdbd83ffaf735e4e74c12e426cac920b81dbfd88af SHA512 79192b760ab6fcc9512fd879a9484a3566fdeec5eace36c54b728cd9cb033e7ac68065a42fc657b351a106d684b79fdbefbf682cf63209c0191e7e7c8c0a0147
|
DIST go1.23.7.src.tar.gz 28181215 BLAKE2B d3c9bff18438f90f6730e1ad9580a3f97d266f90533552cd73b63b512c694de76466435f274dc2b190c672cdbd83ffaf735e4e74c12e426cac920b81dbfd88af SHA512 79192b760ab6fcc9512fd879a9484a3566fdeec5eace36c54b728cd9cb033e7ac68065a42fc657b351a106d684b79fdbefbf682cf63209c0191e7e7c8c0a0147
|
||||||
DIST go1.24.1.src.tar.gz 30777528 BLAKE2B 76217ec25a721183591a434b012bd9cfb6d6206410aafffce4490bff8053440f2aa590bac0cfb839f10c19a3368fe60515a61123a21d187f5289ba0ae1399c1c SHA512 a924d6bdc7e7101917e6d063bc7b471390525394e79224c152997564657c4362b5600e0c8bf6ee857d345129ccf7368bdf4ed2251ab740446ea2abda144e6353
|
DIST go1.23.8.src.tar.gz 28182772 BLAKE2B 568b9fcc7ed12cb19e10b458fc1890a5977c97660657e9eb7c171aa16382f6790a78cb87df99ed72ec18d5ff1654ee4d15a4d603332ad0812ee97f6500866198 SHA512 8e352a01484c168894026080ee4501180e327d734fb3d892ab17daac193964fcd5fd90033c9cf86d6ffe8b7e4da64bda83ba4501a6c05919bcefbe9e2467c771
|
||||||
|
DIST go1.24.2.src.tar.gz 30787666 BLAKE2B bb5f998a87e6527def304347b854c4addb0860a03da82e711f60e2af460bd43c36273b25126c643a679ae22fca226e6a4fc5ba55967d21965ffdc8f564781e35 SHA512 6366a32f6678e7908b138f62dafeed96f7144b3b93505e75fba374b33727da8b1d087c1f979f493382b319758ebfcbeb30e9d7dadcb2923b628c8abe7db41c6f
|
||||||
|
55
sdk_container/src/third_party/portage-stable/dev-lang/go/files/go-1.24-dont-force-gold-arm.patch
vendored
Normal file
55
sdk_container/src/third_party/portage-stable/dev-lang/go/files/go-1.24-dont-force-gold-arm.patch
vendored
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
Don't default to -fuse-ld=gold on arm64. The gold linker is deprecated in
|
||||||
|
GNU Binutils and the referenced bfd bug which led to this default being
|
||||||
|
added is long-fixed.
|
||||||
|
|
||||||
|
https://src.fedoraproject.org/rpms/golang/raw/rawhide/f/0006-Default-to-ld.bfd-on-ARM64.patch
|
||||||
|
https://bugs.gentoo.org/893956
|
||||||
|
https://github.com/golang/go/issues/22040
|
||||||
|
https://github.com/golang/go/pull/49748
|
||||||
|
https://sourceware.org/PR19962
|
||||||
|
|
||||||
|
From 46ec67413008607e2150e3395668e54e538c5b6b Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Alejandro=20S=C3=A1ez?= <asm@redhat.com>
|
||||||
|
Date: Wed, 19 Jun 2024 10:18:58 +0200
|
||||||
|
Subject: [PATCH] Default to ld.bfd on ARM64
|
||||||
|
|
||||||
|
---
|
||||||
|
src/cmd/link/internal/ld/lib.go | 20 +++++++-------------
|
||||||
|
1 file changed, 7 insertions(+), 13 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/cmd/link/internal/ld/lib.go b/src/cmd/link/internal/ld/lib.go
|
||||||
|
index eab74dc328..b401f58727 100644
|
||||||
|
--- a/src/cmd/link/internal/ld/lib.go
|
||||||
|
+++ b/src/cmd/link/internal/ld/lib.go
|
||||||
|
@@ -1620,22 +1620,16 @@ func (ctxt *Link) hostlink() {
|
||||||
|
}
|
||||||
|
|
||||||
|
if ctxt.Arch.InFamily(sys.ARM64) && buildcfg.GOOS == "linux" {
|
||||||
|
- // On ARM64, the GNU linker will fail with
|
||||||
|
- // -znocopyreloc if it thinks a COPY relocation is
|
||||||
|
- // required. Switch to gold.
|
||||||
|
- // https://sourceware.org/bugzilla/show_bug.cgi?id=19962
|
||||||
|
- // https://go.dev/issue/22040
|
||||||
|
- altLinker = "gold"
|
||||||
|
-
|
||||||
|
- // If gold is not installed, gcc will silently switch
|
||||||
|
- // back to ld.bfd. So we parse the version information
|
||||||
|
- // and provide a useful error if gold is missing.
|
||||||
|
+ // Use ld.bfd as the default linker
|
||||||
|
+ altLinker = "bfd"
|
||||||
|
+
|
||||||
|
+ // Provide a useful error if ld.bfd is missing
|
||||||
|
name, args := flagExtld[0], flagExtld[1:]
|
||||||
|
- args = append(args, "-fuse-ld=gold", "-Wl,--version")
|
||||||
|
+ args = append(args, "-fuse-ld=bfd", "-Wl,--version")
|
||||||
|
cmd := exec.Command(name, args...)
|
||||||
|
if out, err := cmd.CombinedOutput(); err == nil {
|
||||||
|
- if !bytes.Contains(out, []byte("GNU gold")) {
|
||||||
|
- log.Fatalf("ARM64 external linker must be gold (issue #15696, 22040), but is not: %s", out)
|
||||||
|
+ if !bytes.Contains(out, []byte("GNU ld")) {
|
||||||
|
+ log.Fatalf("ARM64 external linker must be ld.bfd, but is not: %s", out)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
--
|
||||||
|
2.45.1
|
163
sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.23.8.ebuild
vendored
Normal file
163
sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.23.8.ebuild
vendored
Normal file
@ -0,0 +1,163 @@
|
|||||||
|
# Copyright 1999-2025 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
export CBUILD=${CBUILD:-${CHOST}}
|
||||||
|
export CTARGET=${CTARGET:-${CHOST}}
|
||||||
|
|
||||||
|
# See "Bootstrap" in release notes
|
||||||
|
GO_BOOTSTRAP_MIN=1.20.14
|
||||||
|
MY_PV=${PV/_/}
|
||||||
|
|
||||||
|
inherit go-env toolchain-funcs
|
||||||
|
|
||||||
|
case ${PV} in
|
||||||
|
*9999*)
|
||||||
|
EGIT_REPO_URI="https://github.com/golang/go.git"
|
||||||
|
inherit git-r3
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
SRC_URI="https://storage.googleapis.com/golang/go${MY_PV}.src.tar.gz "
|
||||||
|
S="${WORKDIR}"/go
|
||||||
|
case ${PV} in
|
||||||
|
*_beta*|*_rc*) ;;
|
||||||
|
*)
|
||||||
|
KEYWORDS="-* amd64 arm ~arm64 ~loong ~mips ppc64 ~riscv ~s390 x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
esac
|
||||||
|
|
||||||
|
DESCRIPTION="A concurrent garbage collected and typesafe programming language"
|
||||||
|
HOMEPAGE="https://go.dev"
|
||||||
|
|
||||||
|
LICENSE="BSD"
|
||||||
|
SLOT="0/${PV}"
|
||||||
|
IUSE="cpu_flags_x86_sse2"
|
||||||
|
|
||||||
|
RDEPEND="
|
||||||
|
arm? ( sys-devel/binutils[gold(-)] )
|
||||||
|
arm64? ( sys-devel/binutils[gold(-)] )"
|
||||||
|
BDEPEND="|| (
|
||||||
|
>=dev-lang/go-${GO_BOOTSTRAP_MIN}
|
||||||
|
>=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN} )"
|
||||||
|
|
||||||
|
# the *.syso files have writable/executable stacks
|
||||||
|
QA_EXECSTACK='*.syso'
|
||||||
|
|
||||||
|
# Do not complain about CFLAGS, etc, since Go doesn't use them.
|
||||||
|
QA_FLAGS_IGNORED='.*'
|
||||||
|
|
||||||
|
# The tools in /usr/lib/go should not cause the multilib-strict check to fail.
|
||||||
|
QA_MULTILIB_PATHS="usr/lib/go/pkg/tool/.*/.*"
|
||||||
|
|
||||||
|
# This package triggers "unrecognized elf file(s)" notices on riscv.
|
||||||
|
# https://bugs.gentoo.org/794046
|
||||||
|
QA_PREBUILT='.*'
|
||||||
|
|
||||||
|
# Do not strip this package. Stripping is unsupported upstream and may
|
||||||
|
# fail.
|
||||||
|
RESTRICT=" strip"
|
||||||
|
|
||||||
|
DOCS=(
|
||||||
|
CONTRIBUTING.md
|
||||||
|
PATENTS
|
||||||
|
README.md
|
||||||
|
SECURITY.md
|
||||||
|
)
|
||||||
|
|
||||||
|
go_tuple() {
|
||||||
|
echo "$(go-env_goos $@)_$(go-env_goarch $@)"
|
||||||
|
}
|
||||||
|
|
||||||
|
go_cross_compile() {
|
||||||
|
[[ $(go_tuple ${CBUILD}) != $(go_tuple) ]]
|
||||||
|
}
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
"${FILESDIR}"/go-1.24-skip-gdb-tests.patch
|
||||||
|
"${FILESDIR}"/go-never-download-newer-toolchains.patch
|
||||||
|
)
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
if has_version -b ">=dev-lang/go-${GO_BOOTSTRAP_MIN}"; then
|
||||||
|
export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go"
|
||||||
|
elif has_version -b ">=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN}"; then
|
||||||
|
export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go-bootstrap"
|
||||||
|
else
|
||||||
|
eerror "Go cannot be built without go or go-bootstrap installed"
|
||||||
|
die "Should not be here, please report a bug"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Go's build script does not use BUILD/HOST/TARGET consistently. :(
|
||||||
|
export GOHOSTARCH=$(go-env_goarch ${CBUILD})
|
||||||
|
export GOHOSTOS=$(go-env_goos ${CBUILD})
|
||||||
|
export CC=$(tc-getBUILD_CC)
|
||||||
|
|
||||||
|
export GOARCH=$(go-env_goarch)
|
||||||
|
export GOOS=$(go-env_goos)
|
||||||
|
export CC_FOR_TARGET=$(tc-getCC)
|
||||||
|
export CXX_FOR_TARGET=$(tc-getCXX)
|
||||||
|
use arm && export GOARM=$(go-env_goarm)
|
||||||
|
use x86 && export GO386=$(go-env_go386)
|
||||||
|
|
||||||
|
cd src
|
||||||
|
bash -x ./make.bash || die "build failed"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
go_cross_compile && return 0
|
||||||
|
|
||||||
|
cd src
|
||||||
|
|
||||||
|
# https://github.com/golang/go/issues/42005
|
||||||
|
rm cmd/link/internal/ld/fallocate_test.go || die
|
||||||
|
|
||||||
|
PATH="${GOBIN}:${PATH}" \
|
||||||
|
./run.bash -no-rebuild -k || die "tests failed"
|
||||||
|
cd ..
|
||||||
|
rm -fr pkg/*_race || die
|
||||||
|
rm -fr pkg/obj/go-build || die
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
dodir /usr/lib/go
|
||||||
|
# The use of cp is deliberate in order to retain permissions
|
||||||
|
cp -R api bin doc lib pkg misc src test "${ED}"/usr/lib/go
|
||||||
|
einstalldocs
|
||||||
|
|
||||||
|
insinto /usr/lib/go
|
||||||
|
doins go.env VERSION*
|
||||||
|
|
||||||
|
# testdata directories are not needed on the installed system
|
||||||
|
rm -fr $(find "${ED}"/usr/lib/go -iname testdata -type d -print)
|
||||||
|
|
||||||
|
local bin_path
|
||||||
|
if go_cross_compile; then
|
||||||
|
bin_path="bin/$(go_tuple)"
|
||||||
|
else
|
||||||
|
bin_path=bin
|
||||||
|
fi
|
||||||
|
local f x
|
||||||
|
for x in ${bin_path}/*; do
|
||||||
|
f=${x##*/}
|
||||||
|
dosym ../lib/go/${bin_path}/${f} /usr/bin/${f}
|
||||||
|
done
|
||||||
|
|
||||||
|
# install the @golang-rebuild set for Portage
|
||||||
|
insinto /usr/share/portage/config/sets
|
||||||
|
newins "${FILESDIR}"/go-sets.conf go.conf
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg_postinst() {
|
||||||
|
[[ -z ${REPLACING_VERSIONS} ]] && return
|
||||||
|
elog "After ${CATEGORY}/${PN} is updated it is recommended to rebuild"
|
||||||
|
elog "all packages compiled with previous versions of ${CATEGORY}/${PN}"
|
||||||
|
elog "due to the static linking nature of go."
|
||||||
|
elog "If this is not done, the packages compiled with the older"
|
||||||
|
elog "version of the compiler will not be updated until they are"
|
||||||
|
elog "updated individually, which could mean they will have"
|
||||||
|
elog "vulnerabilities."
|
||||||
|
elog "Run 'emerge @golang-rebuild' to rebuild all 'go' packages"
|
||||||
|
elog "See https://bugs.gentoo.org/752153 for more info"
|
||||||
|
}
|
132
sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.24.2-r1.ebuild
vendored
Normal file
132
sdk_container/src/third_party/portage-stable/dev-lang/go/go-1.24.2-r1.ebuild
vendored
Normal file
@ -0,0 +1,132 @@
|
|||||||
|
# Copyright 1999-2025 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=8
|
||||||
|
|
||||||
|
export CBUILD=${CBUILD:-${CHOST}}
|
||||||
|
export CTARGET=${CTARGET:-${CHOST}}
|
||||||
|
|
||||||
|
# See "Bootstrap" in release notes
|
||||||
|
GO_BOOTSTRAP_MIN=1.22.12
|
||||||
|
MY_PV=${PV/_/}
|
||||||
|
|
||||||
|
inherit go-env toolchain-funcs
|
||||||
|
|
||||||
|
case ${PV} in
|
||||||
|
*9999*)
|
||||||
|
EGIT_REPO_URI="https://github.com/golang/go.git"
|
||||||
|
inherit git-r3
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
SRC_URI="https://storage.googleapis.com/golang/go${MY_PV}.src.tar.gz "
|
||||||
|
S="${WORKDIR}"/go
|
||||||
|
KEYWORDS="-* ~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~s390 ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
DESCRIPTION="A concurrent garbage collected and typesafe programming language"
|
||||||
|
HOMEPAGE="https://go.dev"
|
||||||
|
|
||||||
|
LICENSE="BSD"
|
||||||
|
SLOT="0/${PV}"
|
||||||
|
IUSE="cpu_flags_x86_sse2"
|
||||||
|
|
||||||
|
BDEPEND="|| (
|
||||||
|
>=dev-lang/go-${GO_BOOTSTRAP_MIN}
|
||||||
|
>=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN} )"
|
||||||
|
|
||||||
|
# the *.syso files have writable/executable stacks
|
||||||
|
QA_EXECSTACK='*.syso'
|
||||||
|
|
||||||
|
# Do not complain about CFLAGS, etc, since Go doesn't use them.
|
||||||
|
QA_FLAGS_IGNORED='.*'
|
||||||
|
|
||||||
|
# The tools in /usr/lib/go should not cause the multilib-strict check to fail.
|
||||||
|
QA_MULTILIB_PATHS="usr/lib/go/pkg/tool/.*/.*"
|
||||||
|
|
||||||
|
# This package triggers "unrecognized elf file(s)" notices on riscv.
|
||||||
|
# https://bugs.gentoo.org/794046
|
||||||
|
QA_PREBUILT='.*'
|
||||||
|
|
||||||
|
# Do not strip this package. Stripping is unsupported upstream and may
|
||||||
|
# fail.
|
||||||
|
RESTRICT=" strip"
|
||||||
|
|
||||||
|
DOCS=(
|
||||||
|
CONTRIBUTING.md
|
||||||
|
PATENTS
|
||||||
|
README.md
|
||||||
|
SECURITY.md
|
||||||
|
)
|
||||||
|
|
||||||
|
go_tuple() {
|
||||||
|
echo "$(go-env_goos $@)_$(go-env_goarch $@)"
|
||||||
|
}
|
||||||
|
|
||||||
|
go_cross_compile() {
|
||||||
|
[[ $(go_tuple ${CBUILD}) != $(go_tuple) ]]
|
||||||
|
}
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
"${FILESDIR}"/go-1.24-skip-gdb-tests.patch
|
||||||
|
"${FILESDIR}"/go-1.24-dont-force-gold-arm.patch
|
||||||
|
"${FILESDIR}"/go-never-download-newer-toolchains.patch
|
||||||
|
)
|
||||||
|
|
||||||
|
src_compile() {
|
||||||
|
if has_version -b ">=dev-lang/go-${GO_BOOTSTRAP_MIN}"; then
|
||||||
|
export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go"
|
||||||
|
elif has_version -b ">=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN}"; then
|
||||||
|
export GOROOT_BOOTSTRAP="${BROOT}/usr/lib/go-bootstrap"
|
||||||
|
else
|
||||||
|
eerror "Go cannot be built without go or go-bootstrap installed"
|
||||||
|
die "Should not be here, please report a bug"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Go's build script does not use BUILD/HOST/TARGET consistently. :(
|
||||||
|
export GOHOSTARCH=$(go-env_goarch ${CBUILD})
|
||||||
|
export GOHOSTOS=$(go-env_goos ${CBUILD})
|
||||||
|
export CC=$(tc-getBUILD_CC)
|
||||||
|
|
||||||
|
export GOARCH=$(go-env_goarch)
|
||||||
|
export GOOS=$(go-env_goos)
|
||||||
|
export CC_FOR_TARGET=$(tc-getCC)
|
||||||
|
export CXX_FOR_TARGET=$(tc-getCXX)
|
||||||
|
use arm && export GOARM=$(go-env_goarm)
|
||||||
|
use x86 && export GO386=$(go-env_go386)
|
||||||
|
|
||||||
|
cd src
|
||||||
|
bash -x ./make.bash || die "build failed"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
go_cross_compile && return 0
|
||||||
|
cd src
|
||||||
|
PATH="${GOBIN}:${PATH}" \
|
||||||
|
./run.bash -no-rebuild -k || die "tests failed"
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
dodir /usr/lib/go
|
||||||
|
# The use of cp is deliberate in order to retain permissions
|
||||||
|
cp -R . "${ED}"/usr/lib/go
|
||||||
|
einstalldocs
|
||||||
|
|
||||||
|
# testdata directories are not needed on the installed system
|
||||||
|
# The other files we remove are installed by einstalldocs
|
||||||
|
rm -r $(find "${ED}"/usr/lib/go -iname testdata -type d -print) || die
|
||||||
|
rm "${ED}"/usr/lib/go/{CONTRIBUTING.md,PATENTS,README.md} || die
|
||||||
|
rm "${ED}"/usr/lib/go/{SECURITY.md,codereview.cfg,LICENSE} || die
|
||||||
|
|
||||||
|
local bin_path
|
||||||
|
if go_cross_compile; then
|
||||||
|
bin_path="bin/$(go_tuple)"
|
||||||
|
else
|
||||||
|
bin_path=bin
|
||||||
|
fi
|
||||||
|
local f x
|
||||||
|
for x in ${bin_path}/*; do
|
||||||
|
f=${x##*/}
|
||||||
|
dosym ../lib/go/${bin_path}/${f} /usr/bin/${f}
|
||||||
|
done
|
||||||
|
}
|
@ -31,9 +31,6 @@ LICENSE="BSD"
|
|||||||
SLOT="0/${PV}"
|
SLOT="0/${PV}"
|
||||||
IUSE="cpu_flags_x86_sse2"
|
IUSE="cpu_flags_x86_sse2"
|
||||||
|
|
||||||
RDEPEND="
|
|
||||||
arm? ( sys-devel/binutils[gold(-)] )
|
|
||||||
arm64? ( sys-devel/binutils[gold(-)] )"
|
|
||||||
BDEPEND="|| (
|
BDEPEND="|| (
|
||||||
>=dev-lang/go-${GO_BOOTSTRAP_MIN}
|
>=dev-lang/go-${GO_BOOTSTRAP_MIN}
|
||||||
>=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN} )"
|
>=dev-lang/go-bootstrap-${GO_BOOTSTRAP_MIN} )"
|
||||||
@ -71,6 +68,7 @@ go_cross_compile() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
PATCHES=(
|
PATCHES=(
|
||||||
|
"${FILESDIR}"/go-1.24-dont-force-gold-arm.patch
|
||||||
"${FILESDIR}"/go-never-download-newer-toolchains.patch
|
"${FILESDIR}"/go-never-download-newer-toolchains.patch
|
||||||
)
|
)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user