[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1370005677.5199.138.camel@zakaz.uk.xensource.com>
Date: Fri, 31 May 2013 14:07:57 +0100
From: Ian Campbell <Ian.Campbell@...rix.com>
To: Jon Loeliger <jdl@....com>
CC: Grant Likely <grant.likely@...retlab.ca>,
linux-kernel <linux-kernel@...r.kernel.org>,
<linuxppc-dev@...ts.ozlabs.org>, Michal Marek <mmarek@...e.cz>,
Stephen Warren <swarren@...dia.com>,
Rob Herring <rob.herring@...xeda.com>,
<linux-kbuild@...r.kernel.org>
Subject: Re: DTB build failure due to preproccessing
On Fri, 2013-05-31 at 08:01 -0500, Jon Loeliger wrote:
> > >
> > > 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
>
> Can you show me the original source without mods here, please?
This is Linux v3.10-rc3 arch/powerpc/boot/dts/virtex440-ml510.dts also
attached.
> Or is the "..." purely elided comments?
Yes.
> > > 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
>
>
> > dtc is only able to track line numbers when the native /include/
> > directive is used. The #include directive doesn't help it. It should be
> > added, but until it is the following patch solves the problem:
>
> It's supposed to do better than that, I think.
> This, from dtc-lexer.l
>
> <*>^"#"(line)?{WS}+[0-9]+{WS}+{STRING}({WS}+[0-9]+)? {
> char *line, *tmp, *fn;
> /* skip text before line # */
> line = yytext;
> while (!isdigit(*line))
> line++;
> /* skip digits in line # */
> tmp = line;
> while (!isspace(*tmp))
> tmp++;
> /* "NULL"-terminate line # */
> *tmp = '\0';
> /* start of filename */
> fn = strchr(tmp + 1, '"') + 1;
> /* strip trailing " from filename */
> tmp = strchr(fn, '"');
> *tmp = 0;
> /* -1 since #line is the number of the next line */
> srcpos_set_line(xstrdup(fn), atoi(line) - 1);
> }
>
> Hrm. Is this a "that's not in the kernel's copy yet" problem?
> Or did this fail to match the offending '# <line> <file>' somehow?
> (Like, is that '# 375' really in column 1?)
The "#" is in the first column.
I've attached the actual file.
Ian.
View attachment ".virtex440-ml510.dtb.dts.tmp" of type "text/plain" (12339 bytes)
View attachment "virtex440-ml510.dts" of type "text/x-csrc" (14475 bytes)
Powered by blists - more mailing lists