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