portability fix for bison-1.75

Paul Eggert eggert at CS.UCLA.EDU
Sun Jan 22 22:19:59 PST 2006


Kris Kennaway <kris at obsecurity.org> writes:

> there are still two failures:
>
> lang/pike70 (ftp://ftp.oav.net/pike/7.0/)
>
> security/bro (ftp://ftp.ee.lbl.gov/)

Thanks for reporting these.  It's the first I've heard of either
problem.

> Perhaps these are the fault of the software

Yes, in both cases.  I'll follow up separately for each one.
Briefly, Pike is doing a "#define short int", which violates
section 7.1.3 of the C Standard, and bro is doing a
"#define YYLLOC_DEFAULT(Current, Rhs, N) Current = Rhs[N];",
which doesn't properly parenthesize the right-hand side of the macro.

I'll check whether the bugs are still in the latest versions of these
programs, and if so I'll send a bug report to the upstream developers.

Also, I'll install workarounds for this into Bison (by adding an
"#undef short" to defeat Pike's "#define", and by overparenthesizing
the args passed to YYLLOC_DEFAULT), so Bison 2.2 (when it comes out)
should work even with these ancient and buggy distributions.

However....

> but until they're both fixed (either by a patch to the software or a
> fix to bison)

As far as I can tell, neither Pike 7.0 nor bro 0.8 is currently being
maintained by the upstream developer, so what procedure would you
prefer here, to make Bison 2.1 acceptable to you?  Should I send you a
patch for these programs personally?

Here are my sources for saying the old program versions aren't being
maintained.

<ftp://ftp.oav.net/pike/README.txt> says that Pike 7.0 is no longer
being updated.  Presumably people should be using 7.6.6, the current
official release, or 7.4.44, the previous (and still-maintained)
release.

<http://www.freebsd.org/cgi/pds.cgi?ports/security/bro> says that the
port is using <ftp://ftp.ee.lbl.gov/bro-pub-0.8a37.tar.gz>, but that
URL no longer exists.  <http://bro-ids.org/download.html> says that no
further development is being done to the 0.8 release.


More information about the freebsd-ports mailing list