On Fri, Jan 14, 2022 at 5:07 AM Yann Ylavic <ylavic....@gmail.com> wrote:
>
> On Fri, Jan 14, 2022 at 1:59 AM William A Rowe Jr <wr...@apache.org> wrote:
> >
> > A quick review of nm against libapr-1.so between 1.7.0 and 1.7.x
> > indicates that 1.7.1
> > isn't releasable as-is. Any hints?
> >
> > +T apr_pool_find
> > +T apr_pool_join
> > +T apr_pool_lock
> > +T apr_pool_num_bytes
>
> Those come from r1863234 [1], possibly we can let them as empty macros
> in 1.7.x and still add the ones for apr_pool_join() and
> apr_pool_num_bytes() which were missing for !APR_POOL_DEBUG?
> Yet it might make apps using them from 1.7.1 (w/o #ifdef
> APR_POOL_DEBUG) not compilable with 1.7.0 (though still ABI compatible
> with all 1.7.x), but no one would be able to use them as function
> pointers for instance, which would be a ABI/runtime breakage. Could
> that hurt actually?

Worse, a macro -> function without a major bump? That's awkward. Remember
the .so remains loadable throughout apr-1.so lifespan.

Afraid this has to be rejected outright on apr-1.7. There are contracts with our
developers that they can load the 1.7.0 .so in place of a binary built
against 1.7.2
and **nothing bad can happen** (other than the 'whoops - you wanted
that bug fix.)
The binaries won't fail to load. This sets us up for failure, and why put macro
stubs here if they will be no-ops? What purpose is this serving to break what
has been a pretty reliable solution in developers' hands?

See https://apr.apache.org/versioning.html

What's the actual reservation about 1.8.0? (After a prompt 1.7.1)?


> > +T apr__pool_unmanage
>
> That one is for internal use only (from [2]), not APR_DECLAREd so
> should be fine?

Still, exported on linux, curious how to avoid that. Even as an
internal, not an issue
in 1.8.0, an issue on 1.7.x branch now.

Reply via email to