[PATCH] Update:Change format specifiers to fix 4 warnings.

Gedare Bloom gedare at rtems.org
Thu Apr 6 22:37:12 UTC 2017


On Thu, Apr 6, 2017 at 6:30 PM, Joel Sherrill <joel at rtems.org> wrote:
> Following up on my own post. You can avoid some casts.
> This is also an example of how pulling a thread can lead
> somewhere more complicated. :)
>
> %z should work portably for size_t and should avoid a cast.
>
> libdl already has this in libdl/rtl-shell.c which tries to provide a
> C99 inttypes.h like constant.
>
> if defined(__moxie__)
> #define PRIdoff_t PRIo32
> #else
> #define PRIdoff_t PRIo64
> #endif
>
> Unfortunately, there is something similar defined in
> testsuites/psxtests/include/pmacros.h which looks to be
> better done.
>
> Searching in cpukit for similar code turns up a number of
> other types and repetitions.
>
> grep -r "#define PRI" . | grep -v PRIORITY | grep -v PRINT
>
> I would suggest the more elegant solution for the PRI constant
> off_t, time_t, and mode_t would be
> cpukit/include/rtems/inttypes_extensions.h
> and that the best of all the duplicated definitions be moved there.
> That centralizes them and them everyone uses the same ones.
>
It would be good to consolidate these. I'd suggest it comes in through
#include <rtems/inttypes.h>
without the _extensions bit is unnecessary if this is part of the
"RTEMS" headers.

I think there are some problems with _ in file names for some platforms?

> I suspect that many of the remaining printf format warnings can then
> be resolved using these helpers or by adding more.
>
Yes, and the rtems/inttypes.h should ideally pull in "Standard"
inttypes.h and then extends them.

This would be my preference.

> This idea needs a review and approval by at least one other
> developer. Especially the file name.
>
> --joel
>
>
> On Thu, Apr 6, 2017 at 4:10 PM, Cillian O'Donnell <cpodonnell8 at gmail.com>
> wrote:
>>
>> 2 of the warnings cropped up on further testing of other BSPs. Sorry,
>> should of been more careful.
>> Also git send-email format.
>> ---
>>  cpukit/libdl/rtl-obj-cache.c | 18 +++++++++---------
>>  1 file changed, 9 insertions(+), 9 deletions(-)
>>
>> diff --git a/cpukit/libdl/rtl-obj-cache.c b/cpukit/libdl/rtl-obj-cache.c
>> index a4676cf..d3cd953 100644
>> --- a/cpukit/libdl/rtl-obj-cache.c
>> +++ b/cpukit/libdl/rtl-obj-cache.c
>> @@ -78,11 +78,11 @@ rtems_rtl_obj_cache_read (rtems_rtl_obj_cache_t*
>> cache,
>>    struct stat sb;
>>
>>    if (rtems_rtl_trace (RTEMS_RTL_TRACE_CACHE))
>> -    printf ("rtl: cache: %2d: fd=%d offset=%d length=%d area=[%d,%d]
>> cache=[%d,%d] size=%d\n",
>> -            fd, cache->fd, (int) offset, (int) *length,
>> -            (int) offset, (int) offset + *length,
>> -            (int) cache->offset, (int) cache->offset + cache->level,
>> -            (int) cache->file_size);
>> +    printf ("rtl: cache: %2d: fd=%d offset=%llu length=%d area=[%d,%llu]
>> cache=[%llu,%llu] size=%lu\n",
>> +            fd, cache->fd, offset, (int) *length,
>> +            (int) offset, offset + *length,
>> +            cache->offset, cache->offset + cache->level,
>> +            (unsigned long) cache->file_size);
>>
>>    if (*length > cache->size)
>>    {
>> @@ -172,10 +172,10 @@ rtems_rtl_obj_cache_read (rtems_rtl_obj_cache_t*
>> cache,
>>      }
>>
>>      if (rtems_rtl_trace (RTEMS_RTL_TRACE_CACHE))
>> -      printf ("rtl: cache: %2d: seek: offset=%d buffer_offset=%d read=%d
>> cache=[%d,%d] dist=%d\n",
>> -              fd, (int) offset + buffer_offset, (int) buffer_offset,
>> (int) buffer_read,
>> -              (int) offset, (int) offset + buffer_read,
>> -              (int) (cache->file_size - offset));
>> +      printf ("rtl: cache: %2d: seek: offset=%llu buffer_offset=%lu
>> read=%d cache=[%d,%llu] dist=%llu\n",
>> +              fd, offset + buffer_offset, (unsigned long) buffer_offset,
>> (int) buffer_read,
>> +              (int) offset, offset + buffer_read,
>> +              (cache->file_size - offset));
>>
>>      if (lseek (fd, offset + buffer_offset, SEEK_SET) < 0)
>>      {
>> --
>> 2.7.4
>>
>> _______________________________________________
>> devel mailing list
>> devel at rtems.org
>> http://lists.rtems.org/mailman/listinfo/devel
>
>
>
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel



More information about the devel mailing list