On Sun, Feb 04, 2007 at 07:52:08AM -0700, Eric Blake wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > According to Albert Chin on 2/4/2007 7:47 AM: > > The IBM C compiler on AIX 4.3.3 (v6) doesn't like signed bit types: > > gmake[1]: Entering directory `/opt/build/m4-1.4.8/src' > > xlc -I../lib -I../lib -O2 -qro -qroconst -qmaxmem=-1 -qarch=com -c > > m4.c > > "m4.h", line 383.3: 1506-009 (S) Bit-field gnu_extension must be of type > > signed int, unsigned int or int. > > "m4.h", line 384.3: 1506-009 (S) Bit-field groks_macro_args must be of > > type signed int, unsigned int or int. > > "m4.h", line 385.3: 1506-009 (S) Bit-field blind_if_no_args must be of > > type signed int, unsigned int or int. > > gmake[1]: *** [m4.o] Error 1 > > > > Patch attached. > > > - bool traced : 1; > > + unsigned int traced : 1; > > Thanks for the report. However, I would tend to think that this is a bug > in the gnulib stdbool module. Is ./configure detecting that the AIX bool > is sufficient, or is it using the gnulib replacement? If it is getting > the AIX bool, then the gnulib check should be enhanced to check that bool > can be used for bitfields. If it is getting the gnulib bool, then we > should figure out how to make the gnulib bool pick a type that will work > for this usage pattern.
$ grep -i bool lib/config.h /* Define to 1 if stdbool.h conforms to C99. */ /* #undef HAVE_STDBOOL_H */ /* Define to 1 if the system has the type `_Bool'. */ /* #undef HAVE__BOOL */ lib/stdbool.h is being used and _Bool is defined to 'signed char': # define _Bool signed char I thought about it being the culprit but it really isn't. It's simply in using the bool type as a bit type. So, I don't see the need to penalize stdbool. -- albert chin ([EMAIL PROTECTED])