On Wed, Mar 27, 2019 at 11:53:52AM +0800, Chen-Yu Tsai wrote: > Commit 4038fd90056e ("dtc: add ability to make nodes conditional on them > being referenced") added the new /omit-if-no-ref/ directive to mark > nodes as eligible to be discarded if not referenced. The mechanism to > process this happens before the symbol generation phase. This means even > if symbol generation is requested and the node has a label, it will be > discarded if there are no references to it within the same file. > > This is probably not what people expect. When using symbol generation to > compile base device trees for applying overlays, nodes with labels could > be referenced by the overlays, and therefore should be preserved. > > Check if the node has a label and symbol generation was requested before > dropping the node. > > Signed-off-by: Chen-Yu Tsai <wens@xxxxxxxx> > --- > > Resending this patch as David requested. Previous discussion can be > found here: > > https://www.spinics.net/lists/devicetree-compiler/msg02616.html Applied, thanks. A testcase for this edge case would be a nice followup. > > --- > checks.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/checks.c b/checks.c > index 586523464bd0..0524d41e5d2e 100644 > --- a/checks.c > +++ b/checks.c > @@ -660,6 +660,8 @@ ERROR(path_references, fixup_path_references, NULL, &duplicate_node_names); > static void fixup_omit_unused_nodes(struct check *c, struct dt_info *dti, > struct node *node) > { > + if (generate_symbols && node->labels) > + return; > if (node->omit_if_unused && !node->is_referenced) > delete_node(node); > } -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson
Attachment:
signature.asc
Description: PGP signature