Git configure with static curl is failing
- From
Paul Smith <paul@mad-scientist.net>
- Date
- Apr 26, 2020, 19:01 UTC
- Message-ID
- <9d9fe8376e47a9f5330cd644c76d96987fc67c57.camel@mad-scientist.net>
Hi all;
I'm trying to build Git with my own static curl, not the system curl, and this isn't working due to an issue in configure.ac's curl locating code.
I invoke configure with --with-curl=/other/curl where /other/curl/include/curl and /other/curl/lib/libcurl.a and /other/curl/bin/curl-config all exist and work correctly.
When configure.ac attempts to local curl, it fails; config.log shows:
configure:5387: my-gcc -o conftest -O2 \ -I/other/curl/include -L/other/curl/lib conftest.c -lcurl >&5 /other/curl/lib/libcurl.a(libcurl_la-content_encoding.o):content_encoding.c:function gzip_init_writer: error: undefined reference to 'zlibVersion'
and many other errors, because the link line is missing needed libraries. If curl as a .so this wouldn't matter since libcurl.so would contain references to the libraries it needs and ld.so would handle this, but a static library obviously doesn't have that.
The problem appears to be that configure.ac is not using curl-config to obtain the correct options to link with curl. If I run /other/curl/bin/curl-config --lib I get the proper flags:
$ /other/curl/bin/curl-config --libs -L/other/curl/lib -lcurl -lssl -lz -lcrypto -ldl -lpthread
If configure.ac tried to use $CURLDIR/bin/curl-config --libs to obtain the right linker options, then the link test for curl would work.