
On 12/28/2012 11:07 AM, Simon Glass wrote:
Hi,
On Fri, Dec 28, 2012 at 8:42 AM, Mike Frysinger vapier@gentoo.org wrote:
On Friday 28 December 2012 09:55:52 Simon Glass wrote:
On Thu, Dec 27, 2012 at 4:03 PM, Stephen Warren wrote:
On 12/26/2012 03:28 PM, Simon Glass wrote:
Include file support in dtc is still not available in common distributions so we need to keep our preprocessing arrangement around for a little longer.
But # is commonly used in FDT files, so use sed instead of cpp for this preprocessing.
This sounds like the wrong approach to me. I'd suggest using what I
proposed for the kernel:
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)
The "-x assembler-with-cpp" is what solves the # problem IIRC.
I originally used CPP as an expedient means of converting the ARCH_CPU_DTS symbol until we all have a dtc with include path support.
Are you saying that we want to actually use the CPP on tthe device tree and (presumably) use U-Boot include files within the FDT?
Yes, I'd explicitly like to be able to use C-style header files to define named constants etc.
sounds reasonable to me. we already do it with linker scripts, and if the kernel is doing it, it means we can (possibly) share more.
OK. Stephen, what is the kernel actually doing with the preprocessor? Have you given up on the dtc symbol stuff for now and plan to use CPP instead?
Yes, I've given up on getting any kind of pre-processor or macro language into dtc itself. I haven't managed to get the kernel to accept the logic I quoted above either yet; this has all been a very long and tortuous process. I hope to repost the patch that implements this in the kernel within the next week or so.