GCC 14.1.1: Build fails due to warnings treated as error: `-Wmplicit-function-declaration`, `-Wreturn-mismatch`, `-Wimplicit-int`, `-Wint-conversion`.
With GCC 14.1.1, I get warnings treated as errors, making build fail:
-Wmplicit-function-declaration
, -Wreturn-mismatch
, -Wimplicit-int
, and -Wint-conversion
:
[...]
gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"voiphopper\" -DVERSION=\"2.04\" -I. -I/usr/include/tirpc -march=native -mtune=native -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -fstack-clash-protection -fcf-protection -w -flto=auto -MT lldp.o -MD -MP -MF .deps/lldp.Tpo -c -o lldp.o lldp.c
mv -f .deps/cache.Tpo .deps/cache.Po
mv -f .deps/arp.Tpo .deps/arp.Po
dhcpclient.c: In function ‘dhcpSendAndRecv’:
dhcpclient.c:918:29: error: implicit declaration of function ‘dhcpTimedOut’ [-Wimplicit-function-declaration]
918 | if (dhcpTimedOut()){
| ^~~~~~~~~~~~
lldp.c: In function ‘get_lldp’:
lldp.c:213:53: error: implicit declaration of function ‘lldpcompare’ [-Wimplicit-function-declaration]
213 | retvallldpcompare = lldpcompare(sysnamebuff, lldpendpoints);
| ^~~~~~~~~~~
lldp.c: At top level:
mv -f .deps/signals.Tpo .deps/signals.Po
lldp.c:1361:1: error: return type defaults to ‘int’ [-Wimplicit-int]
1361 | spoof_lldp_loop(char *lldpdev, char *interface) {
| ^~~~~~~~~~~~~~~
lldp.c: In function ‘spoof_lldp_loop’:
lldp.c:1524:17: error: implicit declaration of function ‘create_vlan_interface’ [-Wimplicit-function-declaration]
1524 | create_vlan_interface(interface, vvid);
| ^~~~~~~~~~~~~~~~~~~~~
make[1]: *** [Makefile:261: dhcpclient.o] Error 1
make[1]: *** Waiting for unfinished jobs....
lldp.c:1530:44: error: implicit declaration of function ‘dhcpclientcall’ [-Wimplicit-function-declaration]
1530 | int return_value = dhcpclientcall(vinterface);
| ^~~~~~~~~~~~~~
lldp.c:1535:25: error: ‘return’ with no value, in function returning non-void [-Wreturn-mismatch]
1535 | return;
| ^~~~~~
lldp.c:1361:1: note: declared here
1361 | spoof_lldp_loop(char *lldpdev, char *interface) {
| ^~~~~~~~~~~~~~~
voiphop.c: In function ‘dhcpclientcall’:
voiphop.c:234:42: error: implicit declaration of function ‘dhcpTime’ [-Wimplicit-function-declaration]
234 | time_t elapsed = dhcpTime();
| ^~~~~~~~
mv -f .deps/buildmsg.Tpo .deps/buildmsg.Po
ass.c: In function ‘sniffer_main’:
ass.c:270:38: error: implicit declaration of function ‘process_main_packet’; did you mean ‘process_arp_packet’? [-Wimplicit-function-declaration]
270 | int retval = process_main_packet(header_main, packet_main);
| ^~~~~~~~~~~~~~~~~~~
| process_arp_packet
main.c: In function ‘main’:
main.c:679:17: error: implicit declaration of function ‘spoof_lldp_loop’ [-Wimplicit-function-declaration]
679 | spoof_lldp_loop(lldpDeviceID, IfName_temp);
| ^~~~~~~~~~~~~~~
ass.c: In function ‘start_ass_ui’:
ass.c:323:33: error: implicit declaration of function ‘text_help’ [-Wimplicit-function-declaration]
323 | text_help();
| ^~~~~~~~~
make[1]: *** [Makefile:261: voiphop.o] Error 1
make[1]: *** [Makefile:261: lldp.o] Error 1
main.c:833:17: error: implicit declaration of function ‘start_ass_ui’ [-Wimplicit-function-declaration]
833 | start_ass_ui();
| ^~~~~~~~~~~~
ass.c:357:33: error: implicit declaration of function ‘spoof_ip_mac’ [-Wimplicit-function-declaration]
357 | spoof_ip_mac();
| ^~~~~~~~~~~~
ass.c: At top level:
ass.c:373:1: error: return type defaults to ‘int’ [-Wimplicit-int]
373 | text_help(){
| ^~~~~~~~~
ass.c: In function ‘process_main_packet’:
ass.c:529:14: error: implicit declaration of function ‘check_if_cdp’ [-Wimplicit-function-declaration]
529 | if ((check_if_cdp(header, packet) == 1) && (toggle_cdp_analysis == 1)) {
| ^~~~~~~~~~~~
ass.c:536:28: error: implicit declaration of function ‘get_cdp’ [-Wimplicit-function-declaration]
536 | vvid_cdp = get_cdp(args, header, packet);
| ^~~~~~~
ass.c:540:33: error: implicit declaration of function ‘vlan_hop_cdplldp’ [-Wimplicit-function-declaration]
540 | vlan_hop_cdplldp(vvid_cdp);
| ^~~~~~~~~~~~~~~~
make[1]: *** [Makefile:261: main.o] Error 1
mv -f .deps/asl.Tpo .deps/asl.Po
ass.c:549:13: error: implicit declaration of function ‘check_if_arp’ [-Wimplicit-function-declaration]
549 | if (check_if_arp(header, packet) == 1) {
| ^~~~~~~~~~~~
ass.c:557:14: error: implicit declaration of function ‘check_if_8021Q’ [-Wimplicit-function-declaration]
557 | if ((check_if_8021Q(header, packet) == 1) && (toggle_8021q_analysis == 1)) {
| ^~~~~~~~~~~~~~
ass.c:578:14: error: implicit declaration of function ‘check_if_lldp’ [-Wimplicit-function-declaration]
578 | if ((check_if_lldp(header, packet) == 1) && (toggle_lldp_analysis == 1)) {
| ^~~~~~~~~~~~~
ass.c:582:29: error: implicit declaration of function ‘get_lldp’ [-Wimplicit-function-declaration]
582 | vvid_lldp = get_lldp(header, packet);
| ^~~~~~~~
ass.c: In function ‘vlan_hop_cdplldp’:
ass.c:729:17: error: implicit declaration of function ‘create_vlan_interface’ [-Wimplicit-function-declaration]
729 | create_vlan_interface(IfName_temp,vvid_learned);
| ^~~~~~~~~~~~~~~~~~~~~
ass.c:736:36: error: implicit declaration of function ‘dhcpclientcall’ [-Wimplicit-function-declaration]
736 | int return_value = dhcpclientcall(vinterface);
| ^~~~~~~~~~~~~~
ass.c:743:25: error: implicit declaration of function ‘SetIP’ [-Wimplicit-function-declaration]
743 | SetIP(vinterface, randomIP);
| ^~~~~
ass.c:744:38: error: implicit declaration of function ‘ifup’ [-Wimplicit-function-declaration]
744 | int retval = ifup(vinterface);
| ^~~~
ass.c: At top level:
ass.c:767:1: error: return type defaults to ‘int’ [-Wimplicit-int]
767 | spoof_ip_mac() {
| ^~~~~~~~~~~~
ass.c: In function ‘spoof_ip_mac’:
ass.c:769:9: error: implicit declaration of function ‘cancelthreads’ [-Wimplicit-function-declaration]
769 | cancelthreads();
| ^~~~~~~~~~~~~
ass.c:771:26: error: implicit declaration of function ‘displaymenu’ [-Wimplicit-function-declaration]
771 | int phoneindex = displaymenu(host_count_n);
| ^~~~~~~~~~~
ass.c:776:21: error: implicit declaration of function ‘spoofIPPhone’ [-Wimplicit-function-declaration]
776 | int spoof = spoofIPPhone(phoneindex, vinterfaceTmp);
| ^~~~~~~~~~~~
ass.c: At top level:
ass.c:779:1: error: return type defaults to ‘int’ [-Wimplicit-int]
779 | cancelthreads(){
| ^~~~~~~~~~~~~
ass.c: In function ‘displaymenu’:
ass.c:849:30: error: implicit declaration of function ‘gets’; did you mean ‘fgets’? [-Wimplicit-function-declaration]
849 | if((result = gets(line)) != NULL){
| ^~~~
| fgets
mv -f .deps/dhcpconfig.Tpo .deps/dhcpconfig.Po
ass.c:849:28: error: assignment to ‘char *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
849 | if((result = gets(line)) != NULL){
| ^
ass.c:852:29: error: implicit declaration of function ‘checkinput_alpha’ [-Wimplicit-function-declaration]
852 | if (checkinput_alpha(line) == 0) {
| ^~~~~~~~~~~~~~~~
ass.c:854:44: error: implicit declaration of function ‘checkinput_numeric’ [-Wimplicit-function-declaration]
854 | int retv = checkinput_numeric(line);
| ^~~~~~~~~~~~~~~~~~
ass.c: In function ‘spoofIPPhone’:
ass.c:1000:9: error: implicit declaration of function ‘SetMAC’ [-Wimplicit-function-declaration]
1000 | SetMAC(interface, addressbuff_n[index].mac);
| ^~~~~~
ass.c: In function ‘SetMAC’:
ass.c:1038:24: error: implicit declaration of function ‘mc_macbytes_into_string’; did you mean ‘mc_mac_into_string’? [-Wimplicit-function-declaration]
1038 | mac_to_spoof = mc_macbytes_into_string(bytes);
| ^~~~~~~~~~~~~~~~~~~~~~~
| mc_mac_into_string
ass.c:1038:22: error: assignment to ‘unsigned char *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
1038 | mac_to_spoof = mc_macbytes_into_string(bytes);
| ^
make[1]: *** [Makefile:261: ass.o] Error 1
make[1]: Leaving directory '/var/cache/makepkg/build/voiphopper-git/src/voiphopper/src'
make: *** [Makefile:240: all-recursive] Error 1
Workaround is to append corresponding -Wno-error=<GCC-Warning>
to CFLAGS
/ CXXFLAGS
, but clean solution would be to fix the code I think.
Regards!
Edited by Drei Eck