net-analyzer/netperf: Sync with Gentoo

It's from Gentoo commit 40bc7aaa27be1c1259d9d05cf49e93aa16bd3a4b.

Signed-off-by: Flatcar Buildbot <buildbot@flatcar-linux.org>
This commit is contained in:
Flatcar Buildbot 2026-03-02 07:28:14 +00:00 committed by Krzesimir Nowak
parent c4839da883
commit 4fc5743766
2 changed files with 247 additions and 0 deletions

View File

@ -0,0 +1,167 @@
From 2bf2c2d7b6fecc43c70567054071134ab13ef0a6 Mon Sep 17 00:00:00 2001
From: "mark.yang" <mark.yang@lge.com>
Date: Wed, 16 Apr 2025 20:02:36 +0900
Subject: [PATCH] Fix too many arguments error occurring in gcc-15
* See more details in http://errors.yoctoproject.org/Errors/Details/851803/
../../git/src/nettest_bsd.c:4497:19: error: too many arguments to function 'alloc_sendfile_buf_ring'; expected 0, have 4
4497 | send_ring = alloc_sendfile_buf_ring(send_width,
| ^~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~
In file included from ../../git/src/nettest_bsd.c:175:
../../git/src/netlib.h:690:26: note: declared here
690 | extern struct ring_elt *alloc_sendfile_buf_ring();
| ^~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../git/src/nettest_omni.c:184:
../../git/src/hist.h:135:6: error: conflicting types for 'HIST_purge'; have 'void(struct histogram_struct *)'
135 | void HIST_purge(HIST h);
| ^~~~~~~~~~
In file included from ../../git/src/nettest_omni.c:166:
../../git/src/netlib.h:651:17: note: previous declaration of 'HIST_purge' with type 'void(void)'
651 | extern void HIST_purge();
| ^~~~~~~~~~
../../git/src/nettest_bsd.c: In function 'recv_tcp_stream':
../../git/src/nettest_bsd.c:5197:15: error: too many arguments to function 'allocate_buffer_ring'; expected 0, have 4
5197 | recv_ring = allocate_buffer_ring(recv_width,
| ^~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~
../../git/src/netlib.h:679:26: note: declared here
679 | extern struct ring_elt *allocate_buffer_ring();
| ^~~~~~~~~~~~~~~~~~~~
../../git/src/nettest_bsd.c: In function 'recv_tcp_maerts':
../../git/src/nettest_bsd.c:5617:15: error: too many arguments to function 'allocate_buffer_ring'; expected 0, have 4
5617 | send_ring = allocate_buffer_ring(send_width,
| ^~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~
../../git/src/netlib.h:679:26: note: declared here
679 | extern struct ring_elt *allocate_buffer_ring();
| ^~~~~~~~~~~~~~~~~~~~
../../git/src/nettest_bsd.c: In function 'recv_udp_stream':
../../git/src/nettest_bsd.c:7345:15: error: too many arguments to function 'allocate_buffer_ring'; expected 0, have 4
7345 | recv_ring = allocate_buffer_ring(recv_width,
| ^~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~
../../git/src/netlib.h:679:26: note: declared here
679 | extern struct ring_elt *allocate_buffer_ring();
| ^~~~~~~~~~~~~~~~~~~~
../../git/src/nettest_bsd.c: In function 'recv_udp_rr':
../../git/src/nettest_bsd.c:8360:15: error: too many arguments to function 'allocate_buffer_ring'; expected 0, have 4
8360 | recv_ring = allocate_buffer_ring(recv_width,
| ^~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~
../../git/src/netlib.h:679:26: note: declared here
679 | extern struct ring_elt *allocate_buffer_ring();
| ^~~~~~~~~~~~~~~~~~~~
../../git/src/nettest_bsd.c:8365:15: error: too many arguments to function 'allocate_buffer_ring'; expected 0, have 4
8365 | send_ring = allocate_buffer_ring(send_width,
| ^~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~
../../git/src/netlib.h:679:26: note: declared here
679 | extern struct ring_elt *allocate_buffer_ring();
| ^~~~~~~~~~~~~~~~~~~~
../../git/src/nettest_bsd.c: In function 'recv_tcp_rr':
../../git/src/nettest_bsd.c:8677:15: error: too many arguments to function 'allocate_buffer_ring'; expected 0, have 4
8677 | send_ring = allocate_buffer_ring(send_width,
| ^~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~
../../git/src/netlib.h:679:26: note: declared here
679 | extern struct ring_elt *allocate_buffer_ring();
| ^~~~~~~~~~~~~~~~~~~~
../../git/src/nettest_bsd.c:8682:15: error: too many arguments to function 'allocate_buffer_ring'; expected 0, have 4
8682 | recv_ring = allocate_buffer_ring(recv_width,
| ^~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~
../../git/src/netlib.h:679:26: note: declared here
679 | extern struct ring_elt *allocate_buffer_ring();
| ^~~~~~~~~~~~~~~~~~~~
../../git/src/nettest_omni.c: In function 'send_omni_inner':
../../git/src/nettest_omni.c:4044:21: error: too many arguments to function 'allocate_buffer_ring'; expected 0, have 4
4044 | send_ring = allocate_buffer_ring(send_width,
| ^~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~
../../git/src/netlib.h:679:26: note: declared here
679 | extern struct ring_elt *allocate_buffer_ring();
| ^~~~~~~~~~~~~~~~~~~~
../../git/src/nettest_omni.c:4086:21: error: too many arguments to function 'allocate_buffer_ring'; expected 0, have 4
4086 | recv_ring = allocate_buffer_ring(recv_width,
| ^~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~
../../git/src/netlib.h:679:26: note: declared here
679 | extern struct ring_elt *allocate_buffer_ring();
| ^~~~~~~~~~~~~~~~~~~~
../../git/src/nettest_omni.c:5050:5: error: too many arguments to function 'HIST_get_stats'; expected 0, have 5
5050 | HIST_get_stats(time_hist,
| ^~~~~~~~~~~~~~ ~~~~~~~~~
../../git/src/netlib.h:650:17: note: declared here
650 | extern void HIST_get_stats();
| ^~~~~~~~~~~~~~
../../git/src/nettest_omni.c:5055:19: error: too many arguments to function 'HIST_get_percentile'; expected 0, have 2
5055 | p50_latency = HIST_get_percentile(time_hist, 0.50);
| ^~~~~~~~~~~~~~~~~~~ ~~~~~~~~~
../../git/src/netlib.h:649:17: note: declared here
649 | extern int HIST_get_percentile();
| ^~~~~~~~~~~~~~~~~~~
../../git/src/nettest_omni.c:5056:19: error: too many arguments to function 'HIST_get_percentile'; expected 0, have 2
5056 | p90_latency = HIST_get_percentile(time_hist, 0.90);
| ^~~~~~~~~~~~~~~~~~~ ~~~~~~~~~
../../git/src/netlib.h:649:17: note: declared here
649 | extern int HIST_get_percentile();
| ^~~~~~~~~~~~~~~~~~~
../../git/src/nettest_omni.c:5057:19: error: too many arguments to function 'HIST_get_percentile'; expected 0, have 2
5057 | p99_latency = HIST_get_percentile(time_hist, 0.99);
| ^~~~~~~~~~~~~~~~~~~ ~~~~~~~~~
../../git/src/netlib.h:649:17: note: declared here
649 | extern int HIST_get_percentile();
| ^~~~~~~~~~~~~~~~~~~
../../git/src/nettest_omni.c: In function 'recv_omni':
../../git/src/nettest_omni.c:5354:17: error: too many arguments to function 'allocate_buffer_ring'; expected 0, have 4
5354 | send_ring = allocate_buffer_ring(send_width,
| ^~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~
../../git/src/netlib.h:679:26: note: declared here
679 | extern struct ring_elt *allocate_buffer_ring();
| ^~~~~~~~~~~~~~~~~~~~
../../git/src/nettest_omni.c:5396:17: error: too many arguments to function 'allocate_buffer_ring'; expected 0, have 4
5396 | recv_ring = allocate_buffer_ring(recv_width,
| ^~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~
../../git/src/netlib.h:679:26: note: declared here
679 | extern struct ring_elt *allocate_buffer_ring();
| ^~~~~~~~~~~~~~~~~~~~
Signed-off-by: mark.yang <mark.yang@lge.com>
---
src/netlib.h | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/src/netlib.h b/src/netlib.h
index b1f4199..8e1f6fe 100644
--- a/src/netlib.h
+++ b/src/netlib.h
@@ -564,6 +564,7 @@ extern void demo_interval_final();
#endif
#endif
+#include "hist.h"
extern void netlib_init();
extern int netlib_get_page_size();
extern void install_signal_catchers();
@@ -646,9 +647,9 @@ extern char *find_interface_slot(char *interface_name);
extern void find_interface_ids(char *interface_name, int *vendor, int *device, int *sub_vend, int *sub_dev);
extern void find_driver_info(char *ifname, char *driver, char *version, char *firmware, char *bus, int len);
extern void find_system_info(char **system_model, char **cpu_model, int *cpu_frequency);
-extern int HIST_get_percentile();
-extern void HIST_get_stats();
-extern void HIST_purge();
+extern int HIST_get_percentile(HIST h, const double percentile);
+extern void HIST_get_stats(HIST h, int *min, int *max, double *mean, double *stddev);
+extern void HIST_purge(HIST h);
extern void find_security_info(int *enabled, int *type, char **specific);
extern void demo_first_timestamp();
extern void demo_reset();
@@ -676,7 +677,7 @@ extern void catcher(int, siginfo_t *,void *);
#else
extern void catcher(int);
#endif /* __hpux */
-extern struct ring_elt *allocate_buffer_ring();
+extern struct ring_elt *allocate_buffer_ring(int recv_width, int recv_size, int local_recv_align, int local_recv_offset);
extern void access_buffer(char *buffer_ptr,
int length,
int dirty_count,
@@ -687,7 +688,7 @@ extern struct ring_elt *allocate_exs_buffer_ring();
#endif /* HAVE_ICSC_EXS */
#ifdef HAVE_SENDFILE
-extern struct ring_elt *alloc_sendfile_buf_ring();
+extern struct ring_elt *alloc_sendfile_buf_ring(int send_width, int send_size, int local_send_align, int local_send_offset);
extern int netperf_sendfile(SOCKET send_socket, struct ring_elt *send_ring);
#endif /* HAVE_SENDFILE */

View File

@ -0,0 +1,80 @@
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit autotools flag-o-matic
COMMIT="3bc455b23f901dae377ca0a558e1e32aa56b31c4"
DESCRIPTION="Network performance benchmark"
HOMEPAGE="https://github.com/HewlettPackard/netperf"
SRC_URI="https://github.com/HewlettPackard/${PN}/archive/${COMMIT}.tar.gz -> ${P}.tar.gz"
S="${WORKDIR}/${PN}-${COMMIT}"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86"
IUSE="demo sctp"
RDEPEND="
acct-group/netperf
acct-user/netperf
"
BDEPEND="
${RDEPEND}
sys-devel/gnuconfig
"
PATCHES=(
"${FILESDIR}"/${PN}-fix-scripts.patch
"${FILESDIR}"/${PN}-log-dir.patch
"${FILESDIR}"/${PN}-2.7.0-includes.patch
"${FILESDIR}"/${PN}-2.7.0-fcommon.patch
"${FILESDIR}"/${PN}-2.7.0-gcc15.patch
)
src_prepare() {
# Fixing paths in scripts
sed -i \
-e "s:^\(NETHOME=\).*:\1\"${EPREFIX}/usr/bin\":" \
doc/examples/sctp_stream_script \
doc/examples/tcp_range_script \
doc/examples/tcp_rr_script \
doc/examples/tcp_stream_script \
doc/examples/udp_rr_script \
doc/examples/udp_stream_script \
|| die
default
AT_M4DIR=src/missing/m4 eautoreconf
}
src_configure() {
# netlib.c:2292:5: warning: implicit declaration of function 'sched_setaffinity'
# nettest_omni.c:2943:5: warning: implicit declaration of function 'splice'
# TODO: drop once https://github.com/HewlettPackard/netperf/pull/73 is merged
append-cppflags -D_GNU_SOURCE
econf \
$(use_enable demo) \
$(use_enable sctp)
}
src_install() {
default
# init.d / conf.d
newinitd "${FILESDIR}"/${PN}-2.7.0-init netperf
newconfd "${FILESDIR}"/${PN}-2.2-conf netperf
keepdir /var/log/${PN}
fowners netperf:netperf /var/log/${PN}
fperms 0755 /var/log/${PN}
# documentation and example scripts
dodoc AUTHORS ChangeLog NEWS README Release_Notes doc/${PN}.txt
docinto html
dodoc doc/${PN}.html
exeinto /usr/share/${PN}/examples
doexe doc/examples/*_script
}