The tc command was failing to build due to flex errors. These errors are caused by an incompatible change to flex in recent versions, including the version shipped with OE. This fix is as per the one used by opensure: http://lists.opensuse.org/opensuse-commit/2006-04/msg00090.html and simple renames str to prevent it conflicting. --- iproute2-2.6.16-060323/tc/emp_ematch.l 2006/10/30 22:46:29 1.1 +++ iproute2-2.6.16-060323/tc/emp_ematch.l 2006/10/30 22:47:26 @@ -63,7 +63,7 @@ %} -%x str +%x STR %option 8bit stack warn noyywrap prefix="ematch_" %% @@ -78,17 +78,17 @@ } strbuf_index = 0; - BEGIN(str); + BEGIN(STR); } -\" { +\" { BEGIN(INITIAL); yylval.b = bstr_new(strbuf, strbuf_index); yylval.b->quoted = 1; return ATTRIBUTE; } -\\[0-7]{1,3} { /* octal escape sequence */ +\\[0-7]{1,3} { /* octal escape sequence */ int res; sscanf(yytext + 1, "%o", &res); @@ -100,12 +100,12 @@ strbuf_append_char((unsigned char) res); } -\\[0-9]+ { /* catch wrong octal escape seq. */ +\\[0-9]+ { /* catch wrong octal escape seq. */ fprintf(stderr, "error: invalid octale escape sequence\n"); return ERROR; } -\\x[0-9a-fA-F]{1,2} { +\\x[0-9a-fA-F]{1,2} { int res; sscanf(yytext + 2, "%x", &res); @@ -118,16 +118,16 @@ strbuf_append_char((unsigned char) res); } -\\n strbuf_append_char('\n'); -\\r strbuf_append_char('\r'); -\\t strbuf_append_char('\t'); -\\v strbuf_append_char('\v'); -\\b strbuf_append_char('\b'); -\\f strbuf_append_char('\f'); -\\a strbuf_append_char('\a'); +\\n strbuf_append_char('\n'); +\\r strbuf_append_char('\r'); +\\t strbuf_append_char('\t'); +\\v strbuf_append_char('\v'); +\\b strbuf_append_char('\b'); +\\f strbuf_append_char('\f'); +\\a strbuf_append_char('\a'); -\\(.|\n) strbuf_append_char(yytext[1]); -[^\\\n\"]+ strbuf_append_charp(yytext); +\\(.|\n) strbuf_append_char(yytext[1]); +[^\\\n\"]+ strbuf_append_charp(yytext); [aA][nN][dD] return AND; [oO][rR] return OR;