HTTPing icon indicating copy to clipboard operation
HTTPing copied to clipboard

Build error on macOS: `tcp.c: error: 'TCP_FASTOPEN' undeclared (first use in this function); did you mean 'TCP_MAXOLEN'?`

Open barracuda156 opened this issue 1 year ago • 1 comments

Build fails on earlier macOS versions. With gcc-4.2:

[ 88%] Building C object CMakeFiles/httping.dir/tcp.c.o
/usr/bin/gcc-4.2 -DLOCALEDIR=\"/usr/share/locale\" -DVERSION=\"VERSION=3.6\" -I/opt/local/include -I/opt/local/libexec/openssl3/include -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_net_httping/httping/work/build -pipe -Os -DNDEBUG -I/opt/local/include -g -arch ppc -mmacosx-version-min=10.6 -Wall -pedantic -Wextra -D_DARWIN_C_SOURCE -DNCURSES_WIDECHAR -MD -MT CMakeFiles/httping.dir/tcp.c.o -MF CMakeFiles/httping.dir/tcp.c.o.d -o CMakeFiles/httping.dir/tcp.c.o -c /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_net_httping/httping/work/HTTPing-3.6/tcp.c
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_net_httping/httping/work/HTTPing-3.6/tcp.c: In function ‘create_socket’:
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_net_httping/httping/work/HTTPing-3.6/tcp.c:48: warning: unused parameter ‘priority’
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_net_httping/httping/work/HTTPing-3.6/tcp.c: In function ‘connect_to’:
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_net_httping/httping/work/HTTPing-3.6/tcp.c:166: error: ‘TCP_FASTOPEN’ undeclared (first use in this function)
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_net_httping/httping/work/HTTPing-3.6/tcp.c:166: error: (Each undeclared identifier is reported only once
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_net_httping/httping/work/HTTPing-3.6/tcp.c:166: error: for each function it appears in.)
make[2]: *** [CMakeFiles/httping.dir/tcp.c.o] Error 1
make[2]: *** Waiting for unfinished jobs....
[ 94%] Building C object CMakeFiles/httping.dir/utils.c.o
/usr/bin/gcc-4.2 -DLOCALEDIR=\"/usr/share/locale\" -DVERSION=\"VERSION=3.6\" -I/opt/local/include -I/opt/local/libexec/openssl3/include -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_net_httping/httping/work/build -pipe -Os -DNDEBUG -I/opt/local/include -g -arch ppc -mmacosx-version-min=10.6 -Wall -pedantic -Wextra -D_DARWIN_C_SOURCE -DNCURSES_WIDECHAR -MD -MT CMakeFiles/httping.dir/utils.c.o -MF CMakeFiles/httping.dir/utils.c.o.d -o CMakeFiles/httping.dir/utils.c.o -c /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_net_httping/httping/work/HTTPing-3.6/utils.c
make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_net_httping/httping/work/build'
make[1]: *** [CMakeFiles/httping.dir/all] Error 2

With gcc-13.2:

/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_net_httping/httping/work/HTTPing-3.6/tcp.c: In function 'connect_to':
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_net_httping/httping/work/HTTPing-3.6/tcp.c:166:45: error: 'TCP_FASTOPEN' undeclared (first use in this function); did you mean 'TCP_MAXOLEN'?
  166 |                 setsockopt(fd, IPPROTO_TCP, TCP_FASTOPEN, &enable, sizeof(enable));
      |                                             ^~~~~~~~~~~~
      |                                             TCP_MAXOLEN
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_net_httping/httping/work/HTTPing-3.6/tcp.c:166:45: note: each undeclared identifier is reported only once for each function it appears in
make[2]: *** [CMakeFiles/httping.dir/tcp.c.o] Error 1
make[2]: *** Waiting for unfinished jobs....
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_net_httping/httping/work/HTTPing-3.6/main.c: In function 'main':
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_net_httping/httping/work/HTTPing-3.6/main.c:1631:27: warning: unused variable 'recv_tos_len' [-Wunused-variable]
 1631 |                 socklen_t recv_tos_len = sizeof recv_tos;
      |                           ^~~~~~~~~~~~
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_net_httping/httping/work/HTTPing-3.6/main.c:956:13: warning: unused variable 'write_sleep' [-Wunused-variable]
  956 |         int write_sleep = 500; /* in us (microseconds), determines resolution of transmit time determination */
      |             ^~~~~~~~~~~
make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_net_httping/httping/work/build'
make[1]: *** [CMakeFiles/httping.dir/all] Error 2

@folkertvanheusden Could we somehow fix this?

barracuda156 avatar Jun 03 '24 12:06 barracuda156

Perhaps this was broken by https://github.com/folkertvanheusden/HTTPing/commit/5c5cf07f861b5d69ea09208446d0d9473e56041b

barracuda156 avatar Sep 26 '24 16:09 barracuda156