Strange problem with newlib strstr function and rtems 4.10 on coldfire
Ralf Corsepius
ralf.corsepius at rtems.org
Mon Apr 18 09:21:56 UTC 2011
On 04/18/2011 10:16 AM, Paul Whitfield wrote:
> On 18/04/2011 2:53 PM, Ralf Corsepius wrote:
>> On 04/18/2011 06:28 AM, Paul Whitfield wrote:
>>> On 18/04/2011 10:51 AM, Paul Whitfield wrote:
>>
>>> I have checked the newlib CVS and the version of strstr.c and
>>> str-two-way.h in RTEMS4-10 are update to date with the most current
>>> version.
>>>
>>> One last note: Recompiling the strstr.c / str-two-way.h code newlib
>>> code
>>> on the PC the code works correctly with the optimised version.
>>
>> Are you trying to express you can reproduce your issue on PC?
>>
>> I just tried, but I can't reproduce it.
>>
>> Ralf
>
> Sorry I was unclear. No I can NOT reproduce the problem on the PC.
OK.
> I have done some more investigation ...
>
> PLEASE NOTE:
> I did NOT build gcc / newlib from source.
>
> I am using the pre-compiled version from
> ftp://ftp.rtems.org//pub/rtems/mingw32/4.10/
> and it is behaving the same way as the code I am compiling here.
>
> I did some searching and found a similar symptom to what I have
> been seeing.
>
> It seems to be the strstr code is breaking because it expects the value
> of the macro SIZE_MAX to be the maximum value of a size_t variable
> however it appears that using the standard RTEMS include files,
> SIZE_MAX is actually 32.
>
You are right on the spot. SIZE_MAX is wrong.
> Is something broken about how newlib has been built?
Not quite.
It's a bug in our stdint.h which gets exposed when using newlib with
gcc-4.4.x. It does not get exposed with newer gccs (e.g. rtems4.11),
because the preprocessor takes a different path, then.
I'll further investigate and try to come up with a fix. - I recall us
having had this issue before and thought I had fixed it. Apparently not ;)
Ralf
More information about the users
mailing list