curl / Mailing Lists / curl-library / Single Mail
Buy commercial curl support. We help you work out your issues, debug your libcurl applications, use the API, port to new platforms, add new features and more. With a team lead by the curl founder Daniel himself.

Re: OpenSSL 1.x support?

From: Alexander Dyagilev via curl-library <curl-library_at_lists.haxx.se>
Date: Sat, 8 Jun 2024 09:13:22 +0700

 Well, this is bad, because this isystem flag is definitely not working as
expected.
I think it's not OpenSSL 1.x only related issue. I just did not notice it.
I think it was still using too old v3 installed in my system instead of the
latest version which I built on my own.

On Sat, Jun 8, 2024 at 9:04 AM Henrik Holst <henrik.holst_at_millistream.com>
wrote:

> done by the m4 macro m4/curl-compilers.m4
>
> with this stated reason:
>
> dnl CURL_CONVERT_INCLUDE_TO_ISYSTEM
> dnl -------------------------------------------------
> dnl Changes standard include paths present in CFLAGS
> dnl and CPPFLAGS into isystem include paths. This is
> dnl done to prevent GNUC from generating warnings on
> dnl headers from these locations, although on ancient
> dnl GNUC versions these warnings are not silenced.
>
> /HH
>
> Den lör 8 juni 2024 kl 03:57 skrev Alexander Dyagilev <alervdvcw_at_gmail.com
> >:
>
>> I've found the reason. It's caused by using -isystem flag. I've patched
>> configure script to disable it and was able to successfully build curl with
>> openssl 1.
>> In my system, in clang system include directories, there is
>> /usr/local/include/openssl installed (version OpenSSL 3.1.3 19 Sep 2023).
>> So, clang was using it instead of the path I provided. Culprit - this
>> isystem flag.
>> So, is it curl build script bug? Why is it using this flag?
>>
>> On Sat, Jun 8, 2024 at 5:39 AM Henrik Holst <henrik.holst_at_millistream.com>
>> wrote:
>>
>>> all of those missing symbols are functions added in OpenSSL 3.0 and the
>>> ones used directly by curl (such as X509_STORE_load_path) are all behind
>>> ifdefs that check for 3.0 so it sounds like your build configuration is
>>> finding the 3.0 include files but the 1.x libs
>>>
>>> /HH
>>>
>>> Den lör 8 juni 2024 kl 00:20 skrev Alexander Dyagilev via curl-library <
>>> curl-library_at_lists.haxx.se>:
>>>
>>>> Hello,
>>>>
>>>> Does libcurl support OpenSSL 1.x?
>>>>
>>>> I'm trying to build it under macOS and getting the following linker
>>>> errors:
>>>>
>>>> Undefined symbols for architecture x86_64:
>>>> "_EVP_PKEY_get0_type_name", referenced from:
>>>> _ossl_connect_common in libcurl.a(libcurl_la-openssl.o)
>>>> "_EVP_PKEY_get_bits", referenced from:
>>>> _ossl_connect_common in libcurl.a(libcurl_la-openssl.o)
>>>> "_EVP_PKEY_get_bn_param", referenced from:
>>>> _Curl_ossl_certchain in libcurl.a(libcurl_la-openssl.o)
>>>> "_EVP_PKEY_get_group_name", referenced from:
>>>> _ossl_connect_common in libcurl.a(libcurl_la-openssl.o)
>>>> "_EVP_PKEY_get_id", referenced from:
>>>> _Curl_ossl_certchain in libcurl.a(libcurl_la-openssl.o)
>>>> _cert_stuff in libcurl.a(libcurl_la-openssl.o)
>>>> "_EVP_PKEY_get_security_bits", referenced from:
>>>> _ossl_connect_common in libcurl.a(libcurl_la-openssl.o)
>>>> "_SSL_get1_peer_certificate", referenced from:
>>>> _ossl_connect_common in libcurl.a(libcurl_la-openssl.o)
>>>> "_X509_STORE_load_file", referenced from:
>>>> _Curl_ssl_setup_x509_store in libcurl.a(libcurl_la-openssl.o)
>>>> "_X509_STORE_load_path", referenced from:
>>>> _Curl_ssl_setup_x509_store in libcurl.a(libcurl_la-openssl.o)
>>>>
>>>> Builds fine when I build it with OpenSSL 3.x.
>>>>
>>>> If it's not supported, what is the last version which does have support?
>>>> --
>>>> Unsubscribe: https://lists.haxx.se/mailman/listinfo/curl-library
>>>> Etiquette: https://curl.se/mail/etiquette.html
>>>>
>>>


-- 
Unsubscribe: https://lists.haxx.se/mailman/listinfo/curl-library
Etiquette:   https://curl.se/mail/etiquette.html
Received on 2024-06-08