Re: [PATCH] Makefile: Change library order for static linking
- From
Remi Pommarel <repk@triplefau.lt>
- Date
- Sep 18, 2015, 07:17 UTC
- Message-ID
- <20150918071525.GA482@cruxbox>
- In-Reply-To
- <xmqq7fnoitra.fsf@gitster.mtv.corp.google.com>
On Thu, Sep 17, 2015 at 03:08:25PM -0700, Junio C Hamano wrote:
> That is, for most people, linking with -lcrypto was sufficient, but > some people needed to grab things from -lssl when they need to do > so, because things in -lcrypto referred to what was only in -lssl.
Oh I see what you mean, I misinterpreted what NEEDS_SSL_WITH_CRYPTO does.
The problem on static compiled target is that libcurl.a got linked with libssl symbols. The proper variable I should have used is NEEDS_SSL_WITH_CURL. But this variable is not setted on Linux and not configurable, this is why I wrongly used NEEDS_SSL_WITH_CRYPTO.
I see several ways to fix static compilation:
1) Make NEED_SSL_WITH_CURL overridable by configure (the same way NEEDS_SSL_WITH_CRYPTO is). Then static target should run "NEED_SSL_WITH_CURL=YesPlease ./configure"
2) Make configure know that static compilation is asked (ie ./configure --static) and automatically set NEED_SSL_WITH_CURL.
3) Use "curl-config --static-libs" to fill CURL_LIBCURL in Makefile when ones use "./configure --static".