Ah, great! I did not look back enough into history it seems.
On 23. 01. 25 13:19, Nicolas Cavallari wrote:
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.
_______________________________________________
Dnsmasq-discuss mailing list
Dnsmasq-discuss@lists.thekelleys.org.uk
https://lists.thekelleys.org.uk/cgi-bin/mailman/listinfo/dnsmasq-discuss