Curl.dll and msvcrt dependence

Windows specific questions.
Post Reply
Iczer
Posts: 99
Joined: Jul 04, 2017 18:09

Curl.dll and msvcrt dependence

Post by Iczer »

Tried to update curl.dll in my project from version 7.67 to any 7.68...7.70 (pre-compiled library from curl-project site) and get error:
The procedure entry point _difftime64 could not be located in the dynamic link library msvcrt.dll
I have Microsoft Visual C++ 2010 Redistributable installed and msvcr100.dll contain this function,
also - only one instance of function found in source code:

Code: Select all

 tzonediffFloat = difftime(tt_local, tt_gmt);
so - is there a something wrong with Visual C++ Redistributable installed on my system (xp64) or, as option I should recompile curl.dll from sources?
if recompilation is needed - it seems it would be msys2, i think. But as msys2 is win7+ only, how i should ensure old msvcrt.dll (xp64) compatibility?
systemctl
Posts: 182
Joined: Mar 27, 2020 5:15

Re: Curl.dll and msvcrt dependence

Post by systemctl »

Iczer wrote:Tried to update curl.dll in my project from version 7.67 to any 7.68...7.70 (pre-compiled library from curl-project site) and get error:
The procedure entry point _difftime64 could not be located in the dynamic link library msvcrt.dll
I have Microsoft Visual C++ 2010 Redistributable installed and msvcr100.dll contain this function,
also - only one instance of function found in source code:

Code: Select all

 tzonediffFloat = difftime(tt_local, tt_gmt);
so - is there a something wrong with Visual C++ Redistributable installed on my system (xp64) or, as option I should recompile curl.dll from sources?
if recompilation is needed - it seems it would be msys2, i think. But as msys2 is win7+ only, how i should ensure old msvcrt.dll (xp64) compatibility?
Did you check that VC++ 2010 is the VC++ runtime version required by curl.dll?

Because I think it could be VC++ 2012, VC++ 2013, VC++2015... Who know!
systemctl
Posts: 182
Joined: Mar 27, 2020 5:15

Re: Curl.dll and msvcrt dependence

Post by systemctl »

IMHO, WinXP is outdated and many newer APIs are lacked. I used to see software complained about similar thing when I tried to install them on XP. It's no way to fix it other than upgrade Windows. Perhaps you could try to compile curl yourself. MSYS2 won't work but you could use MinGW64 as compiler. The MinGW GCC version on Equation.com also works on WinXP.
Iczer
Posts: 99
Joined: Jul 04, 2017 18:09

Re: Curl.dll and msvcrt dependence

Post by Iczer »

Did you check that VC++ 2010 is the VC++ runtime version required by curl.dll?
it's only mentioned that it has msvcrt.dll dependency, I try find out...

now that you mention it - in win\system32\ folder there are several msvcr*.dll files belonging Microsoft Visual C++ 2010/2012/2013 redistributables and every one of them contain _difftime64 function.
I try to install MinGW64 v7.x or 8.x and build curl.dll
caseih
Posts: 2157
Joined: Feb 26, 2007 5:32

Re: Curl.dll and msvcrt dependence

Post by caseih »

The issue could be the binary you downloaded links against a particular version of msvcrt (perhaps 2010 version like you say), whereas FBC is currently hard wired to use the old msvcrt.dll. You'll have to recompile curl.dll against that old version of msvcrt.dll.
systemctl
Posts: 182
Joined: Mar 27, 2020 5:15

Re: Curl.dll and msvcrt dependence

Post by systemctl »

caseih wrote:The issue could be the binary you downloaded links against a particular version of msvcrt (perhaps 2010 version like you say), whereas FBC is currently hard wired to use the old msvcrt.dll. You'll have to recompile curl.dll against that old version of msvcrt.dll.
If it's possible. Some project switched to newer C standard so they need the newer runtime. The default msvcrt.dll is very old.
caseih
Posts: 2157
Joined: Feb 26, 2007 5:32

Re: Curl.dll and msvcrt dependence

Post by caseih »

Indeed it is very old. But that's currently what the FB compiler uses, so any libraries you want to work with must also link against that old dll. MS recommends strongly against mixing C runtime dlls in the same process. There can be conflicts with the structures used for file I/O, and also error handling.
Iczer
Posts: 99
Joined: Jul 04, 2017 18:09

Re: Curl.dll and msvcrt dependence

Post by Iczer »

after 2 days I compiled static an dynamic curl libraries but... it's load and configured OK, but when performing connection it just stops - curl_easy_perform() sends/receives data, but never return.
There a some room for improvement - in the cmake log there a too many "not found" and "Failed" messages and also i cannot understand what is "*nroff program" and how to make curl compile with brotli libraries... although cmake script do not consider those as errors...
I compiled with gcc 5.4 and 7.2 successfully but without any difference in result...
cmake log:

Code: Select all

The C compiler identification is GNU 7.2.0
Check for working C compiler: C:/Program Files/mingw-w64/x86_64-7.2.0-win32-seh-rt_v5-rev1/mingw64/bin/gcc.exe
Check for working C compiler: C:/Program Files/mingw-w64/x86_64-7.2.0-win32-seh-rt_v5-rev1/mingw64/bin/gcc.exe -- works
Detecting C compiler ABI info
Detecting C compiler ABI info - done
Detecting C compile features
Detecting C compile features - done
CMake Warning at CMakeLists.txt:50 (message):
  the curl cmake build system is poorly maintained.  Be aware


curl version=[7.70.0]
Performing Test OPT_pedantic
Performing Test OPT_pedantic - Success
Performing Test OPT_Wall
Performing Test OPT_Wall - Success
Performing Test OPT_W
Performing Test OPT_W - Success
Performing Test OPT_Wpointer_arith
Performing Test OPT_Wpointer_arith - Success
Performing Test OPT_Wwrite_strings
Performing Test OPT_Wwrite_strings - Success
Performing Test OPT_Wunused
Performing Test OPT_Wunused - Success
Performing Test OPT_Wshadow
Performing Test OPT_Wshadow - Success
Performing Test OPT_Winline
Performing Test OPT_Winline - Success
Performing Test OPT_Wnested_externs
Performing Test OPT_Wnested_externs - Success
Performing Test OPT_Wmissing_declarations
Performing Test OPT_Wmissing_declarations - Success
Performing Test OPT_Wmissing_prototypes
Performing Test OPT_Wmissing_prototypes - Success
Performing Test OPT_Wno_long_long
Performing Test OPT_Wno_long_long - Success
Performing Test OPT_Wfloat_equal
Performing Test OPT_Wfloat_equal - Success
Performing Test OPT_Wno_multichar
Performing Test OPT_Wno_multichar - Success
Performing Test OPT_Wsign_compare
Performing Test OPT_Wsign_compare - Success
Performing Test OPT_Wundef
Performing Test OPT_Wundef - Success
Performing Test OPT_Wno_format_nonliteral
Performing Test OPT_Wno_format_nonliteral - Success
Performing Test OPT_Wendif_labels
Performing Test OPT_Wendif_labels - Success
Performing Test OPT_Wstrict_prototypes
Performing Test OPT_Wstrict_prototypes - Success
Performing Test OPT_Wdeclaration_after_statement
Performing Test OPT_Wdeclaration_after_statement - Success
Performing Test OPT_Wstrict_aliasing_3
Performing Test OPT_Wstrict_aliasing_3 - Success
Performing Test OPT_Wcast_align
Performing Test OPT_Wcast_align - Success
Performing Test OPT_Wtype_limits
Performing Test OPT_Wtype_limits - Success
Performing Test OPT_Wold_style_declaration
Performing Test OPT_Wold_style_declaration - Success
Performing Test OPT_Wmissing_parameter_type
Performing Test OPT_Wmissing_parameter_type - Success
Performing Test OPT_Wempty_body
Performing Test OPT_Wempty_body - Success
Performing Test OPT_Wclobbered
Performing Test OPT_Wclobbered - Success
Performing Test OPT_Wignored_qualifiers
Performing Test OPT_Wignored_qualifiers - Success
Performing Test OPT_Wconversion
Performing Test OPT_Wconversion - Success
Performing Test OPT_Wno_sign_conversion
Performing Test OPT_Wno_sign_conversion - Success
Performing Test OPT_Wvla
Performing Test OPT_Wvla - Success
Performing Test OPT_Wdouble_promotion
Performing Test OPT_Wdouble_promotion - Success
Performing Test OPT_Wno_system_headers
Performing Test OPT_Wno_system_headers - Success
Performing Test OPT_Wno_pedantic_ms_format
Performing Test OPT_Wno_pedantic_ms_format - Success
CMake Warning at CMake/Macros.cmake:107 (message):
  Found no *nroff program
Call Stack (most recent call first):
  CMakeLists.txt:216 (curl_nroff_check)


Found Perl: E:/ProgrammingTools/Perl_x64_Strawberry/perl/bin/perl.exe (found version "5.28.1") 
Looking for pthread.h
Looking for pthread.h - found
Looking for pthread_create
Looking for pthread_create - not found
Looking for pthread_create in pthreads
Looking for pthread_create in pthreads - not found
Looking for pthread_create in pthread
Looking for pthread_create in pthread - found
Found Threads: TRUE  
Looking for getch in ws2_32;-lpthread
Looking for getch in ws2_32;-lpthread - found
Looking for getch in winmm;ws2_32;-lpthread
Looking for getch in winmm;ws2_32;-lpthread - found
Found OpenSSL: C:/Temp/curl-7.70.0/deps/lib/libcrypto.dll.a (found version "1.1.1g") 
Looking for openssl/crypto.h
Looking for openssl/crypto.h - found
Looking for openssl/err.h
Looking for openssl/err.h - found
Looking for openssl/pem.h
Looking for openssl/pem.h - found
Looking for openssl/rsa.h
Looking for openssl/rsa.h - found
Looking for openssl/ssl.h
Looking for openssl/ssl.h - found
Looking for openssl/x509.h
Looking for openssl/x509.h - found
Looking for openssl/rand.h
Looking for openssl/rand.h - found
Found NGHTTP2: C:/Temp/curl-7.70.0/deps/lib/libnghttp2.a  
Looking for cldap_open in wldap32;winmm;ws2_32;-lpthread;advapi32;OpenSSL::SSL;OpenSSL::Crypto;C:/Temp/curl-7.70.0/deps/lib/libnghttp2.a
Looking for cldap_open in wldap32;winmm;ws2_32;-lpthread;advapi32;OpenSSL::SSL;OpenSSL::Crypto;C:/Temp/curl-7.70.0/deps/lib/libnghttp2.a - found
Looking for include file winldap.h
Looking for include file winldap.h - not found
Looking for include file winber.h
Looking for include file winber.h - not found
Looking for include file ldap_ssl.h
Looking for include file ldap_ssl.h - not found
Looking for include file ldapssl.h
Looking for include file ldapssl.h - not found
Looking for idn2_lookup_ul in idn2;wldap32;winmm;ws2_32;-lpthread;advapi32;OpenSSL::SSL;OpenSSL::Crypto;C:/Temp/curl-7.70.0/deps/lib/libnghttp2.a
Looking for idn2_lookup_ul in idn2;wldap32;winmm;ws2_32;-lpthread;advapi32;OpenSSL::SSL;OpenSSL::Crypto;C:/Temp/curl-7.70.0/deps/lib/libnghttp2.a - not found
Found LibSSH2: C:/Temp/curl-7.70.0/deps/lib/libssh2.dll.a (found version "1.9.0") 
Looking for libssh2_version
Looking for libssh2_version - found
Looking for libssh2_init
Looking for libssh2_init - found
Looking for libssh2_exit
Looking for libssh2_exit - found
Looking for libssh2_scp_send64
Looking for libssh2_scp_send64 - found
Looking for libssh2_session_handshake
Looking for libssh2_session_handshake - found
Looking for include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, windows.h
Looking for include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, windows.h - found
Looking for 3 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., winsock.h
Looking for 3 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., winsock.h - found
Looking for 4 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., ws2tcpip.h
Looking for 4 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., ws2tcpip.h - found
Looking for 5 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., winsock2.h
Looking for 5 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., winsock2.h - found
Looking for 6 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., stdio.h
Looking for 6 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., stdio.h - found
Looking for 7 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., sys/filio.h
Looking for 7 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., sys/filio.h - not found
Looking for 7 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., sys/ioctl.h
Looking for 7 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., sys/ioctl.h - not found
Looking for 7 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., sys/resource.h
Looking for 7 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., sys/resource.h - not found
Looking for 9 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., sys/uio.h
Looking for 9 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., sys/uio.h - not found
Looking for 9 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., sys/un.h
Looking for 9 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., sys/un.h - not found
Looking for 10 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., sys/xattr.h
Looking for 10 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., sys/xattr.h - not found
Looking for 10 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., arpa/tftp.h
Looking for 10 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., arpa/tftp.h - not found
Looking for 10 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., assert.h
Looking for 10 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., assert.h - found
Looking for 11 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., crypto.h
Looking for 11 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., crypto.h - not found
Looking for 11 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., err.h
Looking for 11 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., err.h - not found
Looking for 11 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., errno.h
Looking for 11 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., errno.h - found
Looking for 13 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., idn2.h
Looking for 13 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., idn2.h - not found
Looking for 13 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., ifaddrs.h
Looking for 13 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., ifaddrs.h - not found
Looking for 14 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., krb.h
Looking for 14 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., krb.h - not found
Looking for 14 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., libgen.h
Looking for 14 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., libgen.h - found
Looking for 15 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., locale.h
Looking for 15 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., locale.h - found
Looking for 16 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., netinet/tcp.h
Looking for 16 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., netinet/tcp.h - not found
Looking for 16 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., pem.h
Looking for 16 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., pem.h - not found
Looking for 16 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., poll.h
Looking for 16 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., poll.h - not found
Looking for 16 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., rsa.h
Looking for 16 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., rsa.h - not found
Looking for 18 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., ssl.h
Looking for 18 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., ssl.h - not found
Looking for 18 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., stdbool.h
Looking for 18 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., stdbool.h - found
Looking for 22 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., stropts.h
Looking for 22 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., stropts.h - not found
Looking for 24 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., stddef.h
Looking for 24 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., stddef.h - found
Looking for 27 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., sys/utsname.h
Looking for 27 include files C:/Temp/curl-7.70.0/deps/include/libssh2.h, ..., sys/utsname.h - not found
Check size of size_t
Check size of size_t - done
Check size of ssize_t
Check size of ssize_t - done
Check size of long long
Check size of long long - done
Check size of long
Check size of long - done
Check size of short
Check size of short - done
Check size of int
Check size of int - done
Check size of __int64
Check size of __int64 - done
Check size of time_t
Check size of time_t - done
Looking for basename
Looking for basename - found
Looking for strncmpi
Looking for strncmpi - not found
Looking for alarm
Looking for alarm - not found
Looking for getpwuid_r
Looking for getpwuid_r - not found
Looking for usleep
Looking for usleep - not found
Looking for gethostbyname
Looking for gethostbyname - found
Looking for strtoll
Looking for strtoll - found
Looking for _strtoi64
Looking for _strtoi64 - found
Looking for strerror_r
Looking for strerror_r - not found
Looking for siginterrupt
Looking for siginterrupt - not found
Looking for fork
Looking for fork - not found
Looking for freeaddrinfo
Looking for freeaddrinfo - found
Looking for freeifaddrs
Looking for freeifaddrs - not found
Looking for pipe
Looking for pipe - not found
Looking for ftruncate
Looking for ftruncate - not found
Looking for getprotobyname
Looking for getprotobyname - found
Looking for getpeername
Looking for getpeername - found
Looking for getsockname
Looking for getsockname - found
Looking for if_nametoindex
Looking for if_nametoindex - not found
Looking for getrlimit
Looking for getrlimit - not found
Looking for setlocale
Looking for setlocale - found
Looking for setmode
Looking for setmode - found
Looking for setrlimit
Looking for setrlimit - not found
Looking for fcntl
Looking for fcntl - not found
Looking for ioctl
Looking for ioctl - not found
Looking for setsockopt
Looking for setsockopt - found
Looking for mach_absolute_time
Looking for mach_absolute_time - not found
Looking for inet_pton
Looking for inet_pton - not found
Looking for fsetxattr
Looking for fsetxattr - not found
Performing Curl Test HAVE_FCNTL_O_NONBLOCK
Performing Curl Test HAVE_FCNTL_O_NONBLOCK - Failed
Performing Curl Test HAVE_IOCTLSOCKET
Performing Curl Test HAVE_IOCTLSOCKET - Success
Performing Curl Test HAVE_IOCTLSOCKET_CAMEL
Performing Curl Test HAVE_IOCTLSOCKET_CAMEL - Failed
Performing Curl Test HAVE_IOCTLSOCKET_CAMEL_FIONBIO
Performing Curl Test HAVE_IOCTLSOCKET_CAMEL_FIONBIO - Success
Performing Curl Test HAVE_IOCTLSOCKET_FIONBIO
Performing Curl Test HAVE_IOCTLSOCKET_FIONBIO - Success
Performing Curl Test HAVE_IOCTL_FIONBIO
Performing Curl Test HAVE_IOCTL_FIONBIO - Failed
Performing Curl Test HAVE_IOCTL_SIOCGIFADDR
Performing Curl Test HAVE_IOCTL_SIOCGIFADDR - Failed
Performing Curl Test HAVE_SETSOCKOPT_SO_NONBLOCK
Performing Curl Test HAVE_SETSOCKOPT_SO_NONBLOCK - Failed
Performing Curl Test HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID
Performing Curl Test HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID - Failed
Performing Curl Test HAVE_BOOL_T
Performing Curl Test HAVE_BOOL_T - Success
Performing Curl Test HAVE_FILE_OFFSET_BITS
Performing Curl Test HAVE_FILE_OFFSET_BITS - Success
Performing Curl Test HAVE_VARIADIC_MACROS_C99
Performing Curl Test HAVE_VARIADIC_MACROS_C99 - Success
Performing Curl Test HAVE_VARIADIC_MACROS_GCC
Performing Curl Test HAVE_VARIADIC_MACROS_GCC - Success
Check size of off_t
Check size of off_t - done
Check size of curl_off_t
Check size of curl_off_t - done
Performing Curl Test HAVE_GLIBC_STRERROR_R
Performing Curl Test HAVE_GLIBC_STRERROR_R - Failed
Performing Curl Test HAVE_POSIX_STRERROR_R
Performing Curl Test HAVE_POSIX_STRERROR_R - Failed
Performing Curl Test HAVE_CLOCK_GETTIME_MONOTONIC
Performing Curl Test HAVE_CLOCK_GETTIME_MONOTONIC - Failed
Performing Curl Test HAVE_BUILTIN_AVAILABLE
Performing Curl Test HAVE_BUILTIN_AVAILABLE - Failed
Performing Test curl_cv_recv
Performing Test curl_cv_recv - Success
Performing Test curl_cv_func_recv_test
Performing Test curl_cv_func_recv_test - Success
Tested: int recv(SOCKET, char *, int, int)
Performing Test curl_cv_send
Performing Test curl_cv_send - Success
Performing Test curl_cv_func_send_test
Performing Test curl_cv_func_send_test - Success
Tested: int send(SOCKET, const char *, int, int)
Performing Test HAVE_MSG_NOSIGNAL
Performing Test HAVE_MSG_NOSIGNAL - Failed
Performing Test HAVE_STRUCT_TIMEVAL
Performing Test HAVE_STRUCT_TIMEVAL - Success
Check size of sig_atomic_t
Check size of sig_atomic_t - done
Performing Test HAVE_SIG_ATOMIC_T_NOT_VOLATILE
Performing Test HAVE_SIG_ATOMIC_T_NOT_VOLATILE - Success
Check size of struct sockaddr_storage
Check size of struct sockaddr_storage - done
Performing Test HAVE_POLL_FINE
Performing Test HAVE_POLL_FINE - Failed
LTO supported and enabled
Enabled features: SSL IPv6 libz AsynchDNS NTLM HTTP2 HTTPS-proxy
Enabled protocols: DICT FILE FTP FTPS GOPHER HTTP HTTPS IMAP IMAPS LDAP POP3 POP3S RTSP SCP SFTP SMB SMBS SMTP SMTPS TELNET TFTP
Enabled SSL backends: OpenSSL
Configuring done

CMake Warning at CMakeLists.txt:50 (message):
  the curl cmake build system is poorly maintained.  Be aware


curl version=[7.70.0]
CMake Warning at CMake/Macros.cmake:107 (message):
  Found no *nroff program
Call Stack (most recent call first):
  CMakeLists.txt:216 (curl_nroff_check)


LTO supported and enabled
Enabled features: SSL IPv6 libz AsynchDNS NTLM HTTP2 HTTPS-proxy
Enabled protocols: DICT FILE FTP FTPS GOPHER HTTP HTTPS IMAP IMAPS LDAP POP3 POP3S RTSP SCP SFTP SMB SMBS SMTP SMTPS TELNET TFTP
Enabled SSL backends: OpenSSL
Configuring done
Generating done
caseih
Posts: 2157
Joined: Feb 26, 2007 5:32

Re: Curl.dll and msvcrt dependence

Post by caseih »

The "not found" messages are not errors. Just means that your environment (the old msvcrt or whatever) lacks some features, so the code is using #ifdefs to define alternates or remove features from the build. Nothing fatal. The final configuration feature list looks pretty good.
Iczer
Posts: 99
Joined: Jul 04, 2017 18:09

Re: Curl.dll and msvcrt dependence

Post by Iczer »

almost everything resolved - mainly it was 2 problems:
first - i had wrong lock/unlock functions for curl share interface. It worked until curl v.7.67.0, but in v.7.68.0 they are found and resolved bug in connection cache...
wrong:

Code: Select all

Common Shared As Any Ptr CURLSHLockMutex

CURLSHLockMutex = MutexCreate()
'.......................................
Sub CURLSHOPT_LOCKFUNC(ByVal handle As CURL ptr, ByVal iData as curl_lock_data, ByVal locktype As curl_lock_access, ByVal userptr As Any Ptr)
	MutexLock(CURLSHLockMutex)
End Sub
'.......................................
Sub CURLSHOPT_UNLOCKFUNC(ByVal handle As CURL ptr, ByVal iData as curl_lock_data, ByVal userptr As Any Ptr)
	MutexUnLock(CURLSHLockMutex)
End Sub
'.......................................
MutexDestroy(CURLSHLockMutex)
right:

Code: Select all

Common Shared As Any Ptr Ptr CURLSHLockMutexEX

CURLSHLockMutexEX = New Any Ptr[CURL_LOCK_DATA_LAST + 1]

For i As UInteger = 0 To CURL_LOCK_DATA_LAST
	CURLSHLockMutexEX[i] = MutexCreate()
Next
'.......................................
Sub CURLSHOPT_LOCKFUNC(ByVal handle As CURL ptr, ByVal iData as curl_lock_data, ByVal locktype As curl_lock_access, ByVal userptr As Any Ptr)
	MutexLock(CURLSHLockMutexEX[iData])
End Sub
'.......................................
Sub CURLSHOPT_UNLOCKFUNC(ByVal handle As CURL ptr, ByVal iData as curl_lock_data, ByVal userptr As Any Ptr)
	MutexUnLock(CURLSHLockMutexEX[iData])
End Sub
'.......................................
For i As UInteger = 0 To CURL_LOCK_DATA_LAST
	MutexDestroy(CURLSHLockMutexEX[i])
Next

Delete[] CURLSHLockMutexEX
second - for some reason there was no FindBrotli.cmake file in curl package so Brotli libraries was not found
Post Reply