* [Buildroot] [PATCH] package/iozone: fix build without ASYNC_IO with GCC >= 15
@ 2026-10-22 20:59 Yegor Yefremov
2026-10-22 21:23 ` Thomas Petazzoni via buildroot
0 siblings, 1 reply; 2+ messages in thread
From: Yegor Yefremov @ 2026-10-22 20:59 UTC (permalink / raw)
To: buildroot; +Cc: Gilles Talis
With uClibc, iozone is built with the linux-noaio target, where the
async_*() stubs are declared and defined without parameter lists. GCC 15
defaults to C23, where an empty parameter list means the function takes
no arguments, so the build fails:
iozone.c:8150:32: error: too many arguments to function 'async_write_no_copy'; expected 0, have 7
iozone.c:9126:31: error: too many arguments to function 'async_read_no_copy'; expected 0, have 8
iozone.c:20165:1: error: conflicting types for 'async_init'; have 'void(void)'
Add a patch, sent upstream, that gives the stubs full prototypes
matching their ASYNC_IO counterparts. iozone 3.510, the latest release,
still has the same stubs, so a version bump wouldn't help.
This issue has been present since commit 75891397abe6 ("package/gcc:
add support for GCC 15.x"), as GCC 15 is the first version defaulting
to C23. It therefore affects 2025.08 and later, i.e. 2025.11.x,
2026.02.x, 2026.05.x and 2026.08.x when GCC 15 is used. 2025.02.x is
not affected as it doesn't support GCC 15.
Fixes:
https://autobuild.buildroot.org/results/4090fb0d0a3b8bee60707b1672c35dada744bff5
Fixes: 75891397abe60dbe3d82a1ec39654ff81d1b1406 ("package/gcc: add support for GCC 15.x")
Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
---
...x-build-without-ASYNC_IO-with-GCC-15.patch | 96 +++++++++++++++++++
1 file changed, 96 insertions(+)
create mode 100644 package/iozone/0004-Fix-build-without-ASYNC_IO-with-GCC-15.patch
diff --git a/package/iozone/0004-Fix-build-without-ASYNC_IO-with-GCC-15.patch b/package/iozone/0004-Fix-build-without-ASYNC_IO-with-GCC-15.patch
new file mode 100644
index 0000000000..b049ce60ed
--- /dev/null
+++ b/package/iozone/0004-Fix-build-without-ASYNC_IO-with-GCC-15.patch
@@ -0,0 +1,96 @@
+From 0cc510655874362bc95c608021ef7921ae389559 Mon Sep 17 00:00:00 2001
+From: Yegor Yefremov <yegorslists@googlemail.com>
+Date: Thu, 22 Oct 2026 22:16:32 +0200
+Subject: [PATCH] Fix build without ASYNC_IO with GCC >= 15
+
+Without ASYNC_IO (e.g. the linux-noaio target), the async_*() stubs
+are declared and defined without parameter lists. GCC 15 defaults to
+C23, where an empty parameter list means the function takes no
+arguments, so the build fails:
+
+iozone.c:8150:32: error: too many arguments to function 'async_write_no_copy'; expected 0, have 7
+iozone.c:9126:31: error: too many arguments to function 'async_read_no_copy'; expected 0, have 8
+iozone.c:20165:1: error: conflicting types for 'async_init'; have 'void(void)'
+
+Give the stubs full prototypes matching their ASYNC_IO counterparts,
+with the long long * cache pointer used without ASYNC_IO.
+
+Upstream: sent to capps@iozone.org
+Assisted-by: Claude:claude-opus-5-5
+Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
+---
+ src/current/iozone.c | 26 +++++++++++++++-----------
+ 1 file changed, 15 insertions(+), 11 deletions(-)
+
+diff --git a/src/current/iozone.c b/src/current/iozone.c
+index 8de26cf..5542714 100755
+--- a/src/current/iozone.c
++++ b/src/current/iozone.c
+@@ -1332,11 +1332,11 @@ size_t async_write_no_copy(struct cache *,long long ,char *,long long,long long,
+ #else
+ long long *gc=0;
+ void async_init(long long **,int,int);
+-int async_read();
+-int async_read_no_copy();
+-size_t async_write();
+-size_t async_write_no_copy();
+-void async_release();
++int async_read(long long *, long long , char *, off64_t, long long, long long, off64_t, long long);
++int async_read_no_copy(long long *, long long, char **, off64_t, long long, long long, off64_t, long long);
++size_t async_write(long long *,long long, char *, long long, off64_t, long long);
++size_t async_write_no_copy(long long *,long long ,char *,long long,long long,long long,char *);
++void async_release(long long *);
+ #endif
+ void do_float(int, double, int, int);
+ int create_xls(char *);
+@@ -20144,37 +20144,41 @@ long long length;
+
+ #ifndef ASYNC_IO
+ int
+-async_read()
++async_read(long long *gc, long long fd, char *ubuffer, off64_t offset,
++ long long size, long long stride, off64_t max, long long depth)
+ {
+ printf("Your system does not support async I/O\n");
+ exit(169);
+ }
+ size_t
+-async_write_no_copy()
++async_write_no_copy(long long *gc, long long fd, char *buffer, long long size,
++ long long stride, long long depth, char *free_addr)
+ {
+ printf("Your system does not support async I/O\n");
+ exit(170);
+ }
+ size_t
+-async_write()
++async_write(long long *gc, long long fd, char *buffer, long long size,
++ off64_t offset, long long depth)
+ {
+ printf("Your system does not support async I/O\n");
+ exit(171);
+ }
+ void
+-async_init()
++async_init(long long **gc, int fd, int flag)
+ {
+ printf("Your system does not support async I/O\n");
+ exit(172);
+ }
+ int
+-async_read_no_copy()
++async_read_no_copy(long long *gc, long long fd, char **ubuffer, off64_t offset,
++ long long size, long long stride, off64_t max, long long depth)
+ {
+ printf("Your system does not support async I/O\n");
+ exit(172);
+ }
+ void
+-async_release()
++async_release(long long *gc)
+ {
+ printf("Your system does not support async I/O\n");
+ exit(173);
+--
+2.34.1
+
--
2.34.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [Buildroot] [PATCH] package/iozone: fix build without ASYNC_IO with GCC >= 15
2026-10-22 20:59 [Buildroot] [PATCH] package/iozone: fix build without ASYNC_IO with GCC >= 15 Yegor Yefremov
@ 2026-10-22 21:23 ` Thomas Petazzoni via buildroot
0 siblings, 0 replies; 2+ messages in thread
From: Thomas Petazzoni via buildroot @ 2026-10-22 21:23 UTC (permalink / raw)
To: Yegor Yefremov; +Cc: buildroot, Gilles Talis
On Thu, Oct 22, 2026 at 10:59:26PM +0200, Yegor Yefremov wrote:
> With uClibc, iozone is built with the linux-noaio target, where the
> async_*() stubs are declared and defined without parameter lists. GCC 15
> defaults to C23, where an empty parameter list means the function takes
> no arguments, so the build fails:
>
> iozone.c:8150:32: error: too many arguments to function 'async_write_no_copy'; expected 0, have 7
> iozone.c:9126:31: error: too many arguments to function 'async_read_no_copy'; expected 0, have 8
> iozone.c:20165:1: error: conflicting types for 'async_init'; have 'void(void)'
>
> Add a patch, sent upstream, that gives the stubs full prototypes
> matching their ASYNC_IO counterparts. iozone 3.510, the latest release,
> still has the same stubs, so a version bump wouldn't help.
>
> This issue has been present since commit 75891397abe6 ("package/gcc:
> add support for GCC 15.x"), as GCC 15 is the first version defaulting
> to C23. It therefore affects 2025.08 and later, i.e. 2025.11.x,
> 2026.02.x, 2026.05.x and 2026.08.x when GCC 15 is used. 2025.02.x is
> not affected as it doesn't support GCC 15.
>
> Fixes:
> https://autobuild.buildroot.org/results/4090fb0d0a3b8bee60707b1672c35dada744bff5
>
> Fixes: 75891397abe60dbe3d82a1ec39654ff81d1b1406 ("package/gcc: add support for GCC 15.x")
> Assisted-by: Claude:claude-opus-5-5
> Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
Applied to master, thanks!
Best regards,
Thomas Petazzoni
--
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-10-22 21:24 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-22 20:59 [Buildroot] [PATCH] package/iozone: fix build without ASYNC_IO with GCC >= 15 Yegor Yefremov
2026-10-22 21:23 ` Thomas Petazzoni via buildroot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox