David Coppa wrote:
> On Sat, 21 Nov 2015, Antoine Jacoutot wrote:
> 
> > cc -O2 -pipe -O2 -pipe   -I/usr/local/include -Isrc-common -Isrc-unix 
> > -Iobjs -Isrc-agg/include -Isrc-common/agg-extras  -c -o objs/lex.yy.o 
> > objs/lex.yy.c
> > Makefile:115: recipe for target 'objs/lex.yy.o' failed
> > ===> Exiting graphics/cfdg with an error
> > <stdout>:868: error: conflicting types for 'yyget_leng'
> > src-common/yglue.h:54: error: previous declaration of 'yyget_leng' was here
> > <stdout>:2301: error: conflicting types for 'yyget_leng'
> > src-common/yglue.h:54: error: previous declaration of 'yyget_leng' was here
> > gmake: *** [objs/lex.yy.o] Error 1
> > *** Error 2 in graphics/cfdg 
> > (/exopi-cvs/ports/infrastructure/mk/bsd.port.mk:2770 
> > '/exopi-obj/pobj/cfdg-2.2.2/.build_done')
> > *** Error 1 in graphics/cfdg 
> > (/exopi-cvs/ports/infrastructure/mk/bsd.port.mk:2491 'build')
> > *** Error 1 in /exopi-cvs/ports (infrastructure/mk/bsd.port.subdir.mk:147 
> > 'build')
> > Error: job failed 256
> 
> This port could use an update... In the meantime, here's the (simple) fix:

This may not be the end of the story. Old flex typedef yy_size_t as unsigned
int, new flex uses size_t (as it should), but there are bootstrapped lexers
prebuilt with the old flex, and at various times people have added their own
typedefs and prototypes.

I have reverted flex to using int in base because we have lexers that are
still using int. I need a little time to evaluate, but then we will hopefully
go back to size_t.

The nature of the difference means that compilation issues aside, runtime
issues are likely only on 64-bit big endian systems. The extent that 64BE code
is tested in the larger ecosystem outside openbsd is... haha.

Don't rush to make too many changes until base settles down (though I think
this diff should be safe either way). Also, keep an extra eye open for
failures on sparc64.

Reply via email to