Message ID | 1326134295-15547-2-git-send-email-swarren@nvidia.com (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
On Mon, Jan 09, 2012 at 11:38:15AM -0700, Stephen Warren wrote: > This hooks dtc into Kbuild's dependency system. > > Thus, for example, "make dtbs" will rebuild tegra-harmony.dtb if only > tegra20.dtsi has changed yet tegra-harmony.dts has not. The previous > lack of this feature recently caused me to have very confusing "git > bisect" results. > > For ARM, it's obvious what to add to $(targets). I'm not familiar enough > with other architectures to know what to add there. Powerpc appears to > already add various .dtb files into $(targets), but the other archs may > need something added to $(targets) to work. > > Signed-off-by: Stephen Warren <swarren@nvidia.com> Though I did not look into the patches deeply, I know the problem very well and it annoys me a lot. It's great that we have patches to fix it, so Acked-by: Shawn Guo <shawn.guo@linaro.org>
On Mon, 2012-01-09 at 11:38 -0700, Stephen Warren wrote: > This hooks dtc into Kbuild's dependency system. > > Thus, for example, "make dtbs" will rebuild tegra-harmony.dtb if only > tegra20.dtsi has changed yet tegra-harmony.dts has not. The previous > lack of this feature recently caused me to have very confusing "git > bisect" results. > > For ARM, it's obvious what to add to $(targets). I'm not familiar enough > with other architectures to know what to add there. Powerpc appears to > already add various .dtb files into $(targets), but the other archs may > need something added to $(targets) to work. > > Signed-off-by: Stephen Warren <swarren@nvidia.com> > Acked-by: Mark Salter <msalter@redhat.com> For the arch/c6x bit.
On 11.1.2012 20:36, Mark Salter wrote: > On Mon, 2012-01-09 at 11:38 -0700, Stephen Warren wrote: >> This hooks dtc into Kbuild's dependency system. >> >> Thus, for example, "make dtbs" will rebuild tegra-harmony.dtb if only >> tegra20.dtsi has changed yet tegra-harmony.dts has not. The previous >> lack of this feature recently caused me to have very confusing "git >> bisect" results. >> >> For ARM, it's obvious what to add to $(targets). I'm not familiar enough >> with other architectures to know what to add there. Powerpc appears to >> already add various .dtb files into $(targets), but the other archs may >> need something added to $(targets) to work. >> >> Signed-off-by: Stephen Warren <swarren@nvidia.com> >> > > Acked-by: Mark Salter <msalter@redhat.com> > > For the arch/c6x bit. As the C6X port has been merged in this merge window, I can't easily apply this patch to my kbuild branch and at the same time please Linus by basing the pull request on a tagged release. So I'm going to drop the arch/c6x part to keep the kbuild branch "pretty" and let either Mark or Stephen send the patch to Linus directly, once he has merged the kbuild branch. Would that work? Thanks, Michal
Michal Marek wrote at Saturday, January 14, 2012 3:51 PM: > On 11.1.2012 20:36, Mark Salter wrote: > > On Mon, 2012-01-09 at 11:38 -0700, Stephen Warren wrote: > >> This hooks dtc into Kbuild's dependency system. > >> > >> Thus, for example, "make dtbs" will rebuild tegra-harmony.dtb if only > >> tegra20.dtsi has changed yet tegra-harmony.dts has not. The previous > >> lack of this feature recently caused me to have very confusing "git > >> bisect" results. > >> > >> For ARM, it's obvious what to add to $(targets). I'm not familiar enough > >> with other architectures to know what to add there. Powerpc appears to > >> already add various .dtb files into $(targets), but the other archs may > >> need something added to $(targets) to work. > >> > >> Signed-off-by: Stephen Warren <swarren@nvidia.com> > >> > > > > Acked-by: Mark Salter <msalter@redhat.com> > > > > For the arch/c6x bit. > > As the C6X port has been merged in this merge window, I can't easily > apply this patch to my kbuild branch and at the same time please Linus > by basing the pull request on a tagged release. So I'm going to drop the > arch/c6x part to keep the kbuild branch "pretty" and let either Mark or > Stephen send the patch to Linus directly, once he has merged the kbuild > branch. Would that work? I was assuming my patches were for 3.4 rather than 3.3, since it's pretty late for new features in 3.3. In that case, there wouldn't be an issue, right? If you do want to go ahead and push my patches into 3.3, your proposal looks fine to me. Mark, do you want me to push the patch to Linus, or do you want to pick it up? Thanks.
On Tue, 2012-01-17 at 09:20 -0800, Stephen Warren wrote: > Michal Marek wrote at Saturday, January 14, 2012 3:51 PM: > > On 11.1.2012 20:36, Mark Salter wrote: > > > On Mon, 2012-01-09 at 11:38 -0700, Stephen Warren wrote: > > >> This hooks dtc into Kbuild's dependency system. > > >> > > >> Thus, for example, "make dtbs" will rebuild tegra-harmony.dtb if only > > >> tegra20.dtsi has changed yet tegra-harmony.dts has not. The previous > > >> lack of this feature recently caused me to have very confusing "git > > >> bisect" results. > > >> > > >> For ARM, it's obvious what to add to $(targets). I'm not familiar enough > > >> with other architectures to know what to add there. Powerpc appears to > > >> already add various .dtb files into $(targets), but the other archs may > > >> need something added to $(targets) to work. > > >> > > >> Signed-off-by: Stephen Warren <swarren@nvidia.com> > > >> > > > > > > Acked-by: Mark Salter <msalter@redhat.com> > > > > > > For the arch/c6x bit. > > > > As the C6X port has been merged in this merge window, I can't easily > > apply this patch to my kbuild branch and at the same time please Linus > > by basing the pull request on a tagged release. So I'm going to drop the > > arch/c6x part to keep the kbuild branch "pretty" and let either Mark or > > Stephen send the patch to Linus directly, once he has merged the kbuild > > branch. Would that work? > > I was assuming my patches were for 3.4 rather than 3.3, since it's pretty > late for new features in 3.3. In that case, there wouldn't be an issue, > right? > > If you do want to go ahead and push my patches into 3.3, your proposal > looks fine to me. Mark, do you want me to push the patch to Linus, or > do you want to pick it up? It would probably be best to keep it all together, but if there's a need to break out c6x individually, I don't mind picking it up. --Mark
On 17.1.2012 18:20, Stephen Warren wrote: > Michal Marek wrote at Saturday, January 14, 2012 3:51 PM: >> As the C6X port has been merged in this merge window, I can't easily >> apply this patch to my kbuild branch and at the same time please Linus >> by basing the pull request on a tagged release. So I'm going to drop the >> arch/c6x part to keep the kbuild branch "pretty" and let either Mark or >> Stephen send the patch to Linus directly, once he has merged the kbuild >> branch. Would that work? > > I was assuming my patches were for 3.4 rather than 3.3, since it's pretty > late for new features in 3.3. In that case, there wouldn't be an issue, > right? OK, that was a misunderstanding then. I applied it to the kbuild branch for 3.3 and Linus pulled it in the meantime. It's not a terribly intrusive change, after all. Michal
diff --git a/arch/arm/boot/Makefile b/arch/arm/boot/Makefile index 1338cf0..c72730d 100644 --- a/arch/arm/boot/Makefile +++ b/arch/arm/boot/Makefile @@ -62,9 +62,11 @@ $(obj)/zImage-dtb.%: $(obj)/%.dtb $(obj)/zImage endif +targets += $(dtb-y) + # Rule to build device tree blobs -$(obj)/%.dtb: $(src)/dts/%.dts - $(call cmd,dtc) +$(obj)/%.dtb: $(src)/dts/%.dts FORCE + $(call if_changed_dep,dtc) $(obj)/dtbs: $(addprefix $(obj)/, $(dtb-y)) diff --git a/arch/c6x/boot/Makefile b/arch/c6x/boot/Makefile index ecca820..6891257 100644 --- a/arch/c6x/boot/Makefile +++ b/arch/c6x/boot/Makefile @@ -13,7 +13,7 @@ obj-y += linked_dtb.o endif $(obj)/%.dtb: $(src)/dts/%.dts FORCE - $(call cmd,dtc) + $(call if_changed_dep,dtc) quiet_cmd_cp = CP $< $@$2 cmd_cp = cat $< >$@$2 || (rm -f $@ && echo false) diff --git a/arch/microblaze/boot/Makefile b/arch/microblaze/boot/Makefile index 4c4e58e..0c796cf 100644 --- a/arch/microblaze/boot/Makefile +++ b/arch/microblaze/boot/Makefile @@ -53,6 +53,6 @@ $(obj)/simpleImage.%: vmlinux FORCE DTC_FLAGS := -p 1024 $(obj)/%.dtb: $(src)/dts/%.dts FORCE - $(call cmd,dtc) + $(call if_changed_dep,dtc) clean-files += *.dtb simpleImage.*.unstrip linux.bin.ub diff --git a/arch/openrisc/boot/Makefile b/arch/openrisc/boot/Makefile index 98ca185..0995835 100644 --- a/arch/openrisc/boot/Makefile +++ b/arch/openrisc/boot/Makefile @@ -11,5 +11,5 @@ clean-files := *.dtb.S #DTC_FLAGS ?= -p 1024 -$(obj)/%.dtb: $(src)/dts/%.dts - $(call cmd,dtc) +$(obj)/%.dtb: $(src)/dts/%.dts FORCE + $(call if_changed_dep,dtc) diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile index 15986e7..8844a17 100644 --- a/arch/powerpc/boot/Makefile +++ b/arch/powerpc/boot/Makefile @@ -345,8 +345,8 @@ $(obj)/treeImage.%: vmlinux $(obj)/%.dtb $(wrapperbits) $(call if_changed,wrap,treeboot-$*,,$(obj)/$*.dtb) # Rule to build device tree blobs -$(obj)/%.dtb: $(src)/dts/%.dts - $(call cmd,dtc) +$(obj)/%.dtb: $(src)/dts/%.dts FORCE + $(call if_changed_dep,dtc) # If there isn't a platform selected then just strip the vmlinux. ifeq (,$(image-y)) diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib index 5d986d9..7bae316 100644 --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib @@ -264,7 +264,7 @@ $(obj)/%.dtb.S: $(obj)/%.dtb $(call cmd,dt_S_dtb) quiet_cmd_dtc = DTC $@ -cmd_dtc = $(objtree)/scripts/dtc/dtc -O dtb -o $@ -b 0 $(DTC_FLAGS) $< +cmd_dtc = $(objtree)/scripts/dtc/dtc -O dtb -o $@ -b 0 $(DTC_FLAGS) -d $(depfile) $< # Bzip2 # ---------------------------------------------------------------------------
This hooks dtc into Kbuild's dependency system. Thus, for example, "make dtbs" will rebuild tegra-harmony.dtb if only tegra20.dtsi has changed yet tegra-harmony.dts has not. The previous lack of this feature recently caused me to have very confusing "git bisect" results. For ARM, it's obvious what to add to $(targets). I'm not familiar enough with other architectures to know what to add there. Powerpc appears to already add various .dtb files into $(targets), but the other archs may need something added to $(targets) to work. Signed-off-by: Stephen Warren <swarren@nvidia.com> --- I have only tested this series for ARM. arch/arm/boot/Makefile | 6 ++++-- arch/c6x/boot/Makefile | 2 +- arch/microblaze/boot/Makefile | 2 +- arch/openrisc/boot/Makefile | 4 ++-- arch/powerpc/boot/Makefile | 4 ++-- scripts/Makefile.lib | 2 +- 6 files changed, 11 insertions(+), 9 deletions(-)