A new and exciting way in which DMD fails to build for me

ketmar via Digitalmars-d digitalmars-d at puremagic.com
Tue Jan 20 12:19:09 PST 2015


On Tue, 20 Jan 2015 20:14:42 +0000
Meta via Digitalmars-d <digitalmars-d at puremagic.com> wrote:

> I'm trying to build to build DMD and I've encountered a very 
> strange problem. When I run `make -fwin32.mak`, there are errors 
> when it tries to compile id.c:
> 
> id.c(298) : Error: 'idPool' is not a member of 'Lexer'
> ...etc.
> 
> Sure enough, when I look in id.c, there are a bunch of these:
> 
> stringof = Lexer::idPool("stringof");
> 
> But Lexer does not have an `idPool` member. I then looked in 
> idgen.c for the offending line that must be wrongly inserting 
> "Lexer" instead of "Identifier", but everything looks okay. 
> Specifically this block:
> 
> for (i = 0; i < sizeof(msgtable) / sizeof(msgtable[0]); i++)
> {   const char *id = msgtable[i].ident;
>      const char *p = msgtable[i].name;
> 
>      if (!p)
>          p = id;
>      fprintf(fp,"    %s = Identifier::idPool(\"%s\");\n", id, p);
> }
> 
> Looks like it should print the correct line to id.c. I can 
> confirm this by running idgen.exe manually; it produces the 
> correct file.
> 
> However, when I try deleting all the relevant files to make sure 
> there is nothing old hanging around, then run make again, the 
> same incorrect id.c is generated. This seems bizarre to me; what 
> exactly is going on here?
what is that "id.c" at all? i can't find such file in dmd git repo...
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: not available
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20150120/fbcd63bc/attachment.sig>


More information about the Digitalmars-d mailing list