Discussion:
[UrJTAG-dev] HEAD (revision 2039) is broken because of bison update
Anatol Pomozov
2014-01-15 23:57:04 UTC
Permalink
Hi,

I am trying to compile urjtag on HEAD and it seems broken because
Linux Arch that I use has newer version of bison.

The full build log is here http://pastebin.com/kaEWSHUw and the exact
message is below.

LEX svf_flex.c
/tmp/yaourt-tmp-anatol/aur-urjtag-svn/src/urjtag-svn-20130419/urjtag/src/svf/svf_bison.y:30.1-13:
warning: deprecated directive, use ‘%name-prefix’ [-Wdeprecated]
%name-prefix="urj_svf_"
^^^^^^^^^^^^^
updating svf_bison.h
CC svf_bison.lo
CC svf_flex.lo
CC svf.lo
svf_bison.c: In function 'urj_svf_parse':
svf_bison.c:1494:7: error: too few arguments to function 'urj_svf_lex'
yychar = yylex (&yylval, &yylloc);
^
svf_bison.c:64:25: note: declared here
#define yylex urj_svf_lex
^
svf_bison.y:46:5: note: in expansion of macro 'yylex'
int yylex (YYSTYPE *, YYLTYPE *, void *);
^
Makefile:499: recipe for target 'svf_bison.lo' failed
make[3]: *** [svf_bison.lo] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: Leaving directory
'/tmp/yaourt-tmp-anatol/aur-urjtag-svn/src/urjtag-svn-20130419/urjtag/src/svf'
Makefile:590: recipe for target 'all-recursive' failed
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory
'/tmp/yaourt-tmp-anatol/aur-urjtag-svn/src/urjtag-svn-20130419/urjtag/src'
Makefile:503: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory
'/tmp/yaourt-tmp-anatol/aur-urjtag-svn/src/urjtag-svn-20130419/urjtag'
Makefile:433: recipe for target 'all' failed
make: *** [all] Error 2
Daniel Burr
2014-01-16 00:10:25 UTC
Permalink
Post by Anatol Pomozov
I am trying to compile urjtag on HEAD and it seems broken because
Linux Arch that I use has newer version of bison.
Newer versions of bison need lex-param to be specified. The attached
patch should do the trick, although I have only tested it to verify that
it correctly compiles with bison 3.0.2.

DB

Confidentiality Notice: This message (including attachments) is a private communication solely for use of the intended recipient(s).
If you are not the intended recipient(s) or believe you received this message in error, notify the sender immediately and then delete this
message. Any other use, retention, dissemination or copying is prohibited and may be a violation of law, including the Electronic
Communication Privacy Act of 1986."
Anatol Pomozov
2014-01-16 00:43:52 UTC
Permalink
Hi,

Thanks for quick reply
Post by Anatol Pomozov
I am trying to compile urjtag on HEAD and it seems broken because
Linux Arch that I use has newer version of bison.
Newer versions of bison need lex-param to be specified. The attached patch
should do the trick, although I have only tested it to verify that it
correctly compiles with bison 3.0.2.
I also have bison 3.0.2 but the compilation still fails. Note that
urjtag/src/svf/svf_bison.y has two %parse-param, could it be reason of
this compilation failure?

Also you can fix a bison warning by removing 'equals sign' after %name-prefix


$ bison -V
bison (GNU Bison) 3.0.2

====
YACC svf_bison.c
CC svf_flex.lo
CC svf_bison.lo
CC svf.lo
svf_bison.c: In function 'urj_svf_parse':
svf_bison.c:1494:7: error: too few arguments to function 'urj_svf_lex'
yychar = yylex (&yylval, &yylloc);
^
svf_bison.c:64:25: note: declared here
#define yylex urj_svf_lex
^
svf_bison.y:46:5: note: in expansion of macro 'yylex'
#include "svf_bison.h"
^
Makefile:499: recipe for target 'svf_bison.lo' failed
make[3]: *** [svf_bison.lo] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: Leaving directory '/home/anatol/sources/urjtag/urjtag/src/svf'
Makefile:590: recipe for target 'all-recursive' failed
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory '/home/anatol/sources/urjtag/urjtag/src'
Makefile:503: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/anatol/sources/urjtag/urjtag'
Makefile:433: recipe for target 'all' failed
make: *** [all] Error 2
Anatol Pomozov
2014-01-16 00:55:00 UTC
Permalink
My bad, Daniel.

I've cleaned the source tree with 'git clean' and then rebuild it. Now
the project builds fine. Thanks a lot for the fix!
Anatol Pomozov
2014-01-17 22:17:46 UTC
Permalink
Hi, Daniel

Friendly ping about this fix status. Are you going to submit it to the
repository?

On Wed, Jan 15, 2014 at 4:55 PM, Anatol Pomozov
Post by Anatol Pomozov
My bad, Daniel.
I've cleaned the source tree with 'git clean' and then rebuild it. Now
the project builds fine. Thanks a lot for the fix!
Mike Frysinger
2014-01-18 07:41:44 UTC
Permalink
Post by Daniel Burr
Post by Anatol Pomozov
I am trying to compile urjtag on HEAD and it seems broken because
Linux Arch that I use has newer version of bison.
Newer versions of bison need lex-param to be specified. The attached
patch should do the trick, although I have only tested it to verify that
it correctly compiles with bison 3.0.2.
thanks, i've applied this. i made another tweak to fix a build time warning
with bison-3. this means the tree no longer builds with bison-1.875d, but
considering bison-2 was released in 2005, people can suck it up and upgrade
their systems already ;).
-mike

Loading...