[OpenAFS-devel] open issues for an openafs 1.8 branch

Benjamin Kaduk kaduk@MIT.EDU
Mon, 6 Oct 2014 16:51:36 -0400 (EDT)


On Wed, 1 Oct 2014, Benjamin Kaduk wrote:

> On Mon, 29 Sep 2014, Benjamin Kaduk wrote:
>
> > On Mon, 29 Sep 2014, chas williams - CONTRACTOR wrote:
> > >
> > > I don't see the reason for --disable-gtx.  --disable-uss
> > > apparently exists because of symbol leakage/pollution.  The right
> > > configure test would be to automatically detect this and just disable
> > > uss building. The other right way is to fix the leakage.  --disable-uss
> > > was easier to write of course and did get the job done.  Perhaps it is
> > > time to split off some of the less popular OpenAFS utilities into their
> > > own branch.
> >
> > I'll see if I can take a look at the leakage.
>
> Okay, so as far as I can tell from what's in gerrit, there are cases where
> heimdal static libraries expose things like yyparse() and yylex(), which
> would conflict at link time when building the bison/flex products used by
> uss.
>
> Looking at the heimdal sources, it seems that these tools are still used,
> and there hasn't been an active effort to rename such symbols since 2008
> (for hx509).  I didn't do a super-thorough check, though.
>
> But, I don't see any of these symbols in the libraries on my FreeBSD
> system; only the namespace-d ones in hx509.  So, I'm not really sure what
> sorts of systems the issue was seen on.
>
> In any case, we could probably put some bits in a header to #define our
> generated routines into a different namespace.

This seems like it may actually be harder than it sounds, as some
variables are used/declared above where our headers are included, in the
generated file (things like yyin, and yytext), so a full cleaning could be
hard.  Looking at the buildbot logs, though, it seems like we are actually
using flex everywhere (except for windows, where we checked in the
generated files?), so potentially flex's --prefix argument is a solution.
That would be a fair bit of churn, though, so I'm not super-interested in
doing it right now.  (compile_et gives linking errors after doing the
trivial tweaks, and I don't see a need to spend a whole lot of time on
this issue.)

Leaving what I found in the mail archives...

-Ben