rename issue

Ralf Corsepius ralf.corsepius at rtems.org
Wed May 6 00:36:18 UTC 2009


Chris Johns wrote:
> Joel Sherrill wrote:
>   
>> Ralf Corsepius wrote:
>>     
>>> Joel Sherrill wrote:
>>>   
>>>       
>>>> Looks like we are heading for a new spin of the 4.10 tools
>>>> soon.
>>>>   
>>>>     
>>>>         
>>> Yep, .... I am going to address these issues sequentially.
>>>   
>>>       
>>>>   + drop - DMISSING_SYSCALL_NAMES from configure.host
>>>>   
>>>>     
>>>>         
>>> Having cross-checked your proposal, I leaned to agree with your proposal 
>>> and am about to launch a toolchain spin.
>>>
>>> Please test this toolchain! Though this patch is a one-liner, this step 
>>> is quite intrusive, and is not unlikely to have (so far) unconsidered 
>>> side-effects.
>>>
>>>   
>>>       
>> Yeah!  This one worried me.  It could easily turn up a LOT of
>> stuff.
>>     
>
> What should we be looking for ?
>   
Symbol clashes/conflicts related to "_"-prefixed function symbols and
bogus/redundant <function>_r vs. <function> calls.

>   
>>>>   + inttypes.h warning
>>>>   
>>>>     
>>>>         
>>> WIP on my part, but no patch available so far.
>>>   
>>>       
>> OK.  Chris and I were on a warning hunt and these showed up
>> in cpukit.  They will disappear again when you get the patch.
>>
>>     
>
> Which warnings will this fix ?
>   

Joel's test case had been this:

../../../../../../rtems/c/src/../../cpukit/libmisc/shell/main_mwdump.c:65:
>> warning: format '%08llX' expects type 'long long unsigned int', but
>> argument
>> 2 has type 'uintptr_t'


It shows with newlib-1.17.0 based toolchains (rtems-4.10) and can be reproduced with this test case:


#include <inttypes.h>
#include <stdio.h>

extern uintptr_t x;

void doit( void ) { 
  printf("0x%08" PRIXPTR " ",addr);
}

The origin of this warning is PRIXPTR being defined to "llX" on some 
targets, while uintptr_t is a (32bit) "long".

The warning had been introduced by an upstream newlib patch, which was 
supposed to provide better c99/POSIX compliance. However,  with this 
patch applied, gcc now complains about it.

So, the question, I don't know the anser to, is: Whose fault is this 
warning? Is GCC not sufficently c99/POSIX compliant or is newlib bugged?

newlib-1.16.0 (rtems-4.9 toolchains) don't have the patch in question 
applied, and are not subject to this issue.

Ralf








More information about the users mailing list