strnlen, strict ansi, newlib vs glibc

Joel Sherrill joel.sherrill@oarcorp.com
Thu Aug 14 15:27:00 GMT 2014


Hi

I have some native C++ code that I developed on CentOS and it
has no warnings. Someone moved it to Cygwin and reported warnings
for strnlen() not being prototyped. I investigated and the program did
include string.h. I tried RTEMS tools and got the same as Cygwin
since we have the same string.h from newlib.

Investigating this, it appears that strnlen() is protected by
__STRICT_ANSI__ on newlib and  __USE_XOPEN2K8 on Linux.

Command: g++ -Wall -std=c++0x -c strtest.cc

This program is enough to reproduce the issue:

    #include <string.h>

    // size_t strnlen( const char *, size_t );

    size_t f( const char *str )
    {
      return strnlen( str, 1000 );
    }


What do you all think?

-- 
Joel Sherrill, Ph.D.             Director of Research & Development
joel.sherrill@OARcorp.com        On-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35805
Support Available                (256) 722-9985



More information about the Newlib mailing list