DTB build failure due to preproccessing

Ian Campbell Ian.Campbell at citrix.com
Fri May 31 20:29:30 EST 2013


This affects arch/powerpc/boot/dts/virtex440-ml510.dts but I think it is
actually a more general issue:

        $ make ARCH=powerpc CROSS_COMPILE=powerpc-linux- virtex440-ml510.dtb 
          CC      scripts/mod/devicetable-offsets.s
          GEN     scripts/mod/devicetable-offsets.h
          HOSTCC  scripts/mod/file2alias.o
          HOSTLD  scripts/mod/modpost
          DTC     arch/powerpc/boot/virtex440-ml510.dtb
        Error: arch/powerpc/boot/dts/virtex440-ml510.dts:374.6-7 syntax error
        FATAL ERROR: Unable to parse input tree
        make[1]: *** [arch/powerpc/boot/virtex440-ml510.dtb] Error 1
        make: *** [virtex440-ml510.dtb] Error 2
        
Line 374 is the "IDSEL 0x16..." line here:
			interrupt-map = <
				/* IRQ mapping for pci slots and ALI M1533
				 ...
				 * management core also isn't used.
				 */

				/* IDSEL 0x16 / dev=6, bus=0 / PCI slot 3 */
				0x3000 0 0 1 &xps_intc_0 3 2
				0x3000 0 0 2 &xps_intc_0 2 2
				0x3000 0 0 3 &xps_intc_0 5 2
				0x3000 0 0 4 &xps_intc_0 4 2

Which gets preprocessed into:
           interrupt-map = <
        # 375 "arch/powerpc/boot/dts/virtex440-ml510.dts"
            0x3000 0 0 1 &xps_intc_0 3 2
            0x3000 0 0 2 &xps_intc_0 2 2
            0x3000 0 0 3 &xps_intc_0 5 2
            0x3000 0 0 4 &xps_intc_0 4 2

If I manually remove the "# 375 " line then that fixes the error
(although there is then a subsequent one of the same type).

I suppose this is a bug in dtc? It appears to have at least some
awareness of these preprocessor line number comments since it manages to
report the original source line number.

Ian.



More information about the Linuxppc-dev mailing list