cURL / Mailing Lists / curl-library / Single Mail

curl-library

Re: Potential ABI break for libcurl Sun Compiler users

From: Yang Tse <yangsita_at_gmail.com>
Date: Fri, 3 Apr 2009 20:47:56 +0200

Daniel,

No computer this weekend for me, so I won't be able to answer any
message until Monday. In any case I want to leave something more
clear right away...

The purpose of curlbuild.h.dist is mostly for platforms which lack the
capability of running the configure script. This is mentioned inside
the comments of this file.

As you know curlbuild.h.dist is distributed in the
libcurl-source-release-tarball with the name curlbuild.h in order to
allow libcurl compilation out of the box for systems which lack
configure script capability. For this to work it is also necessary
that an appropriate 'config-platform.h' such as config-tpf.h or
config-symbian.h, exists for the given platform, otherwise compilation
out of the box of the libcurl-source-release-tarball won't be
possible.

On the other hand systems capable of running configure overwrite the
distributed curlbuild.h as soon as they run the configure script.

The compile-time integrity checking only works in all its power when
used with the configure-generated curlbuild.h file.

The compile-time integrity checking when using the
libcurl-source-release-tarball distributed curlbuild.h is mostly
disabled as that file needs to have in consideration all compilation
variants and must always provide valid values which depend for example
on the data model in use at compilation time.

So my question would be.

Why did Stefan Teleman ask us to include in libcurl 7.19.3 a Sun
compiler specific section for curlbuild.h.dist without also providing
a config-sun.h specific file?????????

I can imagine a couple of answers for this right away.

1) He wanted to solve in this way the problem of different headers for
different libraries.

2) He tried to make libcurl ABI-backwards compatible using the off_t
data type and changed curlbuild.h.dist to reflect this. And later
discovered that changing the configure script was also necessary.

In both cases the compile-time checking is rendered less useful.

Why should curlbuild.h.dist continue to include a specific section
that subverts the compile-time checking from the very beginning for a
platform which is capable of running configure and for which we have
no config-platform.h file?

If subversion happens downstream, there is little we can do upstream
unless their changes introduce security issues.

Nice weekend

-- 
-=[Yang]=-
Received on 2009-04-03