Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

7.75.0 fails to build when using non-threaded resolver + disabled DoH #6566

Closed
dgoerger opened this issue Feb 4, 2021 · 0 comments
Closed
Labels

Comments

@dgoerger
Copy link

dgoerger commented Feb 4, 2021

I'm able to reproduce this on Debian 10, Alpine Linux 3.13, OpenBSD 6.8, FreeBSD 12.2, and NetBSD 9.1. This combination of build flags worked as recently as 7.74.0 and might be related to recent refactoring of the resolver code.

I did this

$ ./configure --disable-threaded-resolver --disable-doh
<snip>
configure: Configured to build curl/libcurl:
                                                                    
  Host setup:       x86_64-pc-linux-musl
  Install prefix:   /usr/local                                      
  Compiler:         gcc                                             
   CFLAGS:          -Werror-implicit-function-declaration -O2 -Wno-system-headers -Wenum-conversion
   CPPFLAGS:                                                        
   LDFLAGS:         -L/lib   
   LIBS:            -lssl -lcrypto -lssl -lcrypto -lzstd -lz
                                  
  curl version:     7.75.0     
  SSL:              enabled (libressl)
  SSH:              no      (--with-{libssh,libssh2})
  zlib:             enabled                                         
  brotli:           no      (--with-brotli)
  zstd:             enabled (libzstd)
  GSS-API:          no      (--with-gssapi)
  TLS-SRP:          no      (--enable-tls-srp)
  resolver:         default (--enable-ares / --enable-threaded-resolver)
  IPv6:             enabled                                         
  Unix sockets:     enabled    
  IDN:              no      (--with-{libidn2,winidn})
  Build libcurl:    Shared=yes, Static=yes
  Built-in manual:  no      (--enable-manual)
  --libcurl option: enabled (--disable-libcurl-option)
  Verbose errors:   enabled (--disable-verbose)
  Code coverage:    disabled                                        
  SSPI:             no      (--enable-sspi)
  ca cert bundle:   /etc/ssl/certs/ca-certificates.crt
  ca cert path:     no                                                                                                                  
  ca fallback:      no                                                                                                                  
  LDAP:             no      (--enable-ldap / --with-ldap-lib / --with-lber-lib)
  LDAPS:            no      (--enable-ldaps)
  RTSP:             enabled                                                                                                             
  RTMP:             no      (--with-librtmp)
  Metalink:         no      (--with-libmetalink)
  PSL:              no      (libpsl not found)                                                                                          
  Alt-svc:          enabled                                         
  HTTP1:            enabled (--with-hyper)
  HTTP2:            no      (--with-nghttp2)                                                                                            
  HTTP3:            no      (--with-ngtcp2, --with-quiche)
  ECH:              no      (--enable-ech)
  Protocols:        DICT FILE FTP FTPS GOPHER GOPHERS HTTP HTTPS IMAP IMAPS MQTT POP3 POP3S RTSP SMB SMBS SMTP SMTPS TELNET TFTP
  Features:         HTTPS-proxy IPv6 NTLM NTLM_WB SSL UnixSockets alt-svc libz zstd
$ make
<snip>
hostip.c: In function 'Curl_resolv':
hostip.c:523:48: error: 'struct UrlState' has no member named 'async'
  523 |       st = data->set.resolver_start(data->state.async.resolver, NULL,
      |                                                ^
hostip.c: In function 'Curl_once_resolved':
hostip.c:1105:17: error: 'struct UrlState' has no member named 'async'
 1105 |   if(data->state.async.dns) {
      |                 ^
hostip.c:1106:34: error: 'struct UrlState' has no member named 'async'
 1106 |     conn->dns_entry = data->state.async.dns;
      |                                  ^
hostip.c:1107:16: error: 'struct UrlState' has no member named 'async'
 1107 |     data->state.async.dns = NULL;

I expected the following

clean compile

curl/libcurl version

7.75.0

operating system

uname outputs:

  • Linux debian10 4.19.0-13-amd64 docs/libcurl/libcurl.m4 bug #1 SMP Debian 4.19.160-2 (2020-11-28) x86_64 GNU/Linux
  • Linux alpine3.13 5.10.12-0-virt docs/libcurl/libcurl.m4 bug #1-Alpine SMP Tue, 02 Feb 2021 07:18:37 UTC x86_64 Linux
  • OpenBSD obsd 6.8 GENERIC#298 amd64
  • FreeBSD fbsd 12.2-STABLE FreeBSD 12.2-STABLE GENERIC amd64
  • NetBSD nbsd 9.1 NetBSD 9.1 (GENERIC) #0: Sun Oct 18 19:24:30 UTC 2020 mkrepro@mkrepro.NetBSD.org:/usr/src/sys/arch/amd64/compile/GENERIC amd64
@bagder bagder changed the title 7.75.0 FTBFS using non-threaded resolver + disabled DoH 7.75.0 fails to build when using non-threaded resolver + disabled DoH Feb 4, 2021
@bagder bagder added the build label Feb 4, 2021
bagder added a commit that referenced this issue Feb 4, 2021
Reported-by: David Goerger
Follow-up from 8335c64
Fixes #6566
@bagder bagder closed this as completed in 6cd167a Feb 5, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Development

Successfully merging a pull request may close this issue.

2 participants