Skip to content

Build failure: common.c: error: implicit declaration of function 'hosts_ctl' #492

Description

@barracuda156
-->  Building sslh
Executing:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_net_sslh/sslh/work/sslh-v2.2.1" && /usr/bin/make -w all CC="/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_net_sslh/sslh/work/compwrap/cc/opt/local/bin/gcc-mp-14" CXX="/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_net_sslh/sslh/work/compwrap/cxx/opt/local/bin/g++-mp-14" OBJC="/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_net_sslh/sslh/work/compwrap/objc/opt/local/bin/gcc-mp-14" OBJCXX="/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_net_sslh/sslh/work/compwrap/objcxx/opt/local/bin/g++-mp-14" FC="/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_net_sslh/sslh/work/compwrap/fc/opt/local/bin/gfortran-mp-14" F77="/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_net_sslh/sslh/work/compwrap/f77/opt/local/bin/gfortran-mp-14" F90="/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_net_sslh/sslh/work/compwrap/f90/opt/local/bin/gfortran-mp-14" INSTALL="/usr/bin/install -c" 
make: Entering directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_net_sslh/sslh/work/sslh-v2.2.1'
./genver.sh >version.h
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_net_sslh/sslh/work/compwrap/cc/opt/local/bin/gcc-mp-14 -Os -arch ppc -Wall -O2 -DLIBPCRE -g   -isystem/opt/local/include/LegacySupport -I/opt/local/include -DENABLE_REGEX -DLIBCONFIG  -c -o sslh-fork.o sslh-fork.c
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_net_sslh/sslh/work/compwrap/cc/opt/local/bin/gcc-mp-14 -Os -arch ppc -Wall -O2 -DLIBPCRE -g   -isystem/opt/local/include/LegacySupport -I/opt/local/include -DENABLE_REGEX -DLIBCONFIG -c sslh-conf.c -o sslh-conf.o
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_net_sslh/sslh/work/compwrap/cc/opt/local/bin/gcc-mp-14 -Os -arch ppc -Wall -O2 -DLIBPCRE -g   -isystem/opt/local/include/LegacySupport -I/opt/local/include -DENABLE_REGEX -DLIBCONFIG -c common.c -o common.o
common.c: In function 'check_access_rights':
common.c:843:10: error: implicit declaration of function 'hosts_ctl' [-Wimplicit-function-declaration]
  843 |     if (!hosts_ctl((char*)service, host, addr_str, STRING_UNKNOWN)) {
      |          ^~~~~~~~~
make: *** [common.o] Error 1
make: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_net_sslh/sslh/work/sslh-v2.2.1'

Indeed, tcpd.h does not have this symbol: https://github.com/alexey-lysiuk/macos-sdk/blob/dbea912c7620f2b05dec3eb9e4a261ad76bb33d0/MacOSX10.6.sdk/usr/include/tcpd.h

However the symbol is in fact present in libwrap:

$ nm -arch ppc -g /usr/lib/libwrap.7.dylib 
         U __DefaultRuneLocale
         U ___error
         U ___maskrune
         U ___sprintf_chk$LDBL128
         U ___stack_chk_fail
         U ___stack_chk_guard
         U ___strcat_chk
         U ___strcpy_chk
         U __exit
         U _alarm
000056e0 D _allow_severity
         U _atoi
         U _bind$UNIX2003
00002c3c T _clean_exit
         U _close
         U _closelog
         U _connect$UNIX2003
000056e4 D _deny_severity
000037b4 T _dot_quad_addr
00005338 D _dry_run
         U _dup
         U _endgrent
         U _endpwent
00002898 T _eval_client
00002630 T _eval_hostaddr
00002784 T _eval_hostinfo
0000271c T _eval_hostname
00002814 T _eval_server
0000269c T _eval_user
         U _execl
         U _execv
         U _exit
         U _fclose
         U _fdopen$UNIX2003
         U _feof
         U _ferror
         U _fflush
         U _fgetc
         U _fgets
         U _fileno
00002c70 T _fix_options
         U _fopen$UNIX2003
         U _fork
         U _fprintf$LDBL128
         U _freehostent
         U _getgrnam
         U _gethostbyaddr
         U _gethostbyname
         U _getipnodebyname
         U _getpeername$UNIX2003
         U _getpid
         U _getprotobyname
         U _getpwnam
         U _getsockname$UNIX2003
         U _getsockopt
00000d44 T _hosts_access
00005328 D _hosts_access_verbose
00005190 D _hosts_allow_table
0000292c T _hosts_ctl
00005194 D _hosts_deny_table
         U _inet_addr
         U _inet_ntop
         U _inet_pton
         U _innetgr
         U _longjmp
00003c88 T _main
         U _memcmp
         U _memcpy
         U _nice
00003828 T _numeric_addr
         U _open
         U _openlog
00005354 D _paranoid
00003b94 T _percent_m
00002a14 T _percent_x
00001ea0 T _process_options
         U _recvfrom$UNIX2003
000029b8 T _refuse
00003538 T _request_init
000034f4 T _request_set
0000532c D _resident
00002244 T _rfc931
00005348 D _rfc931_timeout
000053ac D _sccsid
         U _setbuf
         U _setenv
         U _setgid
         U _setjmp
         U _setsockopt
         U _setuid
00002124 T _shell_cmd
         U _shutdown
         U _sigaction
         U _signal
000035e0 T _skip_ipv6_addrs
         U _sleep
00003280 T _sock_host
00002f48 T _sock_hostaddr
00002fa4 T _sock_hostname
         U _socket
00002e7c T _sockgen_simplify
000036cc T _split_at
         U _sprintf$LDBL128
         U _sscanf$LDBL128
         U _stat$INODE64
         U _strcasecmp
         U _strchr
         U _strcpy
         U _strcspn
         U _strlen
         U _strncasecmp
         U _strncpy
         U _strrchr
         U _strspn
         U _strtok
         U _sys_errlist
         U _sys_nerr
         U _syslog$LDBL128
000053e0 D _tcpd_buf
000053d8 D _tcpd_context
00003700 T _tcpd_gethostbyname
00003ad0 T _tcpd_jump
00003b30 T _tcpd_warn
         U _umask
         U _ungetc
0000534c D _unknown
         U _vsyslog$LDBL128
         U _wait
         U _write
00003938 T _xgets
         U _yp_get_default_domain

Do we miss some other header or should the declaration be provided?

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions