------- Additional Comments From schlie at comcast dot net 2005-02-16 15:56 ------- Subject: Re: [4.0 Regression] build broken on several targets due to recent 'DC' type update to libgcc2
>> Like ...? > > Here's one (target: h8300-rtems4.7): > ../../../../../../gcc-4.0.0/newlib/libm/math/ef_remainder.c:49: warning: left > shift count >= width of type > > There are dozens of similar warnings in my build-log. > Having a look into newlib shows all of these warnings to be related to > sizeof(int) vs. sizeof(long) vs. sizeof(void*), not to float/double. > I know newlib, is partially broken, in assuming > sizeof(int)==sizeof(long)==sizeof(void*)==32bit, but ... > > ... I have several local patches to newlib applied, which are supposed to fix > them. So, unless something has changed these sizes, I probably didn't work > carefully enough. Although there may be remaining problems in libgcc2; it would seem prudent for newlib (and possibly even libgcc2 as may be required) to be more explicit, i.e. use int16, int32, etc. vs. short, int, long; or conditionally declare types based on sizeof(), when a type needs to be a certain or relative size for the code to work as intended. (not great, but good to know it doesn't seem to be a libgcc2 problem) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19920