This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: patch: Updated II windres tool Part 1 of 2
- From: Brian Dessent <brian at dessent dot net>
- To: Nick Clifton <nickc at redhat dot com>
- Cc: Kai Tietz <Kai dot Tietz at onevision dot com>, 'Binutils' <binutils at sourceware dot org>, 'Danny Smith' <dannysmith at clear dot net dot nz>, Dave Korn <dave dot korn at artimi dot com>
- Date: Wed, 23 May 2007 16:16:59 -0700
- Subject: Re: patch: Updated II windres tool Part 1 of 2
- References: <OFCB2F6ED6.E89FAFB1-ONC12572E4.002A52C1-C12572E4.002AC8F6@onevision.de> <4654004A.1010803@redhat.com>
- Reply-to: binutils at sourceware dot org
Nick Clifton wrote:
> > This is reasoned by an error in prior implementation. This is content of
> > the control data structure which has the following layout:
> > DWORD lStyle;
> > DWORD lExtendedStyle;
> > WORD x, y, cx, cy;
> > WORD wId;
> > (name or ordinal) class_id;
> > (name or ordinal) text_id;
> > DWORD nExtraStuff;
> >
> > The wId is getting -1 as id specified from rc file (the second parameter
> > of the CONTROL statement).
>
> Ah - thanks. In which case I have no more concerns with your patch and
> I have checked it in.
I seem to be having a problem with the new windres just hanging when
invoked. I build Cygwin in a combined sourceware tree, meaning that
binutils, gdb, newlib, and Cygwin are all built simultaneously, and the
newly-built binutils are used in the process of building Cygwin. When
it gets to rebuilding winver.o, the invoked command is:
/build/combined/./binutils/windres --include-dir
/usr/src/sourceware/winsup/cygwin/../w32api/include --include-dir
/usr/src/sourceware/winsup/cygwin/include --define
CYGWIN_BUILD_DATE=2007-05-23 --define CYGWIN_BUILD_TIME=15:06 --define
CYGWIN_VERSION="1.7.0" /usr/src/sourceware/winsup/cygwin/winver.rc
winver.o
This just hangs with no output and no activity until ^C.
I debugged it, and it turns out that windres isn't actually hung, it's
just stuck in the first call to YYINPUT in the lexer because somehow
yyin is never initialized and so at the beginning of yylex() it sets
yyin to stdin, resulting in a getc(stdin) that blocks at YYINPUT. Does
this make enough sense for somebody to see a lightbulb or do I need to
dig further into what's going on here? A command line parsing problem?
Brian