[PATCH] devicetree: Move include prefixes from arch to separate directory
From: robh+dt@kernel.org (Rob Herring)
Date: 2017-05-15 14:48:05
Also in:
linux-arch, linux-devicetree, lkml
On Mon, May 15, 2017 at 9:26 AM, Russell King - ARM Linux [off-list ref] wrote:
On Mon, May 15, 2017 at 08:01:07AM -0500, Rob Herring wrote:quoted
I'd prefer not to mix things in scripts/dtc that aren't the import of dtc (yes, we do have a few other things already, but they are at least scripts). Couldn't this go in include/dt-bindings/ instead?I don't think that works. The include path used is "include", which means that we force people to use: #include <dt-bindings/foo.dtsi>
No, I was thinking you'd add include/dt-bindings/include-prefix/ to the include path instead of scripts/dtc/include-prefix/. The only downside I can see is people could mistakenly do: #include <dt-bindings/include-prefix/$arch/foo.dtsi>
in their DT files. This means that we'd need to populate $topdir/include with per-architecture symlinks on top of the 26 or so directories already there, so that: #include <arch/foo.dtsi> would work. That's quite horrible, since $topdir/include is the main include path for C headers. I guess we could have symlinks inside include/dt-bindings, but that makes the includes: #include <dt-bindings/arch/foo.dtsi> but that's rather absurd because these _aren't_ dt-binding definitions.
True, but the same can be said that "scripts/dtc" is not includes nor kernel build infrastructure.
Maybe what we should do is:
mkdir include/dt
git mv include/dt-bindings include/dt
for arch in arch/*; do
dts=$arch/boot/dts
if [ -d $dts ]; then
a=include/dt/$(basename $arch)
ln -s $dts $a
git add $a
fi
done
... fixup scripts/Makefile.lib ...
git commitThat would just break every existing include in dts files. Another idea. Could kbuild create all the symlinks at build time instead? Rob