diff --git a/common/shlibs b/common/shlibs
index d66a3f71f3e..f409db8f7bb 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -73,6 +73,9 @@ libmpfr.so.6 mpfr-4.0.0_1
 libppl.so.14 ppl-1.2_1
 libppl_c.so.4 ppl-0.11_1
 libstdc++.so.6 libstdc++-4.4.0_1
+libsframe.so.1 binutils-libs-2.41_1
+libctf-nobfd.so.0 binutils-libs-2.41_1
+libctf.so.0 binutils-libs-2.41_1
 libncurses.so.6 ncurses-libs-6.0_1 ignore
 libncursesw.so.6 ncurses-libs-5.8_1 ignore
 libtinfo.so.6 ncurses-libtinfo-libs-6.2_2
diff --git a/srcpkgs/binutils-libs b/srcpkgs/binutils-libs
new file mode 120000
index 00000000000..695eb82eae6
--- /dev/null
+++ b/srcpkgs/binutils-libs
@@ -0,0 +1 @@
+binutils
\ No newline at end of file
diff --git a/srcpkgs/binutils/patches/fix-libcollector-without-java.patch b/srcpkgs/binutils/patches/fix-libcollector-without-java.patch
deleted file mode 100644
index 54384875f35..00000000000
--- a/srcpkgs/binutils/patches/fix-libcollector-without-java.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 49ddd814ac1071af7c4f45d5f8398b91862f2c7f Mon Sep 17 00:00:00 2001
-From: Vladimir Mezentsev <vladimir.mezentsev@oracle.com>
-Date: Wed, 17 Aug 2022 19:55:23 -0700
-Subject: [PATCH] gprofng: fix bug 29479 Collection fails when built without
- java support
-
-gprofng/ChangeLog
-2022-08-17  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
-
-	PR gprofng/29479
-	* libcollector/collector.c: Add #if defined(GPROFNG_JAVA_PROFILING) for
-	java specific code.
-	* libcollector/unwind.c: Likewise.
----
- gprofng/libcollector/collector.c | 2 ++
- gprofng/libcollector/unwind.c    | 2 ++
- 2 files changed, 4 insertions(+)
-
-diff --git a/gprofng/libcollector/collector.c b/gprofng/libcollector/collector.c
-index 93c9d3330de5..ceff2c1caccb 100644
---- a/gprofng/libcollector/collector.c
-+++ b/gprofng/libcollector/collector.c
-@@ -913,8 +913,10 @@ __collector_open_experiment (const char *exp, const char *params, sp_origin_t or
-   __collector_ext_unwind_key_init (1, NULL);
- 
-   /* start java attach if suitable */
-+#if defined(GPROFNG_JAVA_PROFILING)
-   if (exp_origin == SP_ORIGIN_DBX_ATTACH)
-     __collector_jprofile_start_attach ();
-+#endif
-   start_sec_time = CALL_UTIL (time)(NULL);
-   __collector_start_time = collector_interface.getHiResTime ();
-   TprintfT (DBG_LT0, "\t__collector_open_experiment; resetting start_time\n");
-diff --git a/gprofng/libcollector/unwind.c b/gprofng/libcollector/unwind.c
-index 119243788020..f8e11823c81e 100644
---- a/gprofng/libcollector/unwind.c
-+++ b/gprofng/libcollector/unwind.c
-@@ -557,6 +557,7 @@ __collector_get_frame_info (hrtime_t ts, int mode, void *arg)
-   int size = max_frame_size;
- 
- #define MIN(a,b) ((a)<(b)?(a):(b))
-+#if defined(GPROFNG_JAVA_PROFILING)
-   /* get Java info */
-   if (__collector_java_mode && __collector_java_asyncgetcalltrace_loaded && context && !pseudo_context)
-     {
-@@ -569,6 +570,7 @@ __collector_get_frame_info (hrtime_t ts, int mode, void *arg)
- 	  size -= sz;
- 	}
-     }
-+#endif
- 
-   /* get native stack */
-   if (context)
diff --git a/srcpkgs/binutils/template b/srcpkgs/binutils/template
index 36b71c2b5e9..219b1ba543c 100644
--- a/srcpkgs/binutils/template
+++ b/srcpkgs/binutils/template
@@ -1,16 +1,17 @@
 # Template file for 'binutils'
 pkgname=binutils
-version=2.39
-revision=3
+version=2.41
+revision=1
 bootstrap=yes
 hostmakedepends="pkgconf"
-makedepends="zlib-devel"
+makedepends="zlib-devel libzstd-devel"
 short_desc="GNU binary utilities"
 maintainer="Enno Boland <gottox@voidlinux.org>"
 license="GPL-3.0-or-later"
 homepage="http://www.gnu.org/software/binutils/"
 distfiles="${GNU_SITE}/binutils/binutils-${version}.tar.xz"
-checksum=645c25f563b8adc0a81dbd6a41cffbf4d37083a382e02d5d3df4f65c09516d00
+checksum=ae9a5789e23459e59606e6714723f2d3ffc31c03174191ef0d015bdf06007450
+nocross=temporarily
 
 build_options="all_targets"
 desc_option_all_targets="Enable all supported targets"
@@ -21,8 +22,8 @@ if [ "$CHROOT_READY" ]; then
 	hostmakedepends+=" flex perl texinfo"
 	makedepends+=" elfutils-devel"
 	checkdepends="bc"
-	depends="binutils-doc"
-	subpackages+=" libiberty-devel binutils-devel"
+	depends="binutils-doc binutils-libs"
+	subpackages+=" libiberty-devel binutils-libs binutils-devel"
 fi
 
 _get_triplet() {
@@ -138,9 +139,9 @@ do_install() {
 		# Remove these symlinks, they are not ABI stable.
 		# Programs should compile static to the .a file.
 		rm -f ${DESTDIR}/usr/lib/lib{bfd,opcodes}.so
-		echo "INPUT ( /usr/lib/libbfd.a -liberty -lz )" \
+		echo "INPUT ( /usr/lib${XBPS_TARGET_WORDSIZE}/libbfd.a -lsframe -liberty -lzstd -lz )" \
 			>${DESTDIR}/usr/lib/libbfd.so
-		echo "INPUT ( /usr/lib/libopcodes.a -lbfd )" \
+		echo "INPUT ( /usr/lib${XBPS_TARGET_WORDSIZE}/libopcodes.a -lbfd )" \
 			>${DESTDIR}/usr/lib/libopcodes.so
 
 		# Install PIC version of libiberty.a
@@ -158,13 +159,20 @@ do_install() {
 }
 
 binutils-devel_package() {
-	depends="zlib-devel libiberty-devel"
+	depends="binutils-libs zlib-devel libzstd-devel libiberty-devel"
 	short_desc+=" - development files"
 	pkg_install() {
 		vmove usr/include
 		vmove "usr/lib/*.a"
-		vmove "usr/lib/libbfd.so"
-		vmove "usr/lib/libopcodes.so"
+		vmove "usr/lib/*.so"
+	}
+}
+
+binutils-libs_package() {
+	short_desc+=" - shared libraries"
+	pkg_install() {
+		vmove "usr/lib/lib*-${version}.so"
+		vmove "usr/lib/*.so.*"
 	}
 }