galak at kernel.crashing.org
Tue May 2 06:28:34 EST 2006
On May 1, 2006, at 3:07 PM, Kim Phillips wrote:
> On Mon, 1 May 2006 14:52:23 -0500
> Kumar Gala <galak at kernel.crashing.org> wrote:
>>>> Try running a current .dts through cpp today. You will get errors
>>>> oftree.dts:15:3: error: invalid preprocessing directive #address
>>>> Because of props like:
>>>> #cpus = <1>;
>>>> #address-cells = <1>;
>>>> #size-cells = <0>;
>>>> If these used some other symbol instead of '#' cpp will be happy
>>>> we can use it to create macros for us.
>>> Yeah, we're not going to be able to change those; they
>>> are "By The Book".
>> By what book? It would seem to me that BNF for dtc is completely
>> under our control and if we want to change it we can. I understand
>> that there is some correspondence to Open Firmware, but it seems that
>> if its people are ok with the dts format changing that's a lot easier
>> than implementing tons of support in dtc for features that cpp
>> gives us.
>> [I'm also guessing no one's really got time to go and implement these
>> features in dtc]
> cpp -x assembler-with-cpp seems to not produce the above errors,
> and still honours preprocessing directives like #define. Don't
> know what else is messes with, and whether you want to add CPPFLAGS.
Cool, here's an invocation that seems to work well. Not sure what
causes linux = 1 (thus I need the -U linux). Also address the line
information that is normally spit out.
cpp -U linux -P -x assembler-with-cpp foo.dts
With a 8349 dts I'm using I'm able to run it through cpp then dts and
get the exact same dtb.
More information about the Linuxppc-dev