PowerDNS / pdns

PowerDNS Authoritative, PowerDNS Recursor, dnsdist
https://www.powerdns.com/
GNU General Public License v2.0
3.72k stars 913 forks source link

rec: 4.6.0-alpha1 build error #10790

Closed kometchtech closed 3 years ago

kometchtech commented 3 years ago

Short description

If the build specification is alpine linux in the aarch64 environment, an error will occur. Alpine linux is running on docker.

Environment

Steps to reproduce

  1. apk add --update build-base binutils gawk autoconf automake libtool curl gnutls-dev boost-dev lua5.3-dev \
    libedit-dev libsodium-dev protobuf-dev libatomic_ops-dev net-snmp-dev 
  2. ./configure \
      --prefix=/usr/local \
      --sysconfdir=/etc/powerdns \
      --localstatedir=/var \
      --libdir=${prefix}/lib/aarch64-linux-gnu \
      --libexecdir=${prefix}/lib/aarch64-linux-gnu \
      --disable-static \
      --with-net-snmp \
      --with-service-group=pdns-recursor \
      --with-service-user=pdns-recursor \
      --with-lua \
      --enable-dns-over-tls \
    && make -j4 install-strip DESTDIR=/tmp/root

Expected behaviour

The build should finish normally.

Actual behaviour

/tmp/build # ./configure \
>       --prefix=/usr/local \
>       --sysconfdir=/etc/powerdns \
>       --localstatedir=/var \
>       --libdir=${prefix}/lib/aarch64-linux-gnu \
>       --libexecdir=${prefix}/lib/aarch64-linux-gnu \
>       --disable-static \
>       --with-net-snmp \
>       --with-service-group=pdns-recursor \
>       --with-service-user=pdns-recursor \
>       --with-lua \
>       --enable-dns-over-tls \
>     && make -j4 install-strip DESTDIR=/tmp/root
checking for a BSD-compatible install... /usr/bin/install -c                                                                     
checking whether build environment is sane... yes                                                                                
checking for a thread-safe mkdir -p... build-aux/install-sh -c -d                                                                
checking for gawk... gawk                                                                                                        
checking whether make sets $(MAKE)... yes                                                                                        
checking whether make supports nested variables... yes          
checking whether UID '0' is supported by ustar format... yes                                                                                                                                                                                                                
checking whether GID '0' is supported by ustar format... yes                                                                                                                                                                                                                
checking how to create a ustar tar archive... none                                                                                                                                                                                                                          
checking whether make supports nested variables... (cached) yes                                                                                                                                                                                                             
checking whether make supports the include directive... yes (GNU style)                                                          
checking for gcc... gcc                                                                                                          
checking whether the C compiler works... yes                                                                                     
checking for C compiler default output file name... a.out                                                                        
checking for suffix of executables...                                                                                            
checking whether we are cross compiling... no                                                                                         
checking for suffix of object files... o                                                                                                                                                                                                                                    
checking whether we are using the GNU C compiler... yes                                                                          
checking whether gcc accepts -g... yes                                                                                           
checking for gcc option to accept ISO C89... none needed                                                                         
checking whether gcc understands -c and -o together... yes         
checking dependency style of gcc... gcc3                                                                                              
checking how to run the C preprocessor... gcc -E                   
checking for grep that handles long lines and -e... /bin/grep      
checking for egrep... /bin/grep -E                                                                                                    
checking for ANSI C header files... yes                            
checking for sys/types.h... yes                                                                                                       
checking for sys/stat.h... yes                                                                                                        
checking for stdlib.h... yes                                       
checking for string.h... yes                                                                                                          
checking for memory.h... yes                                                                                                          
checking for strings.h... yes                                                                                                         
checking for inttypes.h... yes                                                                                                        
checking for stdint.h... yes                                                                                                          
checking for unistd.h... yes                                       
checking minix/config.h usability... no                                                                                               
checking minix/config.h presence... no                                                                                                
checking for minix/config.h... no                                                                                                     
checking whether it is safe to define __EXTENSIONS__... yes                                                                           
checking build system type... aarch64-unknown-linux-musl                                                                              
checking host system type... aarch64-unknown-linux-musl                                                                               
checking for gcc... (cached) gcc                                   
checking whether we are using the GNU C compiler... (cached) yes                                                                      
checking whether gcc accepts -g... (cached) yes                                                                                       
checking for gcc option to accept ISO C89... (cached) none needed                                                                     
checking whether gcc understands -c and -o together... (cached) yes                                                                   
checking dependency style of gcc... (cached) gcc3                  
checking for g++... g++                                                                                                               
checking whether we are using the GNU C++ compiler... yes                                                                                                                                                                                                                   
checking whether g++ accepts -g... yes                                                                                                
checking dependency style of g++... gcc3                           
checking size of time_t... 8                                       
checking whether time_t is signed... yes                           
checking whether g++ supports C++17 features with -std=c++17... yes                                                                   
checking how to print strings... printf                            
checking for a sed that does not truncate output... /bin/sed       
checking for fgrep... /bin/grep -F                                 
checking for ld used by gcc... /usr/aarch64-alpine-linux-musl/bin/ld                                                                                                                                                                                                        
checking if the linker (/usr/aarch64-alpine-linux-musl/bin/ld) is GNU ld... yes                 
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B                                                                 
checking the name lister (/usr/bin/nm -B) interface... BSD nm      
checking whether ln -s works... yes                                
checking the maximum length of command line arguments... 98304     
checking how to convert aarch64-unknown-linux-musl file names to aarch64-unknown-linux-musl format... func_convert_file_noop          
checking how to convert aarch64-unknown-linux-musl file names to toolchain format... func_convert_file_noop                           
checking for /usr/aarch64-alpine-linux-musl/bin/ld option to reload object files... -r                                                
checking for objdump... objdump                                    
checking how to recognize dependent libraries... pass_all          
checking for dlltool... no                                         
checking how to associate runtime and link libraries... printf %s\n                                                                   
checking for ar... ar                                              
checking for archiver @FILE support... @                           
checking for strip... strip                                        
checking for ranlib... ranlib                                      
checking command to parse /usr/bin/nm -B output from gcc object... ok                                                                 
checking for sysroot... no                                         
checking for a working dd... /bin/dd                               
checking how to truncate binary pipes... /bin/dd bs=4096 count=1   
checking for mt... no                                              
checking if : is a manifest tool... no                             
checking for dlfcn.h... yes                                        
checking for objdir... .libs                                       
checking if gcc supports -fno-rtti -fno-exceptions... no           
checking for gcc option to produce PIC... -fPIC -DPIC              
checking if gcc PIC flag -fPIC -DPIC works... yes                  
checking if gcc static flag -static works... yes                   
checking if gcc supports -c -o file.o... yes                       
checking if gcc supports -c -o file.o... (cached) yes              
checking whether the gcc linker (/usr/aarch64-alpine-linux-musl/bin/ld) supports shared libraries... yes                              
checking whether -lc should be explicitly linked in... no          
checking dynamic linker characteristics... GNU/Linux ld.so         
checking how to hardcode library paths into programs... immediate                                                                     
checking whether stripping libraries is possible... yes            
checking if libtool supports shared libraries... yes               
checking whether to build shared libraries... yes                  
checking whether to build static libraries... no                   
checking how to run the C++ preprocessor... g++ -std=c++17 -E      
checking for ld used by g++ -std=c++17... /usr/aarch64-alpine-linux-musl/bin/ld                                                       
checking if the linker (/usr/aarch64-alpine-linux-musl/bin/ld) is GNU ld... yes                                                       
checking whether the g++ -std=c++17 linker (/usr/aarch64-alpine-linux-musl/bin/ld) supports shared libraries... yes                   
checking for g++ -std=c++17 option to produce PIC... -fPIC -DPIC                                                                      
checking if g++ -std=c++17 PIC flag -fPIC -DPIC works... yes       
checking if g++ -std=c++17 static flag -static works... yes        
checking if g++ -std=c++17 supports -c -o file.o... yes            
checking if g++ -std=c++17 supports -c -o file.o... (cached) yes                                                                      
checking whether the g++ -std=c++17 linker (/usr/aarch64-alpine-linux-musl/bin/ld) supports shared libraries... yes                   
checking dynamic linker characteristics... (cached) GNU/Linux ld.so                                                                   
checking how to hardcode library paths into programs... immediate                                                                     
checking whether -latomic is needed for __atomic builtins... no    
checking for library containing inet_aton... none required         
checking for library containing gethostbyname... none required     
checking for library containing socket... none required            
checking for library containing gethostent... none required        
checking for recvmmsg... yes                                       
checking for sendmmsg... yes                                       
checking for accept4... yes                                        
checking for pthread_np.h... no                                    
checking for 2-arg pthread_setname_np... yes                       
checking for library containing clock_gettime... none required     
checking for Boost headers version >= 1.42.0... yes                
checking for Boost's header version... 1_76                        
checking boost/container/flat_set.hpp usability... yes             
checking boost/container/flat_set.hpp presence... yes              
checking for boost/container/flat_set.hpp... yes                   
checking for the flags needed to use pthreads... conftest.cpp:40:11: warning: no previous declaration for 'void* f(void*)' [-Wmissing-declarations]
   40 |     void *f(void*){ return 0; }                            
      |           ^                                                
-pthread                                                           
checking for the toolset name used by Boost for g++ -std=c++17... gcc103 -gcc                                                         
checking boost/system/error_code.hpp usability... yes              
checking boost/system/error_code.hpp presence... yes               
checking for boost/system/error_code.hpp... yes                    
checking for the Boost system library... yes                       
checking boost/thread.hpp usability... yes                         
checking boost/thread.hpp presence... yes                          
checking for boost/thread.hpp... yes                               
checking for the Boost thread library... (cached) yes              
checking boost/context/fiber.hpp usability... yes                  
checking boost/context/fiber.hpp presence... yes                   
checking for boost/context/fiber.hpp... yes                        
checking for the Boost context library... (cached) yes             
checking what context library to use for MTasker... Boost Context                                                                     
checking whether to enable unit test building... no                
checking whether to enable reproducible builds.... no              
checking for pkg-config... /usr/bin/pkg-config                     
checking pkg-config is at least version 0.9.0... yes               
checking for grep that handles long lines and -e... (cached) /bin/grep                                                                
checking which Lua implementation to use... auto                   
checking for LUA... no                                             
checking for LUA... yes                                            
checking lua.hpp usability... yes                                  
checking lua.hpp presence... yes                                   
checking for lua.hpp... yes                                        
checking whether to enable verbose logging... no                   
checking for pkg-config... /usr/bin/pkg-config                     
checking whether compiling and linking against OpenSSL's libcrypto works... yes                                                       
checking for RAND_bytes... yes                                     
checking for RAND_pseudo_bytes... yes                              
checking for CRYPTO_memcmp... yes                                  
checking for OPENSSL_init_crypto... yes                            
checking for EVP_MD_CTX_new... yes                                 
checking for EVP_MD_CTX_free... yes                                
checking for RSA_get0_key... yes                                   
checking whether EVP_PKEY_CTX_set1_scrypt_salt is declared... yes                                                                     
checking /usr/include/openssl/ecdsa.h usability... yes             
checking /usr/include/openssl/ecdsa.h presence... yes              
checking for /usr/include/openssl/ecdsa.h... yes                   
checking whether NID_X9_62_prime256v1 is declared... yes           
checking whether NID_secp384r1 is declared... yes                  
checking whether NID_ED25519 is declared... yes                    
checking whether NID_ED448 is declared... yes                      
checking whether we will be linking in libsodium... auto           
checking for LIBSODIUM... yes                                      
checking for crypto_box_easy_afternm... yes                        
checking for crypto_box_curve25519xchacha20poly1305_easy... yes    
checking for randombytes_stir... yes                               
checking for sodium_memcmp... yes                                  
checking for crypto_shorthash... yes                               
checking whether we will be linking in libdecaf... no              
checking whether we will be linking in libcap... auto              
checking for LIBCAP... no                                          
checking if we need to link in Net SNMP... yes                     
checking for net-snmp-config... -Os -g -DNETSNMP_ENABLE_IPV6 -fno-strict-aliasing -DNETSNMP_REMOVE_U64 -Os -g -Ulinux -Dlinux=linux -Os -I. -I/usr/include
checking for net-snmp-config... -L/usr/lib -lnetsnmpmibs -lnetsnmpagent -lnetsnmp                                                     
checking whether snmp_select_info2 is declared... yes              
checking whether to enable DNS over TLS support... yes             
checking whether we will be linking in OpenSSL libssl... auto      
checking for LIBSSL... yes                                         
checking for SSL_CTX_set_ciphersuites... yes                       
checking for OCSP_basic_sign... yes                                
checking for SSL_CTX_set_num_tickets... yes                        
checking for SSL_CTX_set_keylog_callback... yes                    
checking for SSL_CTX_get0_privatekey... yes                        
checking for SSL_CTX_set_min_proto_version... no                   
checking for SSL_set_hostflags... yes                              
checking for SSL_CTX_set_alpn_protos... yes                        
checking for SSL_CTX_set_next_proto_select_cb... yes               
checking for SSL_get0_alpn_selected... yes                         
checking for SSL_get0_next_proto_negotiated... yes                 
checking for SSL_CTX_set_alpn_select_cb... yes                     
checking whether we will be linking in GnuTLS... auto              
checking for GNUTLS... yes                                         
checking for gnutls_memset... yes                                  
checking for gnutls_session_set_verify_cert... yes                 
checking for gnutls_session_get_verify_cert_status... yes          
checking for gnutls_alpn_set_protocols... yes                      
checking for ragel... no                                           
checking for curl... curl                                          
checking for localtime_r... yes                                    
checking for gmtime_r... yes                                       
checking for strcasestr... yes                                     
checking for getrandom... yes                                      
checking for arc4random... no                                      
checking for library containing pthread_setaffinity_np... none required                                                               
checking for library containing pthread_getattr_np... none required                                                                   
checking for library containing pthread_get_stackaddr_np... no     
checking for library containing pthread_get_stacksize_np... no     
checking whether to enable newly observed domain checking... checking for boost/system/error_code.hpp... (cached) yes                 
checking for the Boost system library... (cached) yes              
sed: conftest.cpp: No such file or directory                       
checking boost/filesystem/path.hpp usability... yes                
checking boost/filesystem/path.hpp presence... yes                 
checking for boost/filesystem/path.hpp... yes                      
checking for the Boost filesystem library... (cached) yes          
yes                                                                
checking whether we will have dnstap... auto                       
checking for FSTRM... no                                           
checking whether we will enable compiler security checks... yes    
checking whether C++ compiler handles -Werror -Wunknown-warning-option... no                                                          
checking whether C++ compiler handles -pie... yes                  
checking whether C++ compiler handles -fstack-protector... yes     
checking whether C++ compiler handles --param ssp-buffer-size=4... yes                                                                
checking whether C++ compiler handles -D_FORTIFY_SOURCE=2... yes   
checking for how to force completely read-only GOT table... -Wl,-z -Wl,relro -Wl,-z -Wl,now                                           
checking whether to enable AddressSanitizer... no                  
checking whether to enable MemorySanitizer... no                   
checking whether to enable ThreadSanitizer... no                   
checking whether to enable LeakSanitizer... no                     
checking whether to enable Undefined Behaviour Sanitizer... no     
checking whether to enable code malloc-trace... no                 
checking whether to enable Valgrind support... no                  
checking systemd/sd-daemon.h usability... no                       
checking systemd/sd-daemon.h presence... no                        
checking for systemd/sd-daemon.h... no                             
checking What user and group will be used by service... pdns-recursor                                                                 
checking for a Python interpreter with version >= 3.6... python3   
checking for python3... /usr/bin/python3                           
checking for python3 version... 3.9                                
checking for python3 platform... linux                             
checking for python3 script directory... ${prefix}/lib/python3.9/site-packages                                        
checking for python3 extension module directory... ${exec_prefix}/lib/python3.9/site-packages                                         
checking python3 module: venv... yes                               
checking that generated files are newer than configure... done     
configure: creating ./config.status                                
config.status: creating Makefile                                   
config.status: creating ext/Makefile                               
config.status: creating ext/json11/Makefile                        
config.status: creating ext/probds/Makefile                        
config.status: creating ext/yahttp/Makefile                        
config.status: creating ext/yahttp/yahttp/Makefile                 
config.status: creating config.h                                   
config.status: executing depfiles commands                         
config.status: executing libtool commands                          
configure:                                                         
configure: Configuration summary                                   
configure: =====================                                   
configure:                                                         
configure: PowerDNS Recursor 4.6.0-alpha1 configured with:  '--prefix=/usr/local' '--sysconfdir=/etc/powerdns' '--localstatedir=/var' '--libdir=/lib/aarch64-linux-gnu' '--libexecdir=/lib/aarch64-linux-gnu' '--disable-static' '--with-net-snmp' '--with-service-group=pdn
s-recursor' '--with-service-user=pdns-recursor' '--with-lua' '--enable-dns-over-tls'                                                  
configure:                                                         
configure: CC: gcc                                                 
configure: CXX: g++ -std=c++17                                     
configure: LD: /usr/aarch64-alpine-linux-musl/bin/ld               
configure: CFLAGS:  -fPIE -DPIE -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 --param ssp-buffer-size=4 -fstack-protector -Wall -Wextra -Wshadow -Wno-unused-parameter -Wmissing-declarations -Wredundant-decls -g -O2 -g -O2
configure: CPPFLAGS:                                               
configure: CXXFLAGS:  -fPIE -DPIE -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 --param ssp-buffer-size=4 -fstack-protector -Wall -Wextra -Wshadow -Wno-unused-parameter -Wmissing-declarations -Wredundant-decls -g -O2 
configure: LDFLAGS: -Wl,-z -Wl,relro -Wl,-z -Wl,now                
configure: LIBS:                                                   
configure: BOOST_CPPFLAGS:  -pthread                               
configure:                                                         
configure: Features enabled                                        
configure: ----------------                                        
configure: Lua: lua5.3                                             
configure: OpenSSL ECDSA: yes                                      
configure: ed25519: yes                                            
configure: ed448: yes                                              
configure: Protobuf: yes                                           
configure: SNMP: yes                                               
configure: systemd: no                                             
configure: nod: yes                                                
configure: dnstap: no                                              
configure: DNS over TLS: yes                                       
configure: GnuTLS: yes                                             
configure: OpenSSL: yes                                            
configure: Context library: Boost Context                          
configure:                                                         
if test -z 'strip'; then \                                         
  make  INSTALL_PROGRAM="/bin/sh /tmp/build/build-aux/install-sh -c -s" \                                                             
    install_sh_PROGRAM="/bin/sh /tmp/build/build-aux/install-sh -c -s" INSTALL_STRIP_FLAG=-s \                                        
      install; \                                                   
else \                                                             
  make  INSTALL_PROGRAM="/bin/sh /tmp/build/build-aux/install-sh -c -s" \                                                             
    install_sh_PROGRAM="/bin/sh /tmp/build/build-aux/install-sh -c -s" INSTALL_STRIP_FLAG=-s \                                        
    "INSTALL_PROGRAM_ENV=STRIPPROG='strip'" install; \             
fi                                                                 
make[1]: Entering directory '/tmp/build'                           
make  install-recursive                                            
make[2]: Entering directory '/tmp/build'                           
Making install in ext                                              
make[3]: Entering directory '/tmp/build/ext'                       
Making install in yahttp                                           
make[4]: Entering directory '/tmp/build/ext/yahttp'                
Making install in yahttp                                           
make[5]: Entering directory '/tmp/build/ext/yahttp/yahttp'         
  CXX      reqresp.lo                                              
  CXX      router.lo                                               
  CXXLD    libyahttp.la                                            
ar: `u' modifier ignored since `D' is the default (see `U')        
make[6]: Entering directory '/tmp/build/ext/yahttp/yahttp'         
make[6]: Nothing to be done for 'install-exec-am'.                 
make[6]: Nothing to be done for 'install-data-am'.                 
make[6]: Leaving directory '/tmp/build/ext/yahttp/yahttp'          
make[5]: Leaving directory '/tmp/build/ext/yahttp/yahttp'          
make[5]: Entering directory '/tmp/build/ext/yahttp'                
make[6]: Entering directory '/tmp/build/ext/yahttp'                
make[6]: Nothing to be done for 'install-exec-am'.                 
make[6]: Nothing to be done for 'install-data-am'.                 
make[6]: Leaving directory '/tmp/build/ext/yahttp'                 
make[5]: Leaving directory '/tmp/build/ext/yahttp'                 
make[4]: Leaving directory '/tmp/build/ext/yahttp'                 
Making install in json11                                           
make[4]: Entering directory '/tmp/build/ext/json11'                
make[5]: Entering directory '/tmp/build/ext/json11'                
make[5]: Nothing to be done for 'install-exec-am'.                 
make[5]: Nothing to be done for 'install-data-am'.                 
make[5]: Leaving directory '/tmp/build/ext/json11'                 
make[4]: Leaving directory '/tmp/build/ext/json11'                 
Making install in probds                                           
make[4]: Entering directory '/tmp/build/ext/probds'                
make[5]: Entering directory '/tmp/build/ext/probds'                
make[5]: Nothing to be done for 'install-exec-am'.                 
make[5]: Nothing to be done for 'install-data-am'.                 
make[5]: Leaving directory '/tmp/build/ext/probds'                 
make[4]: Leaving directory '/tmp/build/ext/probds'                 
make[4]: Entering directory '/tmp/build/ext'                       
make[5]: Entering directory '/tmp/build/ext'                       
make[5]: Nothing to be done for 'install-exec-am'.                 
make[5]: Nothing to be done for 'install-data-am'.                 
make[5]: Leaving directory '/tmp/build/ext'                        
make[4]: Leaving directory '/tmp/build/ext'                        
make[3]: Leaving directory '/tmp/build/ext'                        
make[3]: Entering directory '/tmp/build'                           
  CXX      lwres.o                                                 
  CXX      nsecrecords.o                                           
  CXX      opensslsigners.o                                        
  CXX      pdns_recursor.o                                         
lwres.cc:235:75: error: 'TCPOutConnectionManager' has not been declared                                                               
  235 | static bool tcpconnect(const struct timeval& now, const ComboAddress& ip, TCPOutConnectionManager::Connection& connection, bool& dnsOverTLS)
      |                                                                           ^~~~~~~~~~~~~~~~~~~~~~~                             
lwres.cc:235:110: error: expected ',' or '...' before '&' token    
  235 | static bool tcpconnect(const struct timeval& now, const ComboAddress& ip, TCPOutConnectionManager::Connection& connection, bool& dnsOverTLS)
      |                                                                                                              ^                
lwres.cc: In function 'bool tcpconnect(const timeval&, const ComboAddress&, int)':                                                    
lwres.cc:237:3: error: 'dnsOverTLS' was not declared in this scope                                                                    
  237 |   dnsOverTLS = SyncRes::s_dot_to_port_853 && ip.getPort() == 853;                                                             
      |   ^~~~~~~~~~                                               
lwres.cc:239:3: error: 'connection' was not declared in this scope; did you mean 'Connection'?                                       
  239 |   connection = t_tcp_manager.get(ip);                      
      |   ^~~~~~~~~~                                               
      |   Connection                                               
lwres.cc:239:16: error: 't_tcp_manager' was not declared in this scope; did you mean 'NID_manager'?                                   
  239 |   connection = t_tcp_manager.get(ip);                      
      |                ^~~~~~~~~~~~~                               
      |                NID_manager                                 
lwres.cc: At global scope:                                         
lwres.cc:269:61: error: 'TCPOutConnectionManager' has not been declared                                                               
  269 | static LWResult::Result tcpsendrecv(const ComboAddress& ip, TCPOutConnectionManager::Connection& connection,                  
      |                                                             ^~~~~~~~~~~~~~~~~~~~~~~                                           
lwres.cc:269:96: error: expected ',' or '...' before '&' token     
  269 | static LWResult::Result tcpsendrecv(const ComboAddress& ip, TCPOutConnectionManager::Connection& connection,                  
      |                                                                                                ^                              
lwres.cc: In function 'LWResult::Result tcpsendrecv(const ComboAddress&, int)':                                                       
lwres.cc:273:25: error: 'vpacket' was not declared in this scope                                                                      
  273 |   uint16_t tlen = htons(vpacket.size());                   
      |                         ^~~~~~~                            
lwres.cc:276:3: error: 'localip' was not declared in this scope; did you mean 'localtime'?                                            
  276 |   localip.sin4.sin_family = ip.sin4.sin_family;            
      |   ^~~~~~~                                                  
      |   localtime                                                
lwres.cc:277:15: error: 'connection' was not declared in this scope; did you mean 'Connection'?                                       
  277 |   getsockname(connection.d_handler->getDescriptor(), reinterpret_cast<sockaddr*>(&localip), &slen);                           
      |               ^~~~~~~~~~                                   
      |               Connection                                   
lwres.cc:295:3: error: 'len' was not declared in this scope; did you mean 'lenP'?                                                     
  295 |   len = ntohs(tlen); // switch to the 'len' shared with the rest of the calling function                                      
      |   ^~~                                                      
      |   lenP                                                     
lwres.cc:303:3: error: 'buf' was not declared in this scope        
  303 |   buf.resize(len);                                         
      |   ^~~                                                      
lwres.cc: At global scope:                                         
lwres.cc:311:484: error: 'TCPOutConnectionManager' has not been declared                                                              
  311 | static LWResult::Result asyncresolve(const ComboAddress& ip, const DNSName& domain, int type, bool doTCP, bool sendRDQuery, int EDNS0Level, struct timeval* now, boost::optional<Netmask>& srcmask, boost::optional<const ResolveContext&> context, const std::shared_ptr<std::vector<std::unique_ptr<RemoteLogger>>>& outgoingLoggers, const std::shared_ptr<std::vector<std::unique_ptr<FrameStreamLogger>>>& fstrmLoggers, const std::set<uint16_t>& exportTypes, LWResult *lwr, bool* chained, TCPOutConnectionManager::Connection& connection)                                                                
      |                                                            
                                                                                                                                                                                                                               ^~~~~~~~~~~~~~~~~~~~~~~
lwres.cc:311:519: error: expected ',' or '...' before '&' token    
  311 | static LWResult::Result asyncresolve(const ComboAddress& ip, const DNSName& domain, int type, bool doTCP, bool sendRDQuery, int EDNS0Level, struct timeval* now, boost::optional<Netmask>& srcmask, boost::optional<const ResolveContext&> context, const std::shared_ptr<std::vector<std::unique_ptr<RemoteLogger>>>& outgoingLoggers, const std::shared_ptr<std::vector<std::unique_ptr<FrameStreamLogger>>>& fstrmLoggers, const std::set<uint16_t>& exportTypes, LWResult *lwr, bool* chained, TCPOutConnectionManager::Connection& connection)                                                                
      |                                                            
                                                                                                                                                                                                                                                                  ^
  CXX      pollmplexer.o                                           
lwres.cc: In function 'LWResult::Result asyncresolve(const ComboAddress&, const DNSName&, int, bool, bool, int, timeval*, boost::optional<Netmask>&, boost::optional<const ResolveContext&>, const std::shared_ptr<std::vector<std::unique_ptr<RemoteLogger> > >&, const std::shared_ptr<std::vector<std::unique_ptr<FrameStreamLogger> > >&, const std::set<short unsigned int>&, LWResult*, bool*, int)':
lwres.cc:428:40: error: 'connection' was not declared in this scope; did you mean 'Connection'?                                       
  428 |           isNew = tcpconnect(*now, ip, connection, dnsOverTLS);                                      
      |                                        ^~~~~~~~~~          
      |                                        Connection          
lwres.cc: In function 'LWResult::Result asyncresolve(const ComboAddress&, const DNSName&, int, bool, bool, int, timeval*, boost::optional<Netmask>&, boost::optional<const ResolveContext&>, const std::shared_ptr<std::vector<std::unique_ptr<RemoteLogger> > >&, const std
::shared_ptr<std::vector<std::unique_ptr<FrameStreamLogger> > >&, const std::set<short unsigned int>&, LWResult*, bool*)':
lwres.cc:562:3: error: 'TCPOutConnectionManager' has not been declared                                                                
  562 |   TCPOutConnectionManager::Connection connection;          
      |   ^~~~~~~~~~~~~~~~~~~~~~~                                  
lwres.cc:563:158: error: 'connection' was not declared in this scope; did you mean 'connect'?                                         
  563 |   auto ret = asyncresolve(ip, domain, type, doTCP, sendRDQuery, EDNS0Level, now, srcmask, context, outgoingLoggers, fstrmLoggers, exportTypes, lwr, chained, connection);
      |                                                                                                                                                              ^~~~~~~~~~
      |                                                                                                                                                              connect
lwres.cc:567:7: error: 't_tcp_manager' was not declared in this scope; did you mean 'NID_manager'?                                    
  567 |       t_tcp_manager.store(*now, ip, std::move(connection));                                                                   
      |       ^~~~~~~~~~~~~                                        
      |       NID_manager                                          
lwres.cc: At global scope:                                         
lwres.cc:311:25: warning: 'LWResult::Result asyncresolve(const ComboAddress&, const DNSName&, int, bool, bool, int, timeval*, boost::optional<Netmask>&, boost::optional<const ResolveContext&>, const std::shared_ptr<std::vector<std::unique_ptr<RemoteLogger> > >&, const
 std::shared_ptr<std::vector<std::unique_ptr<FrameStreamLogger> > >&, const std::set<short unsigned int>&, LWResult*, bool*, int)' defined but not used [-Wunused-function]
  311 | static LWResult::Result asyncresolve(const ComboAddress& ip, const DNSName& domain, int type, bool doTCP, bool sendRDQuery, int EDNS0Level, struct timeval* now, boost::optional<Netmask>& srcmask, boost::optional<const ResolveContext&> context, const std::shared_ptr<std::vector<std::unique_ptr<RemoteLogger>>>& outgoingLoggers, const std::shared_ptr<std::vector<std::unique_ptr<FrameStreamLogger>>>& fstrmLoggers, const std::set<uint16_t>& exportTypes, LWResult *lwr, bool* chained, TCPOutConnectionManager::Connection& connection)                                                                
      |                         ^~~~~~~~~~~~                       
lwres.cc:269:25: warning: 'LWResult::Result tcpsendrecv(const ComboAddress&, int)' defined but not used [-Wunused-function]           
  269 | static LWResult::Result tcpsendrecv(const ComboAddress& ip, TCPOutConnectionManager::Connection& connection,                  
      |                         ^~~~~~~~~~~                        
lwres.cc:235:13: warning: 'bool tcpconnect(const timeval&, const ComboAddress&, int)' defined but not used [-Wunused-function]        
  235 | static bool tcpconnect(const struct timeval& now, const ComboAddress& ip, TCPOutConnectionManager::Connection& connection, bool& dnsOverTLS)
      |             ^~~~~~~~~~                                     
make[3]: *** [Makefile:1609: lwres.o] Error 1                      
make[3]: *** Waiting for unfinished jobs....                       
make[3]: Leaving directory '/tmp/build'                            
make[2]: *** [Makefile:1733: install-recursive] Error 1            
make[2]: Leaving directory '/tmp/build'                            
make[1]: *** [Makefile:2207: install] Error 2                      
make[1]: Leaving directory '/tmp/build'                            
make: *** [Makefile:2217: install-strip] Error 2                   
/tmp/build #                                                       

Other information

omoerbeek commented 3 years ago

Already fixed by #10765.

InputOutputZ commented 3 years ago

Notice in this same checkout where TCPOutConnectionManager error happens I struggled to compile Recursor with decaf library. No matter how I pass the path of of the library it always returns:-

decafsigners.cc:4:10: fatal error: decaf.hxx: No such file or directory
    4 | #include <decaf.hxx>
      |          ^~~~~~~~~~~

it seems configure option of --with-libdecaf=/usr/local/decaf is not handled properly, it discards whatever path value being set to.

I had to copy the headers inside /pdns/pdns/recursordist/ directory in order for make process to complete.

omoerbeek commented 3 years ago

Please do not hijack an issue report with a different issue. open a new one. Thanks.

InputOutputZ commented 3 years ago

Sure.