[Dnsmasq-discuss] iface_enumerate does not compile with gcc 15

Nicolas Cavallari Nicolas.Cavallari at green-communications.fr
Thu Jan 23 12:19:04 UTC 2025


On 23/01/2025 12:29, Petr Menšík wrote:
> Hello everyone!
> 
> Fedora just changed to gcc 15 in upcoming Fedora 42. And it seems dnsmasq is not 
> able to compile [1][2] with the new compiler, like it could before. Example 
> error is:
> 
> dhcp.c: In function ‘dhcp_packet’:
> dhcp.c:320:49: error: passing argument 3 of ‘iface_enumerate’ from incompatible pointer type [-Wincompatible-pointer-types]
>    320 |               !iface_enumerate(AF_INET, &match, check_listen_addrs) ||
>        |                                                 ^~~~~~~~~~~~~~~~~~
>        |                                                 |
>        |                                                 int (*)(struct in_addr,  int,  char *, struct in_addr,  struct in_addr,  void *)
> 
> That is because the default compiler used -std version has changed to gnu23. 
> There is a nice page with porting instructions for that version [3], which 
> mentions full handler specification should be used before calling.
> 
> Our problem is iface_enumerate uses callbacks with different prototypes, 
> depending on family passed to the function. It seems to me ideal change would be 
> to make separate functions with just reused common parts. Because they have 
> something in common, but are significantly different at the same time. It does 
> not seem possible to have single prototype function callback for the current code.
> 
> I am not sending a patch yet, because I am not sure how exactly it should be 
> changed. Of course temporary alternative would be explicitly using older - 
> std=gnu17 in CFLAGS. But I think some other change should be made, but not yet 
> sure what is should be.
> 
> Any opinions? Has anyone else hit already gcc 15 new issues?

This was supposed to be fixed by 
https://lists.thekelleys.org.uk/pipermail/dnsmasq-discuss/2024q4/017855.html

Simon says it was applied but I do not see this patch in git.



More information about the Dnsmasq-discuss mailing list