package/vde2: fix build w/ gcc-15

Fixes: https://autobuild.buildroot.net/results/8d14173f31922a737c326be75aa24c9f9471342a/

The vde2 source code uses empty argument function pointer prototypes like:

typedef ssize_t (* ssize_fun)();
extern ssize_fun vdehist_vderead;

In C17 and earlier, such prototypes means unknown number of arguments,
whereas with C23 it means no arguments, leading to build failures:

libvdehist.c:39:27: error: initialization of 'ssize_fun' {aka 'long int
  (*)(void)'} from incompatible pointer type 'ssize_t (*)(int,  void *,
  size_t)' {aka 'long int (*)(int,  void *, long unsigned int)'}
  [-Wincompatible-pointer-types]

Workaround it using -std=gnu99.  Vde2 is provided both as a host and target
package, so do this unconditionally for both.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Arnout Vandecappelle <arnout@rnout.be>
This commit is contained in:
Peter Korsgaard
2025-08-28 15:27:46 +02:00
committed by Arnout Vandecappelle
parent 08a1e10fbe
commit 2218f02155

View File

@@ -38,5 +38,10 @@ HOST_VDE2_CONF_OPTS = \
--disable-profile \
--enable-tuntap
# C23 changes meaning of empty argument prototypes like int (*)()
# causing build failures, so force gnu99
VDE2_CONF_ENV = CFLAGS="$(TARGET_CFLAGS) -std=gnu99"
HOST_VDE2_CONF_ENV = CFLAGS="$(HOST_CFLAGS) -std=gnu99"
$(eval $(autotools-package))
$(eval $(host-autotools-package))