mirror of
https://github.com/dgibson/dtc.git
synced 2025-10-13 16:27:39 -04:00
Merge nodes with local target label references
This change makes sure that nodes with target label references doesn't create additional fragments if the label can been resolved locally. Target path references are not resolved locally and will generate a fragment. Previously the dts below would generate two fragments: /dts-v1/; /plugin/; &x { a: a@0 {};}; &a { b {}; }; This commit essentially reverts part of the commit "Correct overlay syntactic sugar for generating target-path fragments". The main reason we want to do this is that it breaks consumers of dtbo:s that can't resolve references between fragments in the same dtbo (like the linux 4.1 kernel). In addition creating a fragment for each label reference substantially increases the size of the resulting dtbo for some use cases. Signed-off-by: Fredrik Markstrom <fredrik.markstrom@gmail.com> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
1e4a0928f3
commit
0fcffda15e
2 changed files with 33 additions and 10 deletions
|
@ -213,14 +213,14 @@ static void PRINTF(1, 2) lexical_error(const char *fmt, ...);
|
|||
<*>\&{LABEL} { /* label reference */
|
||||
DPRINT("Ref: %s\n", yytext+1);
|
||||
yylval.labelref = xstrdup(yytext+1);
|
||||
return DT_REF;
|
||||
return DT_LABEL_REF;
|
||||
}
|
||||
|
||||
<*>"&{/"{PATHCHAR}*\} { /* new-style path reference */
|
||||
yytext[yyleng-1] = '\0';
|
||||
DPRINT("Ref: %s\n", yytext+2);
|
||||
yylval.labelref = xstrdup(yytext+2);
|
||||
return DT_REF;
|
||||
return DT_PATH_REF;
|
||||
}
|
||||
|
||||
<BYTESTRING>[0-9a-fA-F]{2} {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue