During installation, the ebuild specify that all /usr/lib* generated during compilation must be deleted. There is a library /usr/lib/liby.a that IS needed to build some basic applications which are using bison. Reproducible: Always Steps to Reproduce: 1. Create a very bacic application bison.flex 2. Try to compile this with gcc (you need -ly -ll switch) 3. Actual Results: ld search for a library named liby* (because of `gcc -ly`), but failed because /usr/lib/liby.a does not exist. To resolve this, juste delete the line 'rm -r "${D}"/usr/lib* || die' in bison-2.3.ebuild Previous bison ebuild have the same problem.
post some example code you ran through bison and the exact commands you used
Created attachment 166871 [details] An application that use flex/bison I've put all the code source to build a very small application. The purpose of this sample is to recognise then execute a simple mathematic operation. So extract this under a folder, then juste type 'make'. To run the app, type './test < a' (a is a text test file) Makefile parses bison file (specif.y) then flex file (specif.l). Then gcc compiles all *.c file with '-ly -ll' switch. Without -ll for lex.yy.c (flex) and -ly for specif.tac.b (bison), compilation fails.
use -lfl to get flex's lib
You are just fixing the flex's problem (libfl.a libl.a), not the bison's problem (missing liby.a)
and there's nothing in -ly that you need. all applications should be defining their own yyerror().
You right ! I had nod define yyerror() function. Sorry to disturb you with that.