我正在尝试为我正在做的一些研究项目编译项目KernelGen(http://hpcforge.org/plugins/mediawiki/wiki/kernelgen/index.php/Compiling),构建脚本使用rpmbuild,看起来它依赖于binutils中的gold。尝试使用以下错误编译黄金时,构建仍然失败:
/bin/sh ./../ylwrap yyscript.y y.tab.c yyscript.c y.tab.h yyscript.h y.output yyscript.output -- byacc -d
byacc: e - line 42 of "/home/xxx/rpmbuild/BUILD/binutils-2.23.2/gold/yyscript.y", syntax error
%pure-parser
^
文件yyscript.c如下所示:
/* We need to use a pure parser because we might be multi-threaded.
We pass some arguments through the parser to the lexer. */
%pure-parser
%parse-param {void* closure}
%lex-param {void* closure}
/* Since we require bison anyhow, we take advantage of it. */
%error-verbose
/* The values associated with tokens. */
看起来它是某种无法解析的语法文件。事情是这个文件来自binutils包本身,我找不到它无法解析的原因。
有什么想法吗?
答案 0 :(得分:1)
你的byacc版本没有正确支持%pure-parser,我相信它最初是一个野牛扩展。改用bison。