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.
