Re: [PATCH V4 REPOST 2/2] kbuild: run the pre-processor on *.dts files

2012-10-27 Thread Stephen Warren
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

2012-10-27 Thread Mark Brown
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

2012-10-27 Thread Mark Brown
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

2012-10-27 Thread Stephen Warren
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

2012-10-26 Thread Rob Herring
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

2012-10-26 Thread Stephen Warren
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

2012-10-26 Thread Stephen Warren
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

2012-10-26 Thread Rob Herring
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/