After deep study of the whole ring strict alias issue, I've come to
the conclusion that
the -resulting- binary is effectively the same, and my test case was
swapping the
apr .so files between builds of httpd 2.4.54 / apr 1.7.0 and httpd
2.4.x/ apr 1.7.x.
Running httpd test, no errors were introduced, all binaries loaded and ran fine.
Someone building Subversion might want to repeat that exercise.

So this was entirely a work-around to ensure the grammar didn't escape notice
when types and values were switched around in ways that a compiler might
over-optimize. There were instances where -O3 could break apr at one point,
and I'm wondering if this might have been that root cause?

I think we can accept this very unusual (for a stable release branch)
contortion,
since code correctly compiled on either 1.7.0 or 1.7.branch appear to accomplish
the same and are binary-stable, only using different syntaxes to get there.

Any final thoughts before we simply release 1.7 branch as-is?

Bill


On Wed, Sep 7, 2022 at 11:06 AM Eric Covener <cove...@gmail.com> wrote:
>
> On Thu, Jul 28, 2022 at 12:59 PM William A Rowe Jr <wr...@rowe-clan.net> 
> wrote:
> >
> > Hello friends and collaborators,
> >
> > I'm still rather certain this change is ABI and API contract-breaking
> > on the apr-1.7.x branch, which holds the project hostage for providing
> > a well-understood security fix on the legacy branch. Such things
> > can't persist, our individual maintenance branches must also observe
> > semver, such that anyone could consume a maintenance branch and
> > not be API nor ABI broken against the prior sub-version release;
> >
> > https://github.com/apache/apr/compare/1.7.0...1.7.x#diff-86c28ef8e95257a8d60ce73f3262290e91fc5ca3eb722144a6c99559ddf717cf
> >
> > I'd propose a radical solution, either all of include/* excluding most
> > of private / arch/* have no adverse effects on a rebuild, or we revert
> > the whole branch to the last stable release, in 7 days. Allow a 7 day
> > window to reintroduce critical and desired changes that don't break
> > our dev guidelines;
> >
> > https://apr.apache.org/versioning.html.
> >
> > All other questions were resolved at least 4 weeks ago, as can
> > be observed from include/* changes which alter the incremental
> > consumer's observations, github makes this simple;
> >
> > https://github.com/apache/apr/compare/1.7.0...1.7.x#
> >
> > So I think we are nearly ready 14 days from now to tag 1.7.1
> > and solve this conundrum. If it can be proven than the existing
> > 1.7.0 or 1.7.1 builds would be entirely compatible and not break
> > developer's expectations when deployed against either 1.7.1
> > or 1.7.0 in the next 7 days, my objection is withdrawn and we
> > will tag this code in one week, not waiting for 2 weeks.
> >
> > Who wants to help prove up or down that it should persist and
> > work out the back-out as needed? Otherwise I ask the project
> > member's permissions to work from a new 1.7.x-rebuild branch
> > for the following week based on 1.7.0, and replace 1.7.x with
> > the 1.7.x-rebuild branch one week later.
>
> Should we just back out r1896748 (ring strict aliasing thing) out at
> this stage?  I think the radical solution is too labor intensive and
> unlikely to progress.

Reply via email to