> Hi!
> 
> On Mon, 26 May 2014 02:16:35 -0700, Andrew Pinski <pins...@gmail.com> wrote:
> > On Mon, May 26, 2014 at 1:59 AM, Dominique Dhumieres <domi...@lps.ens.fr> 
> > wrote:
> > > r210901 breaks bootstrap on targets not supporting strnlen, e.g., 
> > > darwin10.
> > >
> > > ../../_clean/gcc/lto-cgraph.c:976:68: error: 'strnlen' was not declared 
> > > in this scope
> 
> I'm seeing the same on MinGW, which also doesn't have strnlen (which is a
> GNU extension).
> 
> > strnlen should be declared in include/libiberty.h if there is no
> > declaration as libiberty support is already there.  That should be a
> > simple fix.
> 
> Like this?

This looks good to me (thoguh strnlen is posix).  I can not approve the patch
but I would preffer it over just hand implementing strnlen there (that is easy,
too)

Honza
> 
> --- gcc/config.in
> +++ gcc/config.in
> [Regenerate.]
> --- gcc/configure
> +++ gcc/configure
> [Regenerate.]
> --- gcc/configure.ac
> +++ gcc/configure.ac
> @@ -1136,7 +1136,7 @@ CFLAGS="$CFLAGS -I${srcdir} -I${srcdir}/../include 
> $GMPINC"
>  saved_CXXFLAGS="$CXXFLAGS"
>  CXXFLAGS="$CXXFLAGS -I${srcdir} -I${srcdir}/../include $GMPINC"
>  gcc_AC_CHECK_DECLS(getenv atol asprintf sbrk abort atof getcwd getwd \
> -     strsignal strstr stpcpy strverscmp \
> +     stpcpy strnlen strsignal strstr strverscmp \
>       errno snprintf vsnprintf vasprintf malloc realloc calloc \
>       free basename getopt clock getpagesize ffs gcc_UNLOCKED_FUNCS, , ,[
>  #include "ansidecl.h"
> diff --git include/libiberty.h include/libiberty.h
> index 7fd0703..56b8b43 100644
> --- include/libiberty.h
> +++ include/libiberty.h
> @@ -636,6 +636,10 @@ extern int snprintf (char *, size_t, const char *, ...) 
> ATTRIBUTE_PRINTF_3;
>  extern int vsnprintf (char *, size_t, const char *, va_list) 
> ATTRIBUTE_PRINTF(3,0);
>  #endif
>  
> +#if defined (HAVE_DECL_STRNLEN) && !HAVE_DECL_STRNLEN
> +extern size_t strnlen (const char *, size_t);
> +#endif
> +
>  #if defined(HAVE_DECL_STRVERSCMP) && !HAVE_DECL_STRVERSCMP
>  /* Compare version strings.  */
>  extern int strverscmp (const char *, const char *);
> 
> 
> Grüße,
>  Thomas


Reply via email to