Files
buildroot/package/vde2/vde2.mk
Peter Korsgaard 2218f02155 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>
2025-08-29 19:35:34 +02:00

48 lines
1.4 KiB
Makefile

################################################################################
#
# vde2
#
################################################################################
VDE2_VERSION = 2.3.3
VDE2_SITE = $(call github,virtualsquare,vde-2,v$(VDE2_VERSION))
VDE2_LICENSE = GPL-2.0+, LGPL-2.1+
VDE2_LICENSE_FILES = COPYING COPYING.libvdeplug
VDE2_CPE_ID_VENDOR = vde_project
VDE2_CPE_ID_PRODUCT = vde
VDE2_INSTALL_STAGING = YES
# From git
VDE2_AUTORECONF = YES
# Reasons for enabling/disabling stuff:
# - tuntap is enabled in the hope we're using a recent-enough toolchain
# that does have if_tun.h (virtually everything these days)
# - cryptcab is disabled to not depend on wolfssl
# - pcap is disabled to not depend on libpcap
# - profiling is disabled because we do not want to debug/profile
#
# Note: disabled features can be added with corresponding dependencies
# in future commits.
VDE2_CONF_OPTS = \
--disable-cryptcab \
--disable-experimental \
--disable-pcap \
--disable-profile \
--enable-tuntap
HOST_VDE2_CONF_OPTS = \
--disable-cryptcab \
--disable-experimental \
--disable-pcap \
--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))