aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Mk/Uses/go.mk2
-rw-r--r--Mk/bsd.default-versions.mk2
-rw-r--r--lang/Makefile1
-rw-r--r--lang/go124/Makefile29
-rw-r--r--lang/go124/distinfo13
-rw-r--r--lang/go124/files/patch-src_cmd_dist_build.go23
-rw-r--r--lang/go124/files/patch-src_cmd_go_internal_modload_vendor.go11
7 files changed, 79 insertions, 2 deletions
diff --git a/Mk/Uses/go.mk b/Mk/Uses/go.mk
index d7e932daee73..421fd310847f 100644
--- a/Mk/Uses/go.mk
+++ b/Mk/Uses/go.mk
@@ -70,7 +70,7 @@ _INCLUDE_USES_GO_MK= yes
# When adding a version, please keep the comment in
# Mk/bsd.default-versions.mk in sync.
-GO_VALID_VERSIONS= 1.20 1.21 1.22 1.23 1.24-devel
+GO_VALID_VERSIONS= 1.20 1.21 1.22 1.23 1.24 1.25-devel
# Check arguments sanity
. if !empty(go_ARGS:N[1-9].[0-9][0-9]:N*-devel:Nmodules:Nno_targets:Nrun)
diff --git a/Mk/bsd.default-versions.mk b/Mk/bsd.default-versions.mk
index ce77f2597d4d..3272419f22e5 100644
--- a/Mk/bsd.default-versions.mk
+++ b/Mk/bsd.default-versions.mk
@@ -63,7 +63,7 @@ GCC_DEFAULT?= 13
GHOSTSCRIPT_DEFAULT?= 10
# Possible values: mesa-libs, mesa-devel
GL_DEFAULT?= mesa-libs
-# Possible values: 1.20, 1.21, 1.22, 1.23, 1.24-devel
+# Possible values: 1.20, 1.21, 1.22, 1.23, 1.24, 1.25-devel
GO_DEFAULT?= 1.21
# Possible values: 1.8, 2.2, 3.0
GUILE_DEFAULT?= 2.2
diff --git a/lang/Makefile b/lang/Makefile
index 989ccb51f2d8..c1c3e20f5e8f 100644
--- a/lang/Makefile
+++ b/lang/Makefile
@@ -124,6 +124,7 @@
SUBDIR += go121
SUBDIR += go122
SUBDIR += go123
+ SUBDIR += go124
SUBDIR += gomacro
SUBDIR += gprolog
SUBDIR += gptscript
diff --git a/lang/go124/Makefile b/lang/go124/Makefile
new file mode 100644
index 000000000000..451733d48ec8
--- /dev/null
+++ b/lang/go124/Makefile
@@ -0,0 +1,29 @@
+DISTVERSION= 1.24.1
+# Always set PORTREVISION explicitly as otherwise they are inherited from lang/go-devel
+PORTREVISION= 0
+MASTER_SITES= https://golang.org/dl/
+DISTFILES= go${DISTVERSION}.src.tar.gz \
+ go1.23.7.${OPSYS:tl}-${GOARCH_${ARCH}}.tar.gz
+
+# Avoid conflicting patch files
+PATCHFILES=
+PATCHDIR= ${.CURDIR}/files
+
+COMMENT= Go programming language
+
+MASTERDIR= ${.CURDIR}/../go-devel
+WRKSRC= ${WRKDIR}/go
+DISTINFO_FILE= ${.CURDIR}/distinfo
+EXTRACT_ONLY= ${DISTFILES:[1]}
+
+SHEBANG_FILES= lib/wasm/go_js_wasm_exec lib/wasm/go_wasip1_wasm_exec
+
+BOOTSTRAP_WRKSRC= ${WRKDIR}/go-${OPSYS:tl}-${GOARCH_${ARCH}}${GOARM_${ARCH}}-bootstrap
+
+pre-extract:
+ ${MKDIR} ${BOOTSTRAP_WRKSRC}
+ cd ${BOOTSTRAP_WRKSRC} && ${EXTRACT_CMD} ${EXTRACT_BEFORE_ARGS} \
+ ${DISTDIR}/${DIST_SUBDIR}/${DISTFILES:[2]} \
+ --strip-components 1 ${EXTRACT_AFTER_ARGS}
+
+.include "${MASTERDIR}/Makefile"
diff --git a/lang/go124/distinfo b/lang/go124/distinfo
new file mode 100644
index 000000000000..e925427e56c7
--- /dev/null
+++ b/lang/go124/distinfo
@@ -0,0 +1,13 @@
+TIMESTAMP = 1741278429
+SHA256 (go1.24.1.src.tar.gz) = 8244ebf46c65607db10222b5806aeb31c1fcf8979c1b6b12f60c677e9a3c0656
+SIZE (go1.24.1.src.tar.gz) = 30777528
+SHA256 (go1.23.7.freebsd-arm64.tar.gz) = 2b51c940898fad6708609495b9a27b5869cf5195381fc4a31a013006aa4eb156
+SIZE (go1.23.7.freebsd-arm64.tar.gz) = 69903435
+SHA256 (go1.23.7.freebsd-amd64.tar.gz) = c0e7a5ff1875eb79d7c2acfa1616718ad892c0b2637d56594fdc3332e313efd4
+SIZE (go1.23.7.freebsd-amd64.tar.gz) = 73332706
+SHA256 (go1.23.7.freebsd-arm.tar.gz) = 311e69d052bb732bca74cb64cba2d7d648e9af7a5c5d0c5e84a11efb77d287d0
+SIZE (go1.23.7.freebsd-arm.tar.gz) = 71226717
+SHA256 (go1.23.7.freebsd-386.tar.gz) = 4bc9c3583236b13a9f1ec22c133fe4436714d56ebc0ee96733d4f6f0eb3c7ae1
+SIZE (go1.23.7.freebsd-386.tar.gz) = 71152629
+SHA256 (go1.23.7.freebsd-riscv64.tar.gz) = ab00bd1b61491be2d60ff41a88b3e59d812236484eaf6232513985a1287693ba
+SIZE (go1.23.7.freebsd-riscv64.tar.gz) = 70515235
diff --git a/lang/go124/files/patch-src_cmd_dist_build.go b/lang/go124/files/patch-src_cmd_dist_build.go
new file mode 100644
index 000000000000..59fd0c6539f8
--- /dev/null
+++ b/lang/go124/files/patch-src_cmd_dist_build.go
@@ -0,0 +1,23 @@
+--- src/cmd/dist/build.go.orig 2024-03-29 15:27:02 UTC
++++ src/cmd/dist/build.go
+@@ -891,6 +891,20 @@ func runInstall(pkg string, ch chan struct{}) {
+ asmArgs = append(asmArgs, "-D", "GOPPC64_power8")
+ }
+ }
++ if goarch == "arm" {
++ // Define GOARM_value from goarm, which can be either a version
++ // like "6", or a version and a FP mode, like "7,hardfloat".
++ switch {
++ case strings.Contains(goarm, "7"):
++ asmArgs = append(asmArgs, "-D", "GOARM_7")
++ fallthrough
++ case strings.Contains(goarm, "6"):
++ asmArgs = append(asmArgs, "-D", "GOARM_6")
++ fallthrough
++ default:
++ asmArgs = append(asmArgs, "-D", "GOARM_5")
++ }
++ }
+ goasmh := pathf("%s/go_asm.h", workdir)
+
+ // Collect symabis from assembly code.
diff --git a/lang/go124/files/patch-src_cmd_go_internal_modload_vendor.go b/lang/go124/files/patch-src_cmd_go_internal_modload_vendor.go
new file mode 100644
index 000000000000..ba3f97226624
--- /dev/null
+++ b/lang/go124/files/patch-src_cmd_go_internal_modload_vendor.go
@@ -0,0 +1,11 @@
+--- src/cmd/go/internal/modload/vendor.go.orig 2024-02-02 18:09:55 UTC
++++ src/cmd/go/internal/modload/vendor.go
+@@ -159,7 +159,7 @@ func checkVendorConsistency(indexes []*modFileIndex, m
+ panic(fmt.Errorf("not in workspace mode but number of indexes is %v, not 1", len(indexes)))
+ }
+ index := indexes[0]
+- if gover.Compare(index.goVersion, "1.14") < 0 {
++ if gover.Compare(index.goVersion, "1.14") < 0 || os.Getenv("GO_NO_VENDOR_CHECKS") == "1" {
+ // Go versions before 1.14 did not include enough information in
+ // vendor/modules.txt to check for consistency.
+ // If we know that we're on an earlier version, relax the consistency check.