Quoting Masahiro Yamada (2024-09-22 01:14:12) > > Rather, I'd modify my patch as follows: > > --- a/scripts/Makefile.dtbs > +++ b/scripts/Makefile.dtbs > @@ -34,12 +34,14 @@ $(obj)/dtbs-list: $(dtb-y) FORCE > # Assembly file to wrap dtb(o) > # --------------------------------------------------------------------------- > > +builtin-dtb-section = $(if $(filter arch/%, $(obj)),.dtb.init.rodata,.rodata) I think we want to free the empty root dtb that's always builtin. That is in drivers/of/ right? And I worry that an overlay could be in arch/ and then this breaks again. That's why it feels more correct to treat dtbo.o vs. dtb.o differently. Perhaps we can check $(obj) for dtbo vs dtb? Also, modpost code looks for .init* named sections and treats them as initdata already. Can we rename .dtb.init.rodata to .init.dtb.rodata so that modpost can find that?