commit:     debd0a8b5082f5189da33070cda7ad33db9be85c
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Wed Feb 15 05:30:52 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed Feb 15 05:30:52 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=debd0a8b

sys-apps/ethtool: fix build w/ musl

Closes: https://bugs.gentoo.org/889402
Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-apps/ethtool/ethtool-6.1.ebuild           |  6 ++-
 sys-apps/ethtool/files/ethtool-6.1-musl.patch | 64 +++++++++++++++++++++++++++
 2 files changed, 69 insertions(+), 1 deletion(-)

diff --git a/sys-apps/ethtool/ethtool-6.1.ebuild 
b/sys-apps/ethtool/ethtool-6.1.ebuild
index 8d122a733c09..d0b52cc1fe47 100644
--- a/sys-apps/ethtool/ethtool-6.1.ebuild
+++ b/sys-apps/ethtool/ethtool-6.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=8
@@ -16,6 +16,10 @@ RDEPEND="netlink? ( net-libs/libmnl )"
 DEPEND="${RDEPEND}"
 BDEPEND="app-arch/xz-utils"
 
+PATCHES=(
+       "${FILESDIR}"/${P}-musl.patch
+)
+
 src_configure() {
        econf $(use_enable netlink)
 }

diff --git a/sys-apps/ethtool/files/ethtool-6.1-musl.patch 
b/sys-apps/ethtool/files/ethtool-6.1-musl.patch
new file mode 100644
index 000000000000..ed441a4511da
--- /dev/null
+++ b/sys-apps/ethtool/files/ethtool-6.1-musl.patch
@@ -0,0 +1,64 @@
+https://bugs.gentoo.org/889402
+https://git.kernel.org/pub/scm/network/ethtool/ethtool.git/commit/?id=41be533331fc3c6b711dbe532405782d3b8be5d1
+
+From 41be533331fc3c6b711dbe532405782d3b8be5d1 Mon Sep 17 00:00:00 2001
+From: Florian Fainelli <[email protected]>
+Date: Sat, 14 Jan 2023 08:34:11 -0800
+Subject: marvell.c: Fix build with musl-libc
+
+After commit 1fa60003a8b8 ("misc: header includes cleanup") we stopped
+including net/if.h which resolved the proper defines to pull in
+sys/types.h and provide a definition for u_int32_t. With musl-libc we
+would need to define _GNU_SOURCE to ensure that sys/types.h does provide a
+definition for u_int32_t.
+
+Rather, just replace u_uint{16,32}_t with the more standard
+uint{16,32}_t types from stdint.h
+
+Fixes: 1fa60003a8b8 ("misc: header includes cleanup")
+Signed-off-by: Florian Fainelli <[email protected]>
+--- a/marvell.c
++++ b/marvell.c
+@@ -31,23 +31,23 @@ static void dump_timer(const char *name, const void *p)
+ static void dump_queue(const char *name, const void *a, int rx)
+ {
+       struct desc {
+-              u_int32_t               ctl;
+-              u_int32_t               next;
+-              u_int32_t               data_lo;
+-              u_int32_t               data_hi;
+-              u_int32_t               status;
+-              u_int32_t               timestamp;
+-              u_int16_t               csum2;
+-              u_int16_t               csum1;
+-              u_int16_t               csum2_start;
+-              u_int16_t               csum1_start;
+-              u_int32_t               addr_lo;
+-              u_int32_t               addr_hi;
+-              u_int32_t               count_lo;
+-              u_int32_t               count_hi;
+-              u_int32_t               byte_count;
+-              u_int32_t               csr;
+-              u_int32_t               flag;
++              uint32_t                ctl;
++              uint32_t                next;
++              uint32_t                data_lo;
++              uint32_t                data_hi;
++              uint32_t                status;
++              uint32_t                timestamp;
++              uint16_t                csum2;
++              uint16_t                csum1;
++              uint16_t                csum2_start;
++              uint16_t                csum1_start;
++              uint32_t                addr_lo;
++              uint32_t                addr_hi;
++              uint32_t                count_lo;
++              uint32_t                count_hi;
++              uint32_t                byte_count;
++              uint32_t                csr;
++              uint32_t                flag;
+       };
+       const struct desc *d = a;
+ 
+-- 
+cgit

Reply via email to