Subject: Re: grep-2.5.1a: build comments



On Sat, Nov 20, 2004 at 11:04:41PM -0800, Elliott Hughes wrote:
> On Nov 20, 2004, at 10:02, Nelson H. F. Beebe wrote:
>
> >cc-1028 c89: ERROR File = dfa.c, Line = 1055
> > The expression used must have a constant value.
> >
> > char expr[6] = { '[', c, '-', c2, ']', '\0' };
> > ^
> >
> >cc-1028 c89: ERROR File = dfa.c, Line = 1055
> > The expression used must have a constant value.
> >
> > char expr[6] = { '[', c, '-', c2, ']', '\0' };
> > ^
> >
> >cc-1028 c89: ERROR File = dfa.c, Line = 1059
> > The expression used must have a constant value.
> >
> > char buf[2] = { c, '\0' };
> > ^
>
> these are already fixed in CVS.
>
> >/opt/studio9/SUNWspro/bin/c89 -DLIBDIR=\"/usr/local/lib\"
> >-DHAVE_CONFIG_H -I. -I. -I.. -I.. -I. -I../intl
> >-I/usr/local/include -c `test -f savedir.c || echo './'`savedir.c
> >"savedir.c", line 116: operands have incompatible types:
> > union {double _d, array[2] of int _l} "<=" int
> >"savedir.c", line 117: assignment type mismatch:
> > union {double _d, array[2] of int _l} "=" int
> >"savedir.c", line 119: argument #1 is incompatible with prototype:
> > prototype: unsigned int : "/usr/include/iso/stdlib_iso.h", line 105
> > argument : union {double _d, array[2] of int _l}
> >"savedir.c", line 134: warning: {}-enclosed initializer required
> >"savedir.c", line 134: struct/union-valued initializer required
> >"savedir.c", line 147: operands have incompatible types:
> > union {double _d, array[2] of int _l} ">" union {double _d,
> >array[2] of int _l}
> >"savedir.c", line 151: operands have incompatible types:
> > union {double _d, array[2] of int _l} ">" union {double _d,
> >array[2] of int _l}
> >"savedir.c", line 152: operands have incompatible types:
> > union {double _d, array[2] of int _l} "+=" int
> >"savedir.c", line 154: argument #2 is incompatible with prototype:
> > prototype: unsigned int : "/usr/include/iso/stdlib_iso.h", line 112
Hello,

> >gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../intl -I../lib
> >-DLOCALEDIR=\"/usr/local/share/locale\" -g -O2 -c `test -f dfa.c ||
> >echo './'`dfa.c
> >In file included from dfa.c:116:
> >dfa.h:272: error: parse error before "wctype_t"
> >dfa.h:272: warning: no semicolon at end of struct or union
> >dfa.h:281: error: parse error before '}' token
> >dfa.c: In function `parse_bracket_exp_mb':
> >.... cascade of errors suppressed ...
>
> the #include <wctype.h> should be in dfa.h rather than dfa.c, because
> of this reference to wctype_t in dfa.h.

I don't think this caused the problem. As I look in the code, I think that
dfa.c must have included wctype.h before including dfa.h.

There are many platforms with bugs in multibyte support. The best solution
is to be as restrictive as possible and switch the multibyte support on only
if we have all we might need.

The file src/mbsupport.h, imported from gawk, shows the way.
Of course, the configure.in has to be adjusted to run all the needed
checks.

Back to dfa.h: it currently doesn't include _anything_. So it's not a
standalone header file. And I don't want to spend any time fixing it;
I head towards getting rid of it instead.

Regards,
Stepan







Privacy