On Tue, 9 Jan 2018, Frank Rowand wrote: > On 01/08/18 05:36, Julia Lawall wrote: > > Builds on a patch proposed by Frank Rowand: > > > > https://www.mail-archive.com/devicetree-compiler@xxxxxxxxxxxxxxx/msg00372.html > > > > Added NULL position argument in a few new places in dtc-parser.tab.c (1) > > and livetree.c (3). > > > > For both '/' nodedef productions, include the '/' in the position. > > > > Signed-off-by: Julia Lawall <Julia.Lawall@xxxxxxx> > > --- > > dtc-parser.y | 23 +++++++++++++---------- > > dtc.c | 10 ++++++++++ > > dtc.h | 14 ++++++++++---- > > flattree.c | 2 +- > > fstree.c | 8 +++++--- > > livetree.c | 43 ++++++++++++++++++++++++++++++------------- > > srcpos.c | 35 +++++++++++++++++++++++++++++++++++ > > srcpos.h | 3 +++ > > treesource.c | 38 +++++++++++++++++++++++++++++++++----- > > 9 files changed, 140 insertions(+), 36 deletions(-) > > > > diff --git a/dtc-parser.y b/dtc-parser.y > > index 44af170..d668349 100644 > > --- a/dtc-parser.y > > +++ b/dtc-parser.y > > @@ -160,11 +160,11 @@ memreserve: > > devicetree: > > '/' nodedef > > { > > - $$ = name_node($2, ""); > > + $$ = name_node($2, "", &@$); > > } > > | devicetree '/' nodedef > > { > > - $$ = merge_nodes($1, $3); > > + $$ = merge_nodes($1, $3, srcpos_combine(&@2, &@3)); > > } > > | DT_REF nodedef > > { > > @@ -175,7 +175,10 @@ devicetree: > > */ > > if (!($<flags>-1 & DTSF_PLUGIN)) > > ERROR(&@2, "Label or path %s not found", $1); > > - $$ = add_orphan_node(name_node(build_node(NULL, NULL), ""), $2, $1); > > + $$ = add_orphan_node( > > + name_node(build_node(NULL, NULL), "", > > + NULL), > > + $2, $1, &@2); > > } > > | devicetree DT_LABEL DT_REF nodedef > > { > > @@ -183,7 +186,7 @@ devicetree: > > > > if (target) { > > add_label(&target->labels, $2); > > - merge_nodes(target, $4); > > + merge_nodes(target, $4, &@4); > > } else > > ERROR(&@3, "Label or path %s not found", $3); > > $$ = $1; > > @@ -193,7 +196,7 @@ devicetree: > > struct node *target = get_node_by_ref($1, $2); > > > > if (target) { > > - merge_nodes(target, $3); > > + merge_nodes(target, $3, &@3); > > } else { > > /* > > * We rely on the rule being always: > > @@ -201,7 +204,7 @@ devicetree: > > * so $-1 is what we want (plugindecl) > > */ > > if ($<flags>-1 & DTSF_PLUGIN) > > - add_orphan_node($1, $3, $2); > > + add_orphan_node($1, $3, $2, &@3); > > else > > ERROR(&@2, "Label or path %s not found", $2); > > } > > @@ -242,11 +245,11 @@ proplist: > > propdef: > > DT_PROPNODENAME '=' propdata ';' > > { > > - $$ = build_property($1, $3); > > + $$ = build_property($1, $3, &@$); > > } > > | DT_PROPNODENAME ';' > > { > > - $$ = build_property($1, empty_data); > > + $$ = build_property($1, empty_data, &@$); > > } > > | DT_DEL_PROP DT_PROPNODENAME ';' > > { > > @@ -517,11 +520,11 @@ subnodes: > > subnode: > > DT_PROPNODENAME nodedef > > { > > - $$ = name_node($2, $1); > > + $$ = name_node($2, $1, &@$); > > } > > | DT_DEL_NODE DT_PROPNODENAME ';' > > { > > - $$ = name_node(build_node_delete(), $2); > > + $$ = name_node(build_node_delete(), $2, &@$); > > } > > | DT_LABEL subnode > > { > > diff --git a/dtc.c b/dtc.c > > index c36994e..371d04c 100644 > > --- a/dtc.c > > +++ b/dtc.c > > @@ -35,6 +35,7 @@ int phandle_format = PHANDLE_EPAPR; /* Use linux,phandle or phandle properties * > > int generate_symbols; /* enable symbols & fixup support */ > > int generate_fixups; /* suppress generation of fixups on symbol support */ > > int auto_label_aliases; /* auto generate labels -> aliases */ > > +bool annotate = false; /* annotate .dts with input source location */ > > > > static int is_power_of_2(int x) > > { > > @@ -83,6 +84,7 @@ static struct option const usage_long_opts[] = { > > {"auto-alias", no_argument, NULL, 'A'}, > > {"help", no_argument, NULL, 'h'}, > > {"version", no_argument, NULL, 'v'}, > > + {"annotate", no_argument, NULL, 'T'}, > > The "annotate" entry should be just before the "help" entry. Yes, thanks. julia -- To unsubscribe from this list: send the line "unsubscribe devicetree-compiler" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html