[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: ABI changes analysis

From: Daniel Shahaf <d.s_at_daniel.shahaf.name>
Date: Mon, 27 Jun 2016 01:43:54 +0000

Stefan wrote on Mon, Jun 27, 2016 at 02:49:51 +0200:
> > On Sun, Jun 26, 2016 at 09:26:27PM +0200, Stefan wrote:
> >> I'm just wondering why the backward compatibility for 1.9.0 (and 1.8.0)
> >> doesn't state 100% here [1].
> >>
> >> Checking out the details on 1.9.0 [2] and there the details on
> >> libsvn_subr [3] suggests 3 functions were removed:
> >> - svn__apr_hash_index_key ( apr_hash_index_key( apr_hash_index_t const* hi )
> >> - svn__apr_hash_index_klen ( apr_hash_index_key( apr_hash_index_t const*
> >> hi )
> >> - svn__apr_hash_index_val ( apr_hash_index_key( apr_hash_index_t const* hi )

> And now I also remember and realize that these removed symbols were
> actually private ones never intended to be exported (aka: double _ in
> the name). So 1.8/1.9 corrected this and ABI compatibility for these
> were intentionally broken.

I think these names were intentionally exported via
subversion/include/private/*.h by libsvn_subr for libsvn_*'s use, and
were removed when we bumped the minimum APR version to one that has
these functions natively (apr_hash_this_key() and friends).

I.e., the minimum APR supported by 1.8 doesn't have
apr_hash_index_key(), the minimum APR supported by 1.9 does have that
function, so 1.9 code uses the apr_* function directly without an
svn__* wrapper.

Cheers,

Daniel
Received on 2016-06-27 03:44:07 CEST

This is an archived mail posted to the Subversion Dev mailing list.