When configured with
./configure --prefix=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --libdir=/usr/lib64 --disable-dependency-tracking --enable-dict --enable-file --enable-ftp --enable-gopher --enable-http --enable-imap --enable-ldap --enable-ldaps --enable-pop3 --enable-rtsp --without-libssh2 --enable-smtp --enable-telnet --enable-tftp --disable-ares --enable-cookies --enable-hidden-symbols --enable-ipv6 --enable-largefile --enable-manual --enable-nonblocking --enable-proxy --disable-soname-bump --disable-sspi --disable-static --disable-threaded-resolver --disable-versioned-symbols --without-darwinssl --without-libidn --without-gssapi --without-krb4 --without-libmetalink --without-librtmp --without-spnego --without-winidn --without-winssl --with-zlib --without-axtls --without-cyassl --without-gnutls --without-nss --without-polarssl --without-ssl --with-ca-bundle=/etc/ssl/certs/ca-certificates.crt --with-gnutls --with-nettle
curl-7.27.0 fails to compile with
libtool: compile: x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I../include/curl -I../include -I../include -I../lib -I../lib -DCURL_HIDDEN_SYMBOLS -fvisibility=hidden -c parsedate.c -fPIC -DPIC -o .libs/libcurl_la-parsedate.o
/bin/sh ../libtool --tag=CC --mode=compile x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I../include/curl -I../include -I../include -I../lib -I../lib -DCURL_HIDDEN_SYMBOLS -fvisibility=hidden -c -o libcurl_la-select.lo `test -f 'select.c' || echo './'`select.c
libtool: compile: x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I../include/curl -I../include -I../include -I../lib -I../lib -DCURL_HIDDEN_SYMBOLS -fvisibility=hidden -c select.c -fPIC -DPIC -o .libs/libcurl_la-select.o
/bin/sh ../libtool --tag=CC --mode=compile x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I../include/curl -I../include -I../include -I../lib -I../lib -DCURL_HIDDEN_SYMBOLS -fvisibility=hidden -c -o libcurl_la-gtls.lo `test -f 'gtls.c' || echo './'`gtls.c
libtool: compile: x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I../include/curl -I../include -I../include -I../lib -I../lib -DCURL_HIDDEN_SYMBOLS -fvisibility=hidden -c gtls.c -fPIC -DPIC -o .libs/libcurl_la-gtls.o
gtls.c: In function 'Curl_gtls_random':
gtls.c:1069:14: error: 'GNUTLS_RND_RANDOM' undeclared (first use in this function)
gtls.c:1069:14: note: each undeclared identifier is reported only once for each function it appears in
gtls.c: In function 'Curl_gtls_md5sum':
gtls.c:1082:18: error: storage size of 'MD5pw' isn't known
make[2]: *** [libcurl_la-gtls.lo] Error 1
make[2]: Leaving directory `/var/tmp/portage/net-misc/curl-7.27.0-r2/work/curl-7.27.0/lib'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/var/tmp/portage/net-misc/curl-7.27.0-r2/work/curl-7.27.0/lib'
make: *** [all-recursive] Error 1
This happens with gnutls-2.12.18 and nettle-2.4 on a Gentoo system. The downstream bug is
suggested patch to fix gnutls3 build failure
Hi, thanks for your report.
Please try the attached patch and see if that fixes the problem for you.
Almost. It fixes the original configuration, which has --without-libmetalink, but if you switch to --with-libmetalink, then the build dies with
x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I../include/curl -I../include -I../include -I../lib -I../src -I../lib -I../src -pthread -c tool_main.c
x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I../include/curl -I../include -I../include -I../lib -I../src -I../lib -I../src -pthread -c tool_metalink.c
tool_metalink.c:87:29: error: ‘MD5_Init’ undeclared here (not in a function)
tool_metalink.c:88:31: error: ‘MD5_Update’ undeclared here (not in a function)
tool_metalink.c:89:30: error: ‘MD5_Final’ undeclared here (not in a function)
tool_metalink.c:97:29: error: ‘SHA1_Init’ undeclared here (not in a function)
tool_metalink.c:98:31: error: ‘SHA1_Update’ undeclared here (not in a function)
tool_metalink.c:99:30: error: ‘SHA1_Final’ undeclared here (not in a function)
tool_metalink.c:107:29: error: ‘SHA256_Init’ undeclared here (not in a function)
tool_metalink.c:108:31: error: ‘SHA256_Update’ undeclared here (not in a function)
tool_metalink.c:109:30: error: ‘SHA256_Final’ undeclared here (not in a function)
make[2]: *** [tool_metalink.o] Error 1
make[2]: Leaving directory `/var/tmp/portage/net-misc/curl-7.27.0-r2/work/curl-7.27.0/src'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/var/tmp/portage/net-misc/curl-7.27.0-r2/work/curl-7.27.0/src'
make: *** [all-recursive] Error 1
So it look like you need to include some more gnutls/*.h in src/tool_metalink.c
[PATCH] metalink: change code order to build with gnutls-nettle
Right, see the second patch for what was required for making it build for me. I've already pushed these fixes to the git repo too.
Yeah that second patch fixes metalink problem. I've backported both patches to gentoo's ebuild for 7.27.0. I think this bug is resolved.
Thanks for verifying. I'm therefore closing this issue now.