Re: [PATCH V4 REPOST 2/2] kbuild: run the pre-processor on *.dts files
On 10/27/2012 07:06 PM, Rob Herring wrote: > Mark Brown wrote: > > On Fri, Oct 26, 2012 at 02:57:50PM -0500, Rob Herring wrote: > > Like I said previously, I think we first need guidelines on what > is and > isn't acceptable use of C preprocessor in dts files. > > > Didn't we already say that it was just the same rules as for things tht > get included in .S files? Besides for plain .dts files (as opposed to > .dtsi files) it seems like if people break things they get to keep all > the pieces without disrupting other people too much. > > > Yes, but can we document that. Also, I'd like others with more DT > historical knowledge to weigh in. OK. What's the appropriate file to document that in? I assume you're not just looking for an explanation in the commit description? -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH V4 REPOST 2/2] kbuild: run the pre-processor on *.dts files
On Fri, Oct 26, 2012 at 02:57:50PM -0500, Rob Herring wrote: > Like I said previously, I think we first need guidelines on what is and > isn't acceptable use of C preprocessor in dts files. Didn't we already say that it was just the same rules as for things tht get included in .S files? Besides for plain .dts files (as opposed to .dtsi files) it seems like if people break things they get to keep all the pieces without disrupting other people too much. signature.asc Description: Digital signature
Re: [PATCH V4 REPOST 2/2] kbuild: run the pre-processor on *.dts files
On Fri, Oct 26, 2012 at 02:57:50PM -0500, Rob Herring wrote: Like I said previously, I think we first need guidelines on what is and isn't acceptable use of C preprocessor in dts files. Didn't we already say that it was just the same rules as for things tht get included in .S files? Besides for plain .dts files (as opposed to .dtsi files) it seems like if people break things they get to keep all the pieces without disrupting other people too much. signature.asc Description: Digital signature
Re: [PATCH V4 REPOST 2/2] kbuild: run the pre-processor on *.dts files
On 10/27/2012 07:06 PM, Rob Herring wrote: Mark Brown broo...@opensource.wolfsonmicro.com wrote: On Fri, Oct 26, 2012 at 02:57:50PM -0500, Rob Herring wrote: Like I said previously, I think we first need guidelines on what is and isn't acceptable use of C preprocessor in dts files. Didn't we already say that it was just the same rules as for things tht get included in .S files? Besides for plain .dts files (as opposed to .dtsi files) it seems like if people break things they get to keep all the pieces without disrupting other people too much. Yes, but can we document that. Also, I'd like others with more DT historical knowledge to weigh in. OK. What's the appropriate file to document that in? I assume you're not just looking for an explanation in the commit description? -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH V4 REPOST 2/2] kbuild: run the pre-processor on *.dts files
On 10/26/2012 02:29 PM, Stephen Warren wrote: > From: Stephen Warren > > Modify cmd_dtc to run the C pre-processor on the input .dts file before > passing it to dtc for final compilation. This allows the use of #define > and #include within the .dts file. While this change is small the implications are not. I don't think no comments reflects agreement on this. Like I said previously, I think we first need guidelines on what is and isn't acceptable use of C preprocessor in dts files. Rob > > Signed-off-by: Stephen Warren > --- > v4: > * Use -x assembler-with-cpp so pre-defined macros are set up so that > #included header files know to only use cpp syntax, not C syntax. > * Define __DTS__ for similar reasons. > * use $(CPP) not $(CC) -E, and use $(cpp_flags). > * Save the pre-processed results so they can be easily inspected when > debugging build issues. > * The use of -x assembler-with-cpp causes cpp to recognize directives in > column 1 only. Hence, there's no need to escape property names that > begin with #. Hence, there's no need for separate skeleton.dtsi and > skeleton.dtsip. Maintain a separate file extension and build rule so that > CPP-usage is opt-in. In particular, when using CPP, #include must be used > rather than /include/ so that dependencies work. > v3: Pass "-x c" not "-xc" to cpp. > v2: Place make %.dtb: %.dtsp rule into Makefile.lib. > --- > scripts/Makefile.lib |9 + > 1 files changed, 9 insertions(+), 0 deletions(-) > > diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib > index 425578e..33432f4 100644 > --- a/scripts/Makefile.lib > +++ b/scripts/Makefile.lib > @@ -269,6 +269,15 @@ cmd_dtc = $(objtree)/scripts/dtc/dtc -O dtb -o $@ -b 0 > $(DTC_FLAGS) -d $(depfile > $(obj)/%.dtb: $(src)/dts/%.dts FORCE > $(call if_changed_dep,dtc) > > +dtc-tmp = $(subst $(comma),_,$(dot-target).dts) > + > +quiet_cmd_dtc_cpp = DTC+CPP $@ > +cmd_dtc_cpp = $(CPP) $(cpp_flags) -D__DTS__ -x assembler-with-cpp -o > $(dtc-tmp) $< ; \ > + $(objtree)/scripts/dtc/dtc -O dtb -o $@ -b 0 $(DTC_FLAGS) $(dtc-tmp) > + > +$(obj)/%.dtb: $(src)/dts/%.dtsp FORCE > + $(call if_changed_dep,dtc_cpp) > + > # Bzip2 > # --- > > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH V4 REPOST 2/2] kbuild: run the pre-processor on *.dts files
From: Stephen Warren Modify cmd_dtc to run the C pre-processor on the input .dts file before passing it to dtc for final compilation. This allows the use of #define and #include within the .dts file. Signed-off-by: Stephen Warren --- v4: * Use -x assembler-with-cpp so pre-defined macros are set up so that #included header files know to only use cpp syntax, not C syntax. * Define __DTS__ for similar reasons. * use $(CPP) not $(CC) -E, and use $(cpp_flags). * Save the pre-processed results so they can be easily inspected when debugging build issues. * The use of -x assembler-with-cpp causes cpp to recognize directives in column 1 only. Hence, there's no need to escape property names that begin with #. Hence, there's no need for separate skeleton.dtsi and skeleton.dtsip. Maintain a separate file extension and build rule so that CPP-usage is opt-in. In particular, when using CPP, #include must be used rather than /include/ so that dependencies work. v3: Pass "-x c" not "-xc" to cpp. v2: Place make %.dtb: %.dtsp rule into Makefile.lib. --- scripts/Makefile.lib |9 + 1 files changed, 9 insertions(+), 0 deletions(-) diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib index 425578e..33432f4 100644 --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib @@ -269,6 +269,15 @@ cmd_dtc = $(objtree)/scripts/dtc/dtc -O dtb -o $@ -b 0 $(DTC_FLAGS) -d $(depfile $(obj)/%.dtb: $(src)/dts/%.dts FORCE $(call if_changed_dep,dtc) +dtc-tmp = $(subst $(comma),_,$(dot-target).dts) + +quiet_cmd_dtc_cpp = DTC+CPP $@ +cmd_dtc_cpp = $(CPP) $(cpp_flags) -D__DTS__ -x assembler-with-cpp -o $(dtc-tmp) $< ; \ + $(objtree)/scripts/dtc/dtc -O dtb -o $@ -b 0 $(DTC_FLAGS) $(dtc-tmp) + +$(obj)/%.dtb: $(src)/dts/%.dtsp FORCE + $(call if_changed_dep,dtc_cpp) + # Bzip2 # --- -- 1.7.0.4 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH V4 REPOST 2/2] kbuild: run the pre-processor on *.dts files
From: Stephen Warren swar...@nvidia.com Modify cmd_dtc to run the C pre-processor on the input .dts file before passing it to dtc for final compilation. This allows the use of #define and #include within the .dts file. Signed-off-by: Stephen Warren swar...@nvidia.com --- v4: * Use -x assembler-with-cpp so pre-defined macros are set up so that #included header files know to only use cpp syntax, not C syntax. * Define __DTS__ for similar reasons. * use $(CPP) not $(CC) -E, and use $(cpp_flags). * Save the pre-processed results so they can be easily inspected when debugging build issues. * The use of -x assembler-with-cpp causes cpp to recognize directives in column 1 only. Hence, there's no need to escape property names that begin with #. Hence, there's no need for separate skeleton.dtsi and skeleton.dtsip. Maintain a separate file extension and build rule so that CPP-usage is opt-in. In particular, when using CPP, #include must be used rather than /include/ so that dependencies work. v3: Pass -x c not -xc to cpp. v2: Place make %.dtb: %.dtsp rule into Makefile.lib. --- scripts/Makefile.lib |9 + 1 files changed, 9 insertions(+), 0 deletions(-) diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib index 425578e..33432f4 100644 --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib @@ -269,6 +269,15 @@ cmd_dtc = $(objtree)/scripts/dtc/dtc -O dtb -o $@ -b 0 $(DTC_FLAGS) -d $(depfile $(obj)/%.dtb: $(src)/dts/%.dts FORCE $(call if_changed_dep,dtc) +dtc-tmp = $(subst $(comma),_,$(dot-target).dts) + +quiet_cmd_dtc_cpp = DTC+CPP $@ +cmd_dtc_cpp = $(CPP) $(cpp_flags) -D__DTS__ -x assembler-with-cpp -o $(dtc-tmp) $ ; \ + $(objtree)/scripts/dtc/dtc -O dtb -o $@ -b 0 $(DTC_FLAGS) $(dtc-tmp) + +$(obj)/%.dtb: $(src)/dts/%.dtsp FORCE + $(call if_changed_dep,dtc_cpp) + # Bzip2 # --- -- 1.7.0.4 -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH V4 REPOST 2/2] kbuild: run the pre-processor on *.dts files
On 10/26/2012 02:29 PM, Stephen Warren wrote: From: Stephen Warren swar...@nvidia.com Modify cmd_dtc to run the C pre-processor on the input .dts file before passing it to dtc for final compilation. This allows the use of #define and #include within the .dts file. While this change is small the implications are not. I don't think no comments reflects agreement on this. Like I said previously, I think we first need guidelines on what is and isn't acceptable use of C preprocessor in dts files. Rob Signed-off-by: Stephen Warren swar...@nvidia.com --- v4: * Use -x assembler-with-cpp so pre-defined macros are set up so that #included header files know to only use cpp syntax, not C syntax. * Define __DTS__ for similar reasons. * use $(CPP) not $(CC) -E, and use $(cpp_flags). * Save the pre-processed results so they can be easily inspected when debugging build issues. * The use of -x assembler-with-cpp causes cpp to recognize directives in column 1 only. Hence, there's no need to escape property names that begin with #. Hence, there's no need for separate skeleton.dtsi and skeleton.dtsip. Maintain a separate file extension and build rule so that CPP-usage is opt-in. In particular, when using CPP, #include must be used rather than /include/ so that dependencies work. v3: Pass -x c not -xc to cpp. v2: Place make %.dtb: %.dtsp rule into Makefile.lib. --- scripts/Makefile.lib |9 + 1 files changed, 9 insertions(+), 0 deletions(-) diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib index 425578e..33432f4 100644 --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib @@ -269,6 +269,15 @@ cmd_dtc = $(objtree)/scripts/dtc/dtc -O dtb -o $@ -b 0 $(DTC_FLAGS) -d $(depfile $(obj)/%.dtb: $(src)/dts/%.dts FORCE $(call if_changed_dep,dtc) +dtc-tmp = $(subst $(comma),_,$(dot-target).dts) + +quiet_cmd_dtc_cpp = DTC+CPP $@ +cmd_dtc_cpp = $(CPP) $(cpp_flags) -D__DTS__ -x assembler-with-cpp -o $(dtc-tmp) $ ; \ + $(objtree)/scripts/dtc/dtc -O dtb -o $@ -b 0 $(DTC_FLAGS) $(dtc-tmp) + +$(obj)/%.dtb: $(src)/dts/%.dtsp FORCE + $(call if_changed_dep,dtc_cpp) + # Bzip2 # --- -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/