diff -pruN 1.24.4-1/debian/changelog 1.24.4-1ubuntu1/debian/changelog
--- 1.24.4-1/debian/changelog	2025-06-16 11:34:18.000000000 +0000
+++ 1.24.4-1ubuntu1/debian/changelog	2025-08-29 12:52:14.000000000 +0000
@@ -1,3 +1,10 @@
+golang-1.24 (1.24.4-1ubuntu1) questing; urgency=medium
+
+  * d/p/fix-cgo-riscv64-gcc15.patch: fix cgo on riscv64 when building with
+    gcc-15 (LP: #2120636)
+
+ -- Athos Ribeiro <athos.ribeiro@canonical.com>  Fri, 29 Aug 2025 09:52:14 -0300
+
 golang-1.24 (1.24.4-1) unstable; urgency=medium
 
   * Team upload
diff -pruN 1.24.4-1/debian/control 1.24.4-1ubuntu1/debian/control
--- 1.24.4-1/debian/control	2025-06-16 11:34:18.000000000 +0000
+++ 1.24.4-1ubuntu1/debian/control	2025-08-29 12:52:14.000000000 +0000
@@ -3,7 +3,8 @@
 #
 
 Source: golang-1.24
-Maintainer: Debian Go Compiler Team <team+go-compiler@tracker.debian.org>
+Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
+XSBC-Original-Maintainer: Debian Go Compiler Team <team+go-compiler@tracker.debian.org>
 Uploaders: Michael Stapelberg <stapelberg@debian.org>,
            Paul Tagliamonte <paultag@debian.org>,
            Tianon Gravi <tianon@debian.org>,
diff -pruN 1.24.4-1/debian/control.in 1.24.4-1ubuntu1/debian/control.in
--- 1.24.4-1/debian/control.in	2025-06-16 11:34:18.000000000 +0000
+++ 1.24.4-1ubuntu1/debian/control.in	2025-08-29 12:52:14.000000000 +0000
@@ -1,5 +1,6 @@
 Source: golang-X.Y
-Maintainer: Debian Go Compiler Team <team+go-compiler@tracker.debian.org>
+Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
+XSBC-Original-Maintainer: Debian Go Compiler Team <team+go-compiler@tracker.debian.org>
 Uploaders: Michael Stapelberg <stapelberg@debian.org>,
            Paul Tagliamonte <paultag@debian.org>,
            Tianon Gravi <tianon@debian.org>,
diff -pruN 1.24.4-1/debian/patches/fix-cgo-riscv64-gcc15.patch 1.24.4-1ubuntu1/debian/patches/fix-cgo-riscv64-gcc15.patch
--- 1.24.4-1/debian/patches/fix-cgo-riscv64-gcc15.patch	1970-01-01 00:00:00.000000000 +0000
+++ 1.24.4-1ubuntu1/debian/patches/fix-cgo-riscv64-gcc15.patch	2025-08-29 12:52:14.000000000 +0000
@@ -0,0 +1,76 @@
+From 12e5efd71011fbb5816a1d815e91b5c865fa9a83 Mon Sep 17 00:00:00 2001
+From: Mark Ryan <markdryan@rivosinc.com>
+Date: Fri, 25 Apr 2025 17:23:49 +0200
+Subject: [PATCH] cmd/link: fix cgo on riscv64 when building with gcc-15
+
+It's not currently possible to build cgo programs that are partially
+compiled with gcc-15 on riscv64 using the internal linker. There are
+two reasons for this.
+
+1. When gcc-15 compiles _cgo_export.c, which contains no actual code,
+   for a riscv64 target, it emits a label in the .text section called
+   .Letext0. This label is referred to by another section, .debug_line,
+   and an entry is generated in the symbol table for it. The Go linker
+   panics when processing the .Letext0 symbol in _cgo_export.o, as it
+   occurs in an empty section.
+2. GCC-15 is generating additional debug symbols with the .LVUS
+   prefix, e.g., .LVUS33, that need to be ignored.
+
+We fix the issue by removing the check in
+cmd/link/internal/loader/loader.go that panics if we encounter a
+symbol in an empty section (the comments preceding this check suggest
+it's safe to remove it) and by adding .LVUS to the list of symbol
+prefixes to ignore.
+
+Fixes #72840
+
+Change-Id: I00658b6bdd01606dde1581b5bc2f42edfc37de82
+Reviewed-on: https://go-review.googlesource.com/c/go/+/668276
+Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org>
+LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
+Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
+Reviewed-by: Joel Sing <joel@sing.id.au>
+Reviewed-by: Carlos Amedee <carlos@golang.org>
+Reviewed-by: Meng Zhuo <mengzhuo1203@gmail.com>
+
+Origin: upstream, https://github.com/golang/go/commit/12e5efd71011fbb5816a1d815e91b5c865fa9a83
+Bug: https://github.com/golang/go/issues/72840
+Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/golang-1.24/+bug/2120636
+Last-Update: 2025-08-29
+---
+ src/cmd/link/internal/loadelf/ldelf.go | 2 +-
+ src/cmd/link/internal/loader/loader.go | 8 --------
+ 2 files changed, 1 insertion(+), 9 deletions(-)
+
+diff --git a/src/cmd/link/internal/loadelf/ldelf.go b/src/cmd/link/internal/loadelf/ldelf.go
+index e0363b5535ccea..9f251e746b79ad 100644
+--- a/src/cmd/link/internal/loadelf/ldelf.go
++++ b/src/cmd/link/internal/loadelf/ldelf.go
+@@ -609,7 +609,7 @@ func Load(l *loader.Loader, arch *sys.Arch, localSymVersion int, f *bio.Reader,
+ 				continue
+ 			}
+ 
+-			if strings.HasPrefix(elfsym.name, ".LASF") || strings.HasPrefix(elfsym.name, ".LLRL") || strings.HasPrefix(elfsym.name, ".LLST") {
++			if strings.HasPrefix(elfsym.name, ".LASF") || strings.HasPrefix(elfsym.name, ".LLRL") || strings.HasPrefix(elfsym.name, ".LLST") || strings.HasPrefix(elfsym.name, ".LVUS") {
+ 				// gcc on s390x and riscv64 does this.
+ 				continue
+ 			}
+diff --git a/src/cmd/link/internal/loader/loader.go b/src/cmd/link/internal/loader/loader.go
+index 6a7057b80e81ea..128173b8cf990c 100644
+--- a/src/cmd/link/internal/loader/loader.go
++++ b/src/cmd/link/internal/loader/loader.go
+@@ -1719,14 +1719,6 @@ func (l *Loader) GetVarDwarfAuxSym(i Sym) Sym {
+ // expected to have the actual content/payload) and then a set of
+ // interior loader.Sym's that point into a portion of the container.
+ func (l *Loader) AddInteriorSym(container Sym, interior Sym) {
+-	// Container symbols are expected to have content/data.
+-	// NB: this restriction may turn out to be too strict (it's possible
+-	// to imagine a zero-sized container with an interior symbol pointing
+-	// into it); it's ok to relax or remove it if we counter an
+-	// oddball host object that triggers this.
+-	if l.SymSize(container) == 0 && len(l.Data(container)) == 0 {
+-		panic("unexpected empty container symbol")
+-	}
+ 	// The interior symbols for a container are not expected to have
+ 	// content/data or relocations.
+ 	if len(l.Data(interior)) != 0 {
diff -pruN 1.24.4-1/debian/patches/series 1.24.4-1ubuntu1/debian/patches/series
--- 1.24.4-1/debian/patches/series	2025-06-16 11:34:18.000000000 +0000
+++ 1.24.4-1ubuntu1/debian/patches/series	2025-08-29 12:52:04.000000000 +0000
@@ -1,2 +1,3 @@
 0001-Skip-flaky-TestCrashDumpsAllThreads-on-mips64le.patch
 0002-Skip-flaky-TestCrashDumpsAllThreads-on-s390x.patch
+fix-cgo-riscv64-gcc15.patch
