Skip to content

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
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information