curl / Mailing Lists / curl-library / Single Mail
Buy commercial curl support from WolfSSL. 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 himself.

RE: [RELEASE] curl 7.86.0

From: Randall via curl-library <curl-library_at_lists.haxx.se>
Date: Wed, 26 Oct 2022 17:43:19 -0400

On October 26, 2022 4:48 PM, Daniel Stenberg wrote:
>On Wed, 26 Oct 2022, Randall via curl-library wrote:
>
>> In my view , the change at 7.86.0 to force 64-bit only constitutes an
>> ABI break.
>
>That's not a change in 7.86.0.
>
>The change in 7.86.0 is that configure now says that it sees no 64 bit type
for
>curl_off_t and those builds are deprecated and support for them will be
removed
>completely in March 2023. You can still override that error, as the error
message
>explains.
>
>The bug has been in there all for a long time for Tandem, since it has long
long but
>hasn't made curl_off_t use it.
>
>The configure check thus helped us spot this.
>
>> This fixes that and does not impact any other platform.
>
>When you fix this issue and you get a 64 bit curl_off_t, that build is not
ABI
>compatible with a previous build where that type was 32 bit.

This still does not give me sufficient direction to resolve the issue. I
need a 32-bit build and a 64-bit build for the NonStop platform. The fix
being discussed previously was:

diff --git a/include/curl/system.h b/include/curl/system.h index
8d56b8a4a..8cdf25fa4 100644
--- a/include/curl/system.h
+++ b/include/curl/system.h
_at__at_ -170,10 +170,18 _at__at_
  # define CURL_FORMAT_CURL_OFF_TU "llu"
  # define CURL_SUFFIX_CURL_OFF_T LL
  # define CURL_SUFFIX_CURL_OFF_TU ULL
  # define CURL_TYPEOF_CURL_SOCKLEN_T int

+#elif defined(__TANDEM) && !defined(__LP64)
+# define CURL_TYPEOF_CURL_OFF_T long long
+# define CURL_FORMAT_CURL_OFF_T "lld"
+# define CURL_FORMAT_CURL_OFF_TU "llu"
+# define CURL_SUFFIX_CURL_OFF_T LL
+# define CURL_SUFFIX_CURL_OFF_TU ULL
+# define CURL_TYPEOF_CURL_SOCKLEN_T int
+
  #elif defined(_WIN32_WCE)
  # define CURL_TYPEOF_CURL_OFF_T __int64
  # define CURL_FORMAT_CURL_OFF_T "I64d"
  # define CURL_FORMAT_CURL_OFF_TU "I64u"
  # define CURL_SUFFIX_CURL_OFF_T i64

This will generate a 64-bit curl_off_t, which as I understand from other
replies it is wrong for 32-bit builds. long long is invariant, being always
64-bit regardless of the memory model.

What am I missing?
-Randall

-- 
Unsubscribe: https://lists.haxx.se/listinfo/curl-library
Etiquette:   https://curl.se/mail/etiquette.html
Received on 2022-10-26